Deviation Actions

vasilnatalie's avatar

Improvement for Working Floor



Like the picture says.  Fresnel, texture masking, demonstration of how to modify an effect into a mirror object (or if you use AS anyways, just use the demo I made).

Read the readme for usage.  No rules.…
Image details
Image size
2560x1440px 2.56 MB
© 2016 - 2022 vasilnatalie
Join the community to add your comment. Already a deviant? Log In
The default working floor or mirror object effect actually does spheres wrong. I didn't realize it either until I needed to modify eye/view vectors. The sphere (edit: the normal used to get the sphere vector, at least) should be reflected using the mirror normal, which means not using the existing function because that subtracts the mirror's position. (In the default effect it's not reflected at all, which is why the author tried multiplying the normalized vector by 0.99 as a bugfix.) You could treat specular, or things like AdultShader's eye vector, differently as well, depending on whether you want to reflect the original light or the 'mirror world's light.

A lot of effects would, in fact, work with minimal changes if you reflected everything used in the pixel shader. If you don't, you should probably at least reflect the camera position. I also modified working floor/mirror object for AdultShader, though I left out the soft shadow parts, and decided to have options to use original eye vector, to use reflected eye vector, or combine them because I wasn't sure which looked best.

Also, difference between then and now. Then: "The mirror effect requires you to modify it for every shader you want to apply? There must be a better way to do it." Now: "mirror effect only requires one offscreen render target, instead of three? What a simple effect!" (Yes, WorkingFloor might have a useless and unused emitter target by default, but having extra offscreen render targets seems really common for things that an integrated application would probably not use them for.)