Add support for NodeMaterial in TilesFadePlugin#1287
Add support for NodeMaterial in TilesFadePlugin#1287shotamatsuda wants to merge 5 commits intoNASA-AMMOS:masterfrom
Conversation
|
Thanks @shotamatsuda! And sorry for the delay in reply. I suppose some (all?) of my concerns from mrdoob/three.js#30185 are finally coming to pass, so I'm trying to decide what to do here 😅 It's also exposing a few other issues I wasn't expecting, like the custom ring shader for EnvironmentControls anchor not rendering and logging an error with WebGPURenderer. Generally I want to support WebGPU more directly but unfortunately with the way three.js is handling things that will seem to mean maintaining two copies of every shader in the project since most if not all of my other users and clients are on WebGLRenderer and complicate the APIs (no one else has complained about WebGPU support yet). cc @mrdoob are there any more concrete plans for how to more gracefully handle the WebGL -> WebGPU material transition? This is exactly the kind of issue I anticipated running in to and trying to avoid. These types of issues are going to make maintaining the project much more difficult and much less enjoyable. To lay it all out:
|
|
Thanks for sparing your time on this PR! I'm perfectly fine with you and Three.js taking time to make the best decision, especially since you haven't had any requests for WebGPU support from your clients. Support for |
This PR adds preliminary support for
NodeMaterialinTilesFadePlugin. I consider this preliminary because it doesn't supportBatchedMesh, as I have not been able to useBatchedMeshPluginwithWebGPURendereryet.A possible incompatibility is that it will not work if the user is using importmaps and doesn't have a route to
three/tsl.An example page was added for demonstration purposes, but it's mostly a duplicate. It would be ideal to add the ability to switch the renderer in
fadingTiles.html. I'll be happy to remove it, or to work on it if this PR is legitimate.