SFX_WIN Version=24 GroupVersion=1.31 Advanced=0 HelpID=6 NumberOfNodes=17 #NT=10100 0 PC=28 name=1 v=5000 _DerivedNormalZ version=1 v=2003 1.31 posx=1 v=2003 -1301.99 posy=1 v=2003 -764.565 classname=1 v=5000 Derived Normal Z Map submenuname=1 v=5000 Textures bitmapnodeindex=1 v=2002 64 helpid=1 v=2002 6 grpnodecolor=1 v=5012 6 grpPosX=1 v=2003 -1503.39 grpPosY=1 v=2003 116.691 defineinheader_MyTexture=2 e=1 v=2001 0 flipy_UVs=2 e=1 v=2001 1 texturepath_MyTexture=2 e=1 v=5000 uvindex_UVs=2 e=2 v=2002 0 uvsetname_UVs=2 e=3 v=5000 exposetoui_MyTexture=2 e=3 v=2001 1 autoPreviewTexture_MyTexture=2 e=4 v=2001 1 fullpathinshader_MyTexture=2 e=4 v=2001 0 mipmaplevels_MyTexture=2 e=5 v=2002 -1 filter_SamplerState=2 e=6 v=5012 0 addressu_SamplerState=2 e=7 v=5012 0 addressv_SamplerState=2 e=8 v=5012 0 addressw_SamplerState=2 e=9 v=5012 0 bordercolor_SamplerState=2 e=10 v=3003 0.0,0.0,0.0,0.0 uiorder_MyTexture=2 e=12 v=2002 0 uigroup_MyTexture=2 e=13 v=5000 options_Normal=2 e=800 v=5012 0 group=-1 ISC=2 SVT=5001 3001 0 _UV SVT=5001 1002 0 OSC=2 SVT=5001 3001 0 _UV CC=1 C=0 0 0 10 1 2 0 CPC=0 SVT=5001 1002 0 CC=0 #NT=20016 0 PC=3 note=1 v=5000 r * r posx=1 v=2003 -335.622 posy=1 v=2003 41.7629 group=0 ISC=2 SVT=5001 2003 1 SVT=5001 2003 2 OSC=1 SVT=5001 2003 3 CC=1 C=1 0 3 12 0 1 0 CPC=0 #NT=20016 0 PC=3 note=1 v=5000 g * g posx=1 v=2003 -333.56 posy=1 v=2003 183.0 group=0 ISC=2 SVT=5001 2003 1 SVT=5001 2003 2 OSC=1 SVT=5001 2003 3 CC=1 C=2 0 3 12 1 2 0 CPC=0 #NT=20022 0 PC=3 note=1 v=5000 We can solve: (R * R) + (G * G) + (B * B) = 1 with some algebra posx=1 v=2003 122.032 posy=1 v=2003 75.2481 group=0 ISC=2 SVT=5001 2003 1 SVT=5001 2003 2 OSC=1 SVT=5001 2003 3 CC=1 C=3 0 3 5 0 1 0 CPC=0 #NT=20017 0 PC=3 note=1 v=5000 Since the length of each vector in normal map is 1 posx=1 v=2003 -118.68 posy=1 v=2003 38.4704 group=0 ISC=0 OSC=1 SVT=5001 2003 1 CC=1 C=4 0 1 3 0 1 0 CPC=0 #NT=20024 0 PC=2 posx=1 v=2003 301.16 posy=1 v=2003 82.7634 group=0 ISC=1 SVT=5001 2003 1 OSC=1 SVT=5001 2003 2 CC=1 C=5 0 2 6 3 4 0 CPC=0 #NT=20020 0 PC=3 note=1 v=5000 derives Blue channel of tangent space normal posx=1 v=2003 535.256 posy=1 v=2003 40.1859 group=0 ISC=6 SVT=5001 2003 1 SVT=5001 2003 2 SVT=5001 3001 3 SVT=5001 2003 4 SVT=5001 3002 5 SVT=5001 2003 6 OSC=3 SVT=5001 3001 7 CC=0 SVT=5001 3002 8 CC=1 C=6 1 8 15 0 0 0 CPC=0 SVT=5001 3003 9 CC=0 #NT=20028 0 PC=10 posx=1 v=2003 -1028.44 posy=1 v=2003 15.6159 fullpathinshader=2 e=4 v=2001 0 exposetoui=2 e=3 v=2001 1 autoPreviewTexture=2 e=4 v=2001 1 defineinheader=2 e=1 v=2001 0 texturenodename=2 e=0 v=5000 mipmaplevels=2 e=5 v=2002 -1 uiorder=2 e=12 v=2002 0 uigroup=2 e=13 v=5000 group=0 ISC=3 SVT=2002 2002 1 SVT=2002 2002 3 SVT=2002 2002 4 OSC=1 SVT=5001 5011 2 CC=2 C=7 0 2 8 0 1 0 CPC=0 C=7 0 2 9 0 3 0 CPC=0 #NT=20029 0 PC=2 posx=1 v=2003 -588.175 posy=1 v=2003 57.3473 group=0 ISC=7 SVT=5001 5011 1 SVT=5001 3001 2 SVT=5001 2003 3 SVT=5001 5013 4 SVT=5001 2002 11 SVT=5001 2002 12 SVT=2002 2002 13 OSC=6 SVT=5001 3003 5 CC=0 SVT=5001 3002 6 CC=0 SVT=5001 2003 7 CC=3 C=8 2 7 1 0 1 0 CPC=0 C=8 2 7 1 1 2 0 CPC=0 C=8 2 7 6 0 1 0 CPC=3 cx=-342.211 cy=-33.0892 cm=1 SVT=5001 2003 8 CC=3 C=8 3 8 2 0 1 0 CPC=0 C=8 3 8 2 1 2 0 CPC=0 C=8 3 8 6 1 2 0 CPC=3 cx=-325.951 cy=-13.0241 cm=1 SVT=5001 2003 9 CC=0 SVT=5001 2003 10 CC=0 #NT=20092 0 PC=7 posx=1 v=2003 -819.03 posy=1 v=2003 242.889 filter=2 e=6 v=5012 0 addressu=2 e=7 v=5012 0 addressv=2 e=8 v=5012 0 addressw=2 e=9 v=5012 0 bordercolor=2 e=10 v=3003 0.0,0.0,0.0,0.0 group=0 ISC=2 SVT=5001 5011 3 SVT=2002 2002 2 OSC=1 SVT=5001 5013 1 CC=1 C=9 0 1 8 3 4 0 CPC=0 #NT=20109 0 PC=3 name=1 v=5000 AifBempty posx=1 v=2003 -929.788 posy=1 v=2003 -177.968 group=0 ISC=2 SVT=5001 3001 1 SVT=5001 3001 2 OSC=1 SVT=5001 3001 3 CC=1 C=10 0 3 8 1 2 0 CPC=0 #NT=10101 0 PC=2 posx=1 v=2003 1037.56 posy=1 v=2003 143.315 group=0 ISC=2 SVT=5001 3002 0 _Color SVT=5001 1002 0 OSC=2 SVT=5001 3002 0 _Color CC=0 SVT=5001 1002 0 CC=0 #NT=20022 0 PC=2 posx=1 v=2003 -107.769 posy=1 v=2003 151.629 group=0 ISC=2 SVT=5001 2003 1 SVT=5001 2003 2 OSC=1 SVT=5001 2003 3 CC=1 C=12 0 3 3 1 2 0 CPC=0 #NT=10100 1 UV Set-Hw Shader Nodes-Inputs Common PC=14 name=1 v=5000 _UVSet version=1 v=2003 1.65 posx=1 v=2003 -1202.77 posy=1 v=2003 -254.427 classname=1 v=5000 UV Set submenuname=1 v=5000 Inputs Common bitmapnodeindex=1 v=2002 65 helpid=1 v=2002 23 grpnodecolor=1 v=5012 5 grpPosX=1 v=2003 -450.0 grpPosY=1 v=2003 -221.667 flipy_UVs=2 e=1 v=2001 1 uvindex_UVs=2 e=2 v=2002 0 uvsetname_UVs=2 e=3 v=5000 group=0 ISC=2 SVT=2002 2002 0 SVT=5001 1002 0 OSC=3 SVT=5001 3003 0 _UVWZ CC=0 SVT=5001 3001 0 _UV CC=1 C=13 1 0 10 0 1 0 CPC=0 SVT=5001 1002 0 CC=0 #NT=20159 0 PC=2 posx=1 v=2003 -1241.03 posy=1 v=2003 264.102 group=0 ISC=0 OSC=1 SVT=2002 2002 1 CC=3 C=14 0 1 7 2 4 0 CPC=0 C=14 0 1 9 1 2 0 CPC=0 C=14 0 1 8 6 13 0 CPC=0 #NT=10100 1 Normal Space Converter-Hw Shader Nodes-Various PC=13 name=1 v=5000 NormalSpaceConversion version=1 v=2003 1.02 posx=1 v=2003 788.919 posy=1 v=2003 148.702 classname=1 v=5000 Normal Space Converter submenuname=1 v=5000 Various bitmapnodeindex=1 v=2002 60 isadvanced=1 v=2001 1 helpid=1 v=2002 67 grpnodecolor=1 v=5012 7 grpPosX=1 v=2003 -1341.29 grpPosY=1 v=2003 -46.985 options_Normal=2 e=800 v=5012 0 group=0 ISC=3 SVT=5001 3002 0 Normal SVT=5001 2003 0 Normal Height SVT=1001 1002 0 OSC=2 SVT=5001 3002 0 Normal CC=1 C=15 0 0 11 0 0 0 CPC=0 SVT=5001 1002 0 CC=0 #NT=20175 0 PC=3 posx=1 v=2003 -321.25 posy=1 v=2003 -138.75 text=1 v=5000 color dnmz_texture(string path, float u, float v, int swrap, int twrap, string alphaParam, float a)\n{\n string swrapParam;\n string twrapParam;\n\n if(swrap == 0)\n swrapParam = "periodic";\n else if(swrap == 1)\n swrapParam = "clamp";\n else if(swrap == 2)\n swrapParam = "mirror";\n else \n swrapParam = "black";\n\n if(twrap == 0)\n twrapParam = "periodic";\n else if(twrap == 1)\n twrapParam = "clamp";\n else if(twrap == 2)\n twrapParam = "mirror";\n else\n twrapParam = "black";\n\n color map = texture(path, u, v, alphaParam, a, "swrap", swrapParam, "twrap", twrapParam);\n map = DeGamma(map);\n return map;\n}\n\ncolor GetDerivedZNormalMap(color map)\n{\n float r = map[0];\n float g = map[1];\n float b = sqrt(1.0 - (r*r - g*g));\n \n color tsv = color(r,g,b) * 2 - 1;\n normal tsn = normalize(vector(tsv));\n vector Normal = N;\n Normal = -dPdv * tsn[1] + dPdu * tsn[0] + Normal * tsn[2];\n Normal = normalize(Normal);\n return color(Normal);\n}\n\nGetDerivedZNormalMap(dnmz_texture( [[ PROP = texturepath_MyTexture ]], [[ INPUT = UV.x ? u ]], [[ INPUT = UV.y ? v ]], [[ PROP = addressu_SamplerState ]], [[ PROP = addressv_SamplerState ]] ) )\n group=0 ISC=0 OSC=0