WebGPUPathTracer: Use custom float texture filter for mobile#750
WebGPUPathTracer: Use custom float texture filter for mobile#750gkjohnson merged 17 commits intowebgpu-pathtracerfrom
Conversation
…obile-2 # Conflicts: # package-lock.json
|
@TheBlek - this is now working on my Pixel 10 after modifying the Turquin Texture to be HalfFloatType with one caveat: when loading and using the premade png texture I'm seeing it render incorrectly. Setting "calculateTurquinTexture" to "true" fixes the issue. This is only happening on my mobile device - it looks fine on my laptop. I'm not sure if you have any ideas about why this might be happening? Otherwise I think this is a better solution for us than #749. calculateTurquinTexture = false
calculateTurquinTexture = true
|
It works fine on all my devices (phone included - Nothing Phone 2a). Debugging three.js code it turns out that images are loaded here: It uses a function copyExternalImageToTexture MDN that has a spotty availability on desktop yet on phones should work. Perhaps this is a device-specific bug? We could load image differently to avoid such complications. For example, it seems that EXR format supports 32 and 16 bit float, compression and has a configurable loader that loads exact data into buffers, parses it and then passes to three.js: https://threejs.org/docs/#EXRLoader. This would avoid copyExternalImageToTexture execution path. |
I'll take a deeper look to see what might be going on with my device before we look into different formats. That function seems to be silently hiding any errors for some reason so maybe there's something to that. |



Relies on #748
Replaces #749
npm start -- --mode=ssl --hostThere seem to be some issues in three.js regarding setting float textures to unfilterable so in practice this won't work on mobile until this is fixed: mrdoob/three.js#33147
cc @TheBlek
TODO