Well, standard normal maps range from -1 to +1 also. Also I have no idea how your dot products are doing anything with the output of those mask nodes. The mask should function like the hlsl component swizzle, just outputting a floating point scalar. The dot product is only valid between vectors, so something has to be…
UDN says the DeriveNormalZ node just does sqrt(1 - (x * x + y * y)) which is quite cheap. Technically I think it should use the spherical length on a unit sphere instead of linear length but I dont think the difference would be noticeable.
Ok so I've decided I'll take the derivative mentality (it's cleaner and it makes more actual sense). So far I'm treating the derivative maps as a -sin(theta) map (edit: cos(theta) map) and the plan is to add this to the -sin(theta) between the light vector and the normal (maybe crossproduct or something? or I could do a…
In the end it seems like the derivative map interpretation would be the way to go if you were doing this as it has a lot of room to manipulate and use them. For code on that you can go to Mikkelsen's blog http://mmikkelsen3d.blogspot.com/ I wanted to make a map that was farther along in terms of what it computed, but…