armory icon indicating copy to clipboard operation
armory copied to clipboard

Bad view in Firefox and ok in IE

Open ManPython opened this issue 2 years ago • 9 comments

Thank you for contributing to Armory!

Description In image we se some defects on Firefox 100.0

To Reproduce Run the example files

Expected behavior Good view without defects in Firefox

System Blender: blender 3.01 and upper to blender-3.3.0 Armory: 2022.05.0 OS: w10 Graphics card: gtx 1650

Test File Screenshot 2022-05-15 at 23-41-50 third_person

ManPython avatar May 22 '22 17:05 ManPython

Hi, I guess you're using the third person template file?

For me it looks totally fine on Firefox: grafik

Please try if the error goes away if you use Blender 2.93 LTS (Armory only supports that version, support for the 3.3 LTS version will follow if Blender 3.3 is released). Does the issue still happen if you set Armory Render Path > Post Process > SSGI to No AO?

MoritzBrueckner avatar May 22 '22 19:05 MoritzBrueckner

I can confirm this issue on FireFox and Chrome. Both in the online example browser and when run from Blender by targeting browser. It however does not occur when targeting Krom.

All tests below are done in Blender 2.93 LTS

Browser: Browser

Krom: Krom

Here's the result with SSGI set to no

Browser: image

Krom: image

So, yes, disabling SSGI seems to solve the issue. But it still is not a permanent fix in my opinion.

This might be a quirk of the GPU?

My system specs: OS: Windows 10 Processor: Intel Core i7 10th Gen GPU: Nvidia Geforce RTX 2060

QuantumCoderQC avatar May 22 '22 19:05 QuantumCoderQC

This might be a quirk of the GPU?

Yes, maybe. I still can't reproduce it on my GTX 750Ti (so Nvidia as well) even after reinstalling the latest drivers. Maybe it's an architecture specific thing?

MoritzBrueckner avatar May 22 '22 21:05 MoritzBrueckner

Firefox

image

Microsoft Edge

image

I can partially reproduce the as well, I suspect it's modern day GPU driver issue. Perhaps related to a similar bug me and several others had with PlayCanvas and shadows.

On a side note, aren't these shadows screen-spaced? They're suppose to have poorer quality for optimal performance...

Specs: OS: Windows 11 Home GPU: NVIDIA GeForce RTX 3050 Ti Laptop GPU CPU: 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz 2.30 GHz (8 cores)

rpaladin avatar May 22 '22 23:05 rpaladin

Can you please try to replace the following line in <armsdk>/armory/blender/arm/write_data.py

https://github.com/armory3d/armory/blob/7203c3296021e0283a039068edea0fd117d033dd/blender/arm/write_data.py#L516

with

    <meta charset="utf-8"/><script src="https://greggman.github.io/webgl-lint/webgl-lint.js" data-gman-debug-helper='{"throwOnError": false}' crossorigin></script>""")

to use this debug library, then restart Blender, build and run the game again and then paste the output of the browser's console? It should look something like this, maybe we have different errors/warnings that can give a clue about what's wrong with the ambient occlusion:

Screenshot

Note that not every warning/error must be severe, but it can be a hint.

MoritzBrueckner avatar May 23 '22 11:05 MoritzBrueckner

<meta charset="utf-8"/>""")

  • not sure I made this in good, soo.. you can try put right example on remote server and I can run this html to see logs
Successfully compiled asm.js code (total compilation time 157ms) [kha.js](http://localhost:8000/kha.js)
WebGL warning: texImage: Alpha-premult and y-flip are deprecated for non-DOM-Element uploads. 17
Sources/armory/trait/internal/CanvasScript.hx:36: "_themes.json" is empty! Using default theme instead. [Log.hx:66:3](file:///D:/REC/3DCAD/Blender/Add-in/ArmorySDK2205/armsdk/Kha/Tools/haxe/std/haxe/Log.hx)
WebGL warning: texImage: Alpha-premult and y-flip are deprecated for non-DOM-Element uploads.
https://greggman.github.io/webgl-lint/webgl-lint.js:2239: error in drawElements(TRIANGLES, 3, UNSIGNED_INT, 0): uniforms "casData[17]", "casData[18]", "casData[19]" have not been set
See docs at https://github.com/greggman/webgl-lint/ for how to turn off this check using "failUnsetUniforms": false
with WebGLProgram("*UNTAGGED:Program30*") as current program
with the default vertex array bound [webgl-lint.js:2199:17](https://greggman.github.io/webgl-lint/webgl-lint.js)
https://greggman.github.io/webgl-lint/webgl-lint.js:2270: error in drawElements(TRIANGLES, 3, UNSIGNED_INT, 0): texture WebGLTexture("*UNTAGGED:Texture34*") on texture unit 6 referenced by uniform sampler2D shadowMap is not renderable: texture of type (DEPTH_COMPONENT16) is not filterable but TEXTURE_MIN_FILTER is set to LINEAR
with WebGLProgram("*UNTAGGED:Program30*") as current program
with the default vertex array bound [webgl-lint.js:2199:17](https://greggman.github.io/webgl-lint/webgl-lint.js)
https://greggman.github.io/webgl-lint/webgl-lint.js:2239: error in drawElements(TRIANGLES, 3, UNSIGNED_INT, 0): uniforms "casData[17]", "casData[18]", "casData[19]" have not been set
See docs at https://github.com/greggman/webgl-lint/ for how to turn off this check using "failUnsetUniforms": false
with WebGLProgram("*UNTAGGED:Program30*") as current program
with the default vertex array bound [webgl-lint.js:2199:17](https://greggman.github.io/webgl-lint/webgl-lint.js)
https://greggman.github.io/webgl-lint/webgl-lint.js:2270: error in drawElements(TRIANGLES, 3, UNSIGNED_INT, 0): texture WebGLTexture("*UNTAGGED:Texture34*") on texture unit 6 referenced by uniform sampler2D shadowMap is not renderable: texture of type (DEPTH_COMPONENT16) is not filterable but TEXTURE_MIN_FILTER is set to LINEAR
with WebGLProgram("*UNTAGGED:Program30*") as current program
with the default vertex array bound [webgl-lint.js:2199:17](https://greggman.github.io/webgl-lint/webgl-lint.js)
https://greggman.github.io/webgl-lint/webgl-lint.js:2239: error in drawElements(TRIANGLES, 3, UNSIGNED_INT, 0): uniforms "casData[17]", "casData[18]", "casData[19]" have not been set
See docs at https://github.com/greggman/webgl-lint/ for how to turn off this check using "failUnsetUniforms": false
with WebGLProgram("*UNTAGGED:Program30*") as current program
with the default vertex array bound [webgl-lint.js:2199:17](https://greggman.github.io/webgl-lint/webgl-lint.js)
https://greggman.github.io/webgl-lint/webgl-lint.js:2270: error in drawElements(TRIANGLES, 3, UNSIGNED_INT, 0): texture WebGLTexture("*UNTAGGED:Texture34*") on texture unit 6 referenced by uniform sampler2D shadowMap is not renderable: texture of type (DEPTH_COMPONENT16) is not filterable but TEXTURE_MIN_FILTER is set to LINEAR
with WebGLProgram("*UNTAGGED:Program30*") as current program
with the default vertex array bound

ManPython avatar May 23 '22 16:05 ManPython

Thanks! Looks correct to me. Unfortunately it doesn't look different to the errors I get, so the issue is probably caused by something not related to how the AO shader is invoked or what data is sent to it. Maybe it's indeed a driver issue?

MoritzBrueckner avatar May 23 '22 17:05 MoritzBrueckner

Maybe it's indeed a driver issue?

Take attention that on IE is ok just FF. I hear that on FF some webgl aps working slowly and with worst performance. And maybe it can be this issue more like driver https://www.reddit.com/r/firefox/comments/eh6d64/webgl_gets_worse_performance_in_firefox_compared/

ManPython avatar May 23 '22 23:05 ManPython

Problem is still not solved? I'm testing armory_templates-22.06 on UPBGEv0.2.5b2.79Windows64 with ArmorySDK2310

ManPython avatar Oct 03 '23 18:10 ManPython