-
-
Notifications
You must be signed in to change notification settings - Fork 35.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WebGLRenderer: Toggle on/off opaque / transmission / transparent passes for custom render pipeline #23184
Comments
I think GLTF is going to support subsurface scattering fairly soon, so that use case may not be very relevant by then... 🤔 |
This is just an example. We can take the example of volume rendering as well. Basically re-ordering passes is really useful. When creating an application it's ok, because you can design around that limitation. For people creating libraries wrapping Three.js, there is no solution AFAIK |
Side note, do you have a link for the suburface? I am wondering what kind of implementation will be pushed by the standard. |
Certain properties of |
Thanks @donmccurdy that's really nice to know. I think this is still orthogonal to the issue. Three.js already provides all this work with passes and it would be nice if we could re-use it somewhat and let the developer order them freely (there might be dependencies). For the example of volume rendering, I was referring to volume rendering based on 3D textures. I could see a pipeline like this one:
Even something simple could help, like 3 functions:
|
Thinking a bit more about it, we could bring something like the effect composer in the core? We would have:
If we make a simple pipeline processor it's not going to be much code anyway and will not affect the size of the library negatively. |
I have some time to work on that. If you think it makes sense and we agree on a format I could give it a shot in a PR. I would find it odd if I was the only one experiencing that as a limitation. |
Is your feature request related to a problem? Please describe.
Currently, it's not possible to toggle off / on the rendering of opaque / transparent / transmission passes. This makes it difficult when creating more complexe rendering pipeline, where users might want to schedule those at different time.
For instance:
Describe the solution you'd like
Solution 2 might sound too advanced for nothing, but with WebGPU coming, this could be the solution of choice. If it becomes possible to start the render passes in a parallel way, a render graph will be needed in case where the pipeline execution isn't linear.
A clear and concise description of any alternative solutions or features you've considered.
I didn't find an alternative solution yet. Those passes can't be modified externally.
The text was updated successfully, but these errors were encountered: