Tobian
01-14-2009, 07:14 PM
One tricky thing I have not yet managed to get right is perspective based anisotropy
I went into my idea in this thread on Spinquad, but it's got us stumped, so I thought I'd ask here, to see if anyone has any ideas how to solve it! :D
http://www.spinquad.com/forums/showthread.php?p=241611#post241611
Normally anisotropy is caused by micro 'grain' in surfaces, which runs along U, causing light stretch on V (or vice versa).
However, if you look outside on a wet day, you will see lights stretch vertically on the wet road. I more or less figured out this was caused by an effect of perspective on 'micro-noise'. As the normal is being shifted away from you (isn't it awful when you think of the real world like CG hehe) the 'noise' is compresed vertically, relative to your position. This causes a form of anisotropy which then stretches the specular in the opposite direction to the grain (vertically).
I managed to fake this effect by aligning the anisotropic node to the camera, so that Y became the U vector and I increased the stretch for it, smearing the reflection vertically, instead of the usual surface aligned UV.
This has it's problems, as it will only smear vertically, I want the smear to work based off the normal of the surface, but I have no idea how to rotate the node facing, using surface normal data around the Z axis!!! (so that it's respecting the normal AND camera alignment)
Maybe I'm going about this the wrong way, any and all ideas appreciated, and I might also spawn this off into a 'feature request' thread, if it's impossible! :)
I've seen it done in other CG, so it is possible, I just don't know if it's doable using anisotropy in LW!
I went into my idea in this thread on Spinquad, but it's got us stumped, so I thought I'd ask here, to see if anyone has any ideas how to solve it! :D
http://www.spinquad.com/forums/showthread.php?p=241611#post241611
Normally anisotropy is caused by micro 'grain' in surfaces, which runs along U, causing light stretch on V (or vice versa).
However, if you look outside on a wet day, you will see lights stretch vertically on the wet road. I more or less figured out this was caused by an effect of perspective on 'micro-noise'. As the normal is being shifted away from you (isn't it awful when you think of the real world like CG hehe) the 'noise' is compresed vertically, relative to your position. This causes a form of anisotropy which then stretches the specular in the opposite direction to the grain (vertically).
I managed to fake this effect by aligning the anisotropic node to the camera, so that Y became the U vector and I increased the stretch for it, smearing the reflection vertically, instead of the usual surface aligned UV.
This has it's problems, as it will only smear vertically, I want the smear to work based off the normal of the surface, but I have no idea how to rotate the node facing, using surface normal data around the Z axis!!! (so that it's respecting the normal AND camera alignment)
Maybe I'm going about this the wrong way, any and all ideas appreciated, and I might also spawn this off into a 'feature request' thread, if it's impossible! :)
I've seen it done in other CG, so it is possible, I just don't know if it's doable using anisotropy in LW!