|
|
|
|
|
by taw55
3109 days ago
|
|
Parallax mapping will not benefit from this, since the limiting factor there is performing a raymarch on a heightfield to find an exact intersection. At every step along the ray you need to test wether you are inside or outside of the heightfield. This means offsetting the uv coordinate (xy position inside the texture) by the ray vector, and then using that coordinate to sample the texture again, to check whether or not you penetrated the heightfield. The amount of texture lookups quickly becomes the bottleneck, especially on large textures since they incur cache misses. To give you an idea: for every parallaxed pixel on the screen the heightmap texture might be looked up several dozens of times. You don’t nearly get to subpixel accuracy before performance grinds to a halt. Parallax mapping is view dependent, so roughness mapping, even if somehow applicable would need to be highly anisotropic for it to work, which means a huge storage cost. |
|
I didn't realize it was on the order of dozens. Just to clarify, we're talking pixels and not texels, right? This isn't dependent on the resolution of the map?
> roughness mapping, even if somehow applicable would need to be highly anisotropic for it to work
I didn't think about that, I guess you're right. How huge, exactly? Seems like something you could compress very well if you combine textures into a larger megatexture.