-
-
Notifications
You must be signed in to change notification settings - Fork 36k
WebGLRenderer: Revert to drawingbuffer sized transmissionRenderTarget #26138
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
Conversation
📦 Bundle sizeFull ESM build, minified and gzipped.
🌳 Bundle size after tree-shakingMinimal build including a renderer, camera, empty scene, and dependencies.
|
|
Here's a couple of videos that may help: Video 16.N8.Programs.Twitter.2.mp4Video 2I think this video shows the issue pretty well (click to download, displays on MacOS):
https://github.com/mrdoob/three.js/files/11576775/6.N8.Programs.Twitter.mp4.zip We did them while we were working on #25483. |
|
Agreed with @WestLangley - that's super strange. Maybe a bad blur that isn't hitting all the pixels? @mrdoob, the reason the filament looks more blocky is that it has values >>1, next to values <1 - they're getting interpolated linearly, and then tone-mapped after. This results in looking almost like nearest interpolation. All the pixel interpolation and antialiasing (stuff for perceptual niceness) really needs to happen after tonemapping to work properly. Also @mrdoob, your second video appears to be an image. Do you have any idea what's causing what you see? Is the blur based on depth or something? |
Damn! So hard to share that video... I've updated the post. |
|
I think I understand the issue. As you say, it's linear interpolating and it doesn't have enough pixels to interpolate to such high values and ends up being blocky/pixelated. I feel like reverting to 1024x1024 texture just happened to produce better results with that environment, but the issue is still there. |
|
It doesn't happen when the background is flat. Comment out |
|
Where you can see the flickering pretty well is in webgl_loader_gltf_lights when you move the camera such that the transmissive lamp shade moves over light and dark areas of the background. If we can't find a final solution for this issue, I vote to revert to the |
Made a screen recording to try to understand... What is it that doesn't happen? Screen.Recording.2023-05-31.at.23.54.00.mov |
|
When I tested flat background and panned the scene when roughness > 0.8 or so, there was no so-called "flashing" of the transmissive object. |
|
Any chance you could do a screen recording...? |
As far as I remember, we originally reverted to 1024x1024 because @WestLangley mentioned the color changes in At the same time, @elalish's feedback is that I fear our examples are not representative of most projects that use transmission out there... Before reverting again I would like to hear more from the community. |
|
Sounds good! |
To test a "flat" background, I modified the example like so: //texture.mapping = THREE.EquirectangularReflectionMapping;
texture.offset.set( 0.67, 0.55 );
texture.repeat.set( 0.125, 0.125 );Sorry about the ugly banding. It is not evident in practice... |






Related issue: #26131 #25494
Description
This PR reverts #26131 because performance was really bad on mobile.
It also reverts #25494 as I am still not convinced the blinking artefacts we see with
royal_esplanade_1k.hdrare good enough reason to sacrifice the quality in materials with lowroughness./cc @elalish