ÿþ<?xml version="1.0" encoding="UTF-16" standalone="no"?> <fxstudio_project fileversion="3" buildversion="1.7.202.1100" originalpath="F:\devrel\SDK\MEDIA\projects\ToksvigAA.fxproj"><system_settings><searchpaths><texture><path name="F:\devrel\SDK\MEDIA\projects\"/><path name="C:\devrel\NV_SDK_DOCS\Presentations\2004\SIGGRAPH_2004\Projects\"/><path name="C:\devrel\Playpen\kbjorke\fxcomposer\"/><path name="F:\Playpen\HLSL\"/><path name="C:\devrel\Playpen\kbjorke\HLSL\"/></texture><shader><path name="F:\devrel\SDK\MEDIA\projects\"/><path name="C:\devrel\NV_SDK_DOCS\Presentations\2004\SIGGRAPH_2004\Projects\"/><path name="C:\devrel\Playpen\kbjorke\fxcomposer\"/><path name="F:\Playpen\HLSL\"/><path name="C:\devrel\Playpen\kbjorke\HLSL\"/></shader><model><path name="F:\devrel\SDK\MEDIA\projects\"/><path name="C:\devrel\NV_SDK_DOCS\Presentations\2004\SIGGRAPH_2004\Projects\"/><path name="C:\devrel\Playpen\kbjorke\fxcomposer\"/><path name="F:\Playpen\HLSL\"/><path name="C:\devrel\Playpen\kbjorke\HLSL\"/></model></searchpaths></system_settings><scene objectid="1" sceneticks="100"><parameterlist objectid="2"><connectionparameter objectid="3" name="World" semantic="WORLD" type="5" rows="4" columns="4" handle="65077624" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="1.320243e-036,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="View" semantic="VIEW" type="5" rows="4" columns="4" handle="3531648" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="4.945586e-039,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="-8.114966e-001,-4.688734e-001,-3.487563e-001,0.000000e+000,2.119043e-006,5.968180e-001,-8.023766e-001,0.000000e+000,5.843571e-001,-6.511266e-001,-4.843148e-001,0.000000e+000,5.616554e-002,4.071548e-001,9.447068e-001,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Projection" semantic="PROJECTION" type="5" rows="4" columns="4" handle="3531064" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="1.321590e-036,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.275299e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.191754e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.003922e+000,1.000000e+000,0.000000e+000,0.000000e+000,-7.172006e-003,0.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Scene Center" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="65053056" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="8.524752e-002, 8.091406e-001, 2.403786e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Scene Extents" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="65055136" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="9.602475e-001, 8.091406e-001, 1.115379e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Screen Size" semantic="UNKNOWN" type="2" rows="0" columns="0" handle="3525776" animated="0" numkeys="1" defaulttype="float2" defaultvalue="2.560000e+002, 2.560000e+002"><keys><key num="0" value="4.850000e+002, 5.190000e+002"/></keys></connectionparameter><connectionparameter objectid="3" name="Show Lights" semantic="UNKNOWN" type="4" rows="0" columns="0" handle="65114568" animated="0" numkeys="1" defaulttype="bool" defaultvalue="1"><keys><key num="0" value="1"/></keys></connectionparameter><connectionparameter objectid="3" name="Show Cameras" semantic="UNKNOWN" type="4" rows="0" columns="0" handle="3538656" animated="0" numkeys="1" defaulttype="bool" defaultvalue="1"><keys><key num="0" value="1"/></keys></connectionparameter><connectionparameter objectid="3" name="Show Text" semantic="UNKNOWN" type="4" rows="0" columns="0" handle="65054744" animated="0" numkeys="1" defaulttype="bool" defaultvalue="1"><keys><key num="0" value="1"/></keys></connectionparameter></parameterlist><material objectid="4" name="Toksvig-split-directional" handle="336" effect="F:\devrel\SDK\MEDIA\HLSL\Toksvig-split-directional.fx"><parameterlist objectid="2"><connectionparameter objectid="3" name="Script" semantic="STANDARDSGLOBAL" type="3" rows="0" columns="0" handle="99484816" animated="0" numkeys="1" defaulttype="float" defaultvalue="8.000000e-001"><keys><key num="0" value="8.000000e-001"/></keys><annotation nametype="9" valuetype="9" name="SCRIPT" value="Technique=Technique?Toksvig:Non_Toksvig;"/><annotation nametype="9" valuetype="9" name="SCRIPTCLASS" value="OBJECT"/><annotation nametype="9" valuetype="9" name="SCRIPTORDER" value="STANDARD"/><annotation nametype="9" valuetype="9" name="SCRIPTOUTPUT" value="COLOR"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="NONE"/></connectionparameter><connectionparameter objectid="3" name="WorldITXf" semantic="WORLDINVERSETRANSPOSE" type="5" rows="4" columns="4" handle="86700288" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys><annotation nametype="9" valuetype="9" name="UIWIDGET" value="NONE"/></connectionparameter><connectionparameter objectid="3" name="WvpXf" semantic="WORLDVIEWPROJECTION" type="5" rows="4" columns="4" handle="101426712" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,"><keys><key num="0" value="1.732051e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.732051e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.012658e+000,1.000000e+000,0.000000e+000,0.000000e+000,2.481013e+000,2.500000e+000,"/></keys><annotation nametype="9" valuetype="9" name="UIWIDGET" value="NONE"/></connectionparameter><connectionparameter objectid="3" name="WorldXf" semantic="WORLD" type="5" rows="4" columns="4" handle="87065000" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys><annotation nametype="9" valuetype="9" name="UIWIDGET" value="NONE"/></connectionparameter><connectionparameter objectid="3" name="ViewIXf" semantic="VIEWINVERSE" type="5" rows="4" columns="4" handle="99431928" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,-2.500000e+000,1.000000e+000,"/></keys><annotation nametype="9" valuetype="9" name="UIWIDGET" value="NONE"/></connectionparameter><connectionparameter objectid="3" name="ScreenSize" semantic="VIEWPORTPIXELSIZE" type="2" rows="0" columns="0" handle="87392448" animated="0" numkeys="1" defaulttype="float2" defaultvalue="0.000000e+000, 0.000000e+000"><keys><key num="0" value="6.400000e+001, 6.400000e+001"/></keys><annotation nametype="9" valuetype="9" name="UIWIDGET" value="NONE"/></connectionparameter><connectionparameter objectid="3" name="LightDir" semantic="DIRECTION" type="1" rows="0" columns="0" handle="87109824" animated="0" numkeys="1" defaulttype="float3" defaultvalue="-1.000000e+000, -1.000000e+000, -2.000000e-001"><keys><key num="0" value="-1.000000e+000, -1.000000e+000, -2.000000e-001"/></keys><annotation nametype="9" valuetype="9" name="OBJECT" value="DIRECTIONALLIGHT"/><annotation nametype="9" valuetype="9" name="SPACE" value="WORLD"/><annotation nametype="9" valuetype="9" name="UINAME" value="Direction"/><calculator objectid="5" name="Directional Light : DIRECTION"><nvcalculator_load objectid="6" scenehandle="148" paramname="Object Direction" regdest="1" constantvalue="UNKNOWN" constanttype="2147483647" constantrows="0" constantcolumns="0"/><nvcalculator_load objectid="6" scenehandle="151" paramname="Current Transform" regdest="2" constantvalue="UNKNOWN" constanttype="2147483647" constantrows="0" constantcolumns="0"/><nvcalculator_mul objectid="7" regdest="3" reg1="1" reg2="2" op="1"/><nvcalculator_normalize objectid="8" regdest="3" regsource="3"/><nvcalculator_mov objectid="9" type="1" rows="0" columns="0" regdest="0" regsource="3"/></calculator></connectionparameter><connectionparameter objectid="3" name="LightColor" semantic="SPECULAR" type="1" rows="0" columns="0" handle="99577864" animated="0" numkeys="1" defaulttype="float3" defaultvalue="1.000000e+000, 1.000000e+000, 1.000000e+000"><keys><key num="0" value="0.000000e+000, 1.000000e+000, 1.000000e+000"/></keys><annotation nametype="9" valuetype="9" name="UINAME" value="Lamp"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="COLOR"/></connectionparameter><connectionparameter objectid="3" name="AmbiLightColor" semantic="AMBIENT" type="1" rows="0" columns="0" handle="102450160" animated="0" numkeys="1" defaulttype="float3" defaultvalue="7.000000e-002, 7.000000e-002, 7.000000e-002"><keys><key num="0" value="7.000000e-002, 7.000000e-002, 7.000000e-002"/></keys><annotation nametype="9" valuetype="9" name="UINAME" value="Ambient"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="COLOR"/></connectionparameter><connectionparameter objectid="3" name="SurfColor" semantic="DIFFUSE" type="1" rows="0" columns="0" handle="102449216" animated="0" numkeys="1" defaulttype="float3" defaultvalue="1.000000e+000, 1.000000e+000, 1.000000e+000"><keys><key num="0" value="1.000000e+000, 1.000000e+000, 0.000000e+000"/></keys><annotation nametype="9" valuetype="9" name="UINAME" value="Surface"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="COLOR"/></connectionparameter><connectionparameter objectid="3" name="Kd" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="102447936" animated="0" numkeys="1" defaulttype="float" defaultvalue="6.000000e-001"><keys><key num="0" value="6.000000e-001"/></keys><annotation nametype="9" valuetype="3" name="UIMAX" value="1.500000e+000"/><annotation nametype="9" valuetype="3" name="UIMIN" value="0.000000e+000"/><annotation nametype="9" valuetype="9" name="UINAME" value="Diffuse"/><annotation nametype="9" valuetype="3" name="UISTEP" value="1.000000e-002"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="SLIDER"/></connectionparameter><connectionparameter objectid="3" name="Ks" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="102404888" animated="0" numkeys="1" defaulttype="float" defaultvalue="1.000000e+000"><keys><key num="0" value="1.000000e+000"/></keys><annotation nametype="9" valuetype="3" name="UIMAX" value="1.500000e+000"/><annotation nametype="9" valuetype="3" name="UIMIN" value="0.000000e+000"/><annotation nametype="9" valuetype="9" name="UINAME" value="Specular"/><annotation nametype="9" valuetype="3" name="UISTEP" value="1.000000e-002"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="SLIDER"/></connectionparameter><connectionparameter objectid="3" name="Bumpy" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="102132952" animated="0" numkeys="1" defaulttype="float" defaultvalue="1.000000e+000"><keys><key num="0" value="1.000000e+000"/></keys><annotation nametype="9" valuetype="9" name="UIWIDGET" value="NONE"/></connectionparameter><connectionparameter objectid="3" name="URep" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="102332408" animated="0" numkeys="1" defaulttype="float" defaultvalue="1.000000e+000"><keys><key num="0" value="1.400000e+001"/></keys><annotation nametype="9" valuetype="3" name="UIMAX" value="4.000000e+001"/><annotation nametype="9" valuetype="3" name="UIMIN" value="1.000000e+000"/><annotation nametype="9" valuetype="9" name="UINAME" value="U Repeat"/><annotation nametype="9" valuetype="3" name="UISTEP" value="1.000000e+000"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="SLIDER"/></connectionparameter><connectionparameter objectid="3" name="VRep" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="138968400" animated="0" numkeys="1" defaulttype="float" defaultvalue="1.000000e+000"><keys><key num="0" value="1.300000e+001"/></keys><annotation nametype="9" valuetype="3" name="UIMAX" value="4.000000e+001"/><annotation nametype="9" valuetype="3" name="UIMIN" value="1.000000e+000"/><annotation nametype="9" valuetype="9" name="UINAME" value="V Repeat"/><annotation nametype="9" valuetype="3" name="UISTEP" value="1.000000e+000"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="SLIDER"/></connectionparameter><connectionparameter objectid="3" name="NormalTexture" semantic="NORMAL" type="6" rows="0" columns="0" handle="139504856" animated="0" numkeys="1" defaulttype="texture" defaultvalue=""><keys><key num="0" value="F:\devrel\SDK\MEDIA\textures\2D\bulge.tga"/></keys><annotation nametype="9" valuetype="9" name="RESOURCENAME" value="default_bump_normal.dds"/><annotation nametype="9" valuetype="9" name="RESOURCETYPE" value="2D"/></connectionparameter><connectionparameter objectid="3" name="NormalSampler" semantic="UNKNOWN" type="12" rows="0" columns="0" handle="138968648" animated="0" numkeys="1" defaulttype="sampler" defaultvalue="UNKNOWN"><keys><key num="0" value="UNKNOWN"/></keys></connectionparameter><connectionparameter objectid="3" name="SpecTex" semantic="UNKNOWN" type="6" rows="0" columns="0" handle="139502568" animated="0" numkeys="1" defaulttype="texture" defaultvalue=""><keys><key num="0" value=""/></keys><annotation nametype="9" valuetype="9" name="FORMAT" value="g16r16"/><annotation nametype="9" valuetype="9" name="FUNCTION" value="make_specular_tex"/><annotation nametype="9" valuetype="8" name="HEIGHT" value="256"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="NONE"/><annotation nametype="9" valuetype="8" name="WIDTH" value="256"/></connectionparameter><connectionparameter objectid="3" name="SpecSampler" semantic="UNKNOWN" type="12" rows="0" columns="0" handle="139583480" animated="0" numkeys="1" defaulttype="sampler" defaultvalue="UNKNOWN"><keys><key num="0" value="UNKNOWN"/></keys></connectionparameter></parameterlist><ScriptParams num="0" value="UNKNOWN"><parameterlist objectid="2"><connectionparameter objectid="3" name="Technique" semantic="UNKNOWN" type="22" rows="0" columns="0" handle="87394120" animated="0" numkeys="0"><enum objectid="10" selection="0"><string objectid="11" text="Toksvig"/><string objectid="11" text="Non_Toksvig"/></enum></connectionparameter></parameterlist></ScriptParams></material><node objectid="12" name="PlaneXZ" materialoverride="336" handle="146" worldskin="0"><plane objectid="13" name=""><parameterlist objectid="2"><connectionparameter objectid="3" name="Width" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="102413248" animated="0" numkeys="1" defaulttype="float" defaultvalue="1.750000e+000"><keys><key num="0" value="1.750000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Height" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="139665632" animated="0" numkeys="1" defaulttype="float" defaultvalue="1.750000e+000"><keys><key num="0" value="1.750000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Columns" semantic="UNKNOWN" type="7" rows="0" columns="0" handle="139580608" animated="0" numkeys="1" defaulttype="dword" defaultvalue="50"><keys><key num="0" value="50"/></keys></connectionparameter><connectionparameter objectid="3" name="Rows" semantic="UNKNOWN" type="7" rows="0" columns="0" handle="139833688" animated="0" numkeys="1" defaulttype="dword" defaultvalue="50"><keys><key num="0" value="50"/></keys></connectionparameter></parameterlist></plane><texgen objectid="14" name=""><parameterlist objectid="2"><connectionparameter objectid="3" name="Coord Set" semantic="UNKNOWN" type="7" rows="0" columns="0" handle="139808152" animated="0" numkeys="1" defaulttype="dword" defaultvalue="0"><keys><key num="0" value="0"/></keys></connectionparameter></parameterlist></texgen><meshmender objectid="15" name=""><parameterlist objectid="2"/></meshmender></node><node objectid="16" name="Default Scene Camera" handle="147" target="4294967295" defaultcamera="1" activecamera="1"><parameterlist objectid="2"><connectionparameter objectid="3" name="Focal Length" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="139810888" animated="0" numkeys="1" defaulttype="float" defaultvalue="1.000000e+000"><keys><key num="0" value="1.244975e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Field of View" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="139811704" animated="0" numkeys="1" defaulttype="float" defaultvalue="8.000000e+001"><keys><key num="0" value="8.000000e+001"/></keys></connectionparameter><connectionparameter objectid="3" name="Depth Range" semantic="UNKNOWN" type="2" rows="0" columns="0" handle="139812568" animated="0" numkeys="1" defaulttype="float2" defaultvalue="0.000000e+000, 1.000000e+000"><keys><key num="0" value="7.143990e-003, 1.828861e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Look Direction" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="139809176" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 1.000000e+000"><keys><key num="0" value="-3.487563e-001, -8.023766e-001, -4.843148e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Up Direction" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="139809712" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 1.000000e+000, 0.000000e+000"><keys><key num="0" value="-4.688736e-001, 5.968179e-001, -6.511267e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Lookat Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="87166536" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="-8.114966e-001,-4.688734e-001,-3.487563e-001,0.000000e+000,2.119043e-006,5.968180e-001,-8.023766e-001,0.000000e+000,5.843571e-001,-6.511266e-001,-4.843148e-001,0.000000e+000,5.616554e-002,4.071548e-001,9.447068e-001,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Camera Position" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="87415008" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, -1.000000e+000"><keys><key num="0" value="5.659547e-001, 5.150132e-001, 6.898241e-001"/></keys></connectionparameter></parameterlist></node><node objectid="17" name="Directional Light" handle="148" type="2"><parameterlist objectid="2"><connectionparameter objectid="3" name="Diffuse" semantic="DIFFUSE" type="0" rows="0" columns="0" handle="87384392" animated="1" numkeys="1" defaulttype="float4" defaultvalue="1.000000e+000, 1.000000e+000, 1.000000e+000, 1.000000e+000"><keys><key num="0" value="1.000000e+000, 1.000000e+000, 1.000000e+000, 1.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Specular" semantic="SPECULAR" type="0" rows="0" columns="0" handle="87375880" animated="1" numkeys="1" defaulttype="float4" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="2.000000e-001, 2.000000e-001, 2.000000e-001, 2.000000e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Ambient" semantic="AMBIENT" type="0" rows="0" columns="0" handle="99370904" animated="1" numkeys="1" defaulttype="float4" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="1.500000e-001, 1.500000e-001, 1.500000e-001, 1.500000e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Exponent" semantic="SPECULARPOWER" type="3" rows="0" columns="0" handle="139943208" animated="1" numkeys="1" defaulttype="float" defaultvalue="1.000000e+000"><keys><key num="0" value="3.000000e+001"/></keys></connectionparameter><connectionparameter objectid="3" name="Object Position" semantic="POSITION" type="1" rows="0" columns="0" handle="87054704" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="0.000000e+000, 0.000000e+000, 0.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Object Direction" semantic="DIRECTION" type="1" rows="0" columns="0" handle="87090880" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="0.000000e+000, 0.000000e+000, 1.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="View" semantic="VIEW" type="5" rows="4" columns="4" handle="139941544" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="7.674144e-001,2.320144e-001,5.976992e-001,0.000000e+000,2.320145e-001,7.685552e-001,-5.962315e-001,0.000000e+000,-5.976993e-001,5.962315e-001,5.359696e-001,0.000000e+000,3.676716e-001,-1.682735e-001,7.306692e-001,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Projection" semantic="PROJECTION" type="5" rows="4" columns="4" handle="139946968" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.958810e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.830488e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.003922e+000,1.000000e+000,0.000000e+000,0.000000e+000,-8.264950e-003,0.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Depth Range" semantic="UNKNOWN" type="2" rows="0" columns="0" handle="139941016" animated="0" numkeys="1" defaulttype="float2" defaultvalue="0.000000e+000, 1.000000e+000"><keys><key num="0" value="8.232664e-003, 2.107562e+000"/></keys></connectionparameter></parameterlist></node><nvtransformlink objectid="18" parent="0" handle="145" name="Root Transform" animated="1" separable="0"><nodes/><parameterlist objectid="2"><connectionparameter objectid="3" name="Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="87377432" animated="1" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Reference Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="137723712" animated="1" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Rotation" semantic="UNKNOWN" type="25" rows="0" columns="0" handle="87376296" animated="1" numkeys="1" defaulttype="quat" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000, 1.000000e+000"><keys><key num="0" value="0.000000e+000, 0.000000e+000, 0.000000e+000, 1.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Translation" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="87310704" animated="1" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="0.000000e+000, 0.000000e+000, 0.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Scale" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="99410360" animated="1" numkeys="1" defaulttype="float3" defaultvalue="1.000000e+000, 1.000000e+000, 1.000000e+000"><keys><key num="0" value="1.000000e+000, 1.000000e+000, 1.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Current Transform" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="99242488" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys></connectionparameter></parameterlist><nvtransformlink objectid="18" parent="145" handle="149" name="Object Transform" animated="1" separable="1"><nodes><node handle="146"/></nodes><parameterlist objectid="2"><connectionparameter objectid="3" name="Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="102441336" animated="1" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Reference Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="102451144" animated="1" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Rotation" semantic="UNKNOWN" type="25" rows="0" columns="0" handle="102445048" animated="1" numkeys="1" defaulttype="quat" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000, 1.000000e+000"><keys><key num="0" value="0.000000e+000, 0.000000e+000, 0.000000e+000, 1.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Translation" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="102444176" animated="1" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="0.000000e+000, 0.000000e+000, 0.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Scale" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="102443264" animated="1" numkeys="1" defaulttype="float3" defaultvalue="1.000000e+000, 1.000000e+000, 1.000000e+000"><keys><key num="0" value="1.000000e+000, 1.000000e+000, 1.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Current Transform" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="102445960" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys></connectionparameter></parameterlist></nvtransformlink><nvtransformlink objectid="18" parent="145" handle="150" name="Default Camera Transform" animated="0" separable="1"><nodes><node handle="147"/></nodes><parameterlist objectid="2"><connectionparameter objectid="3" name="Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="102438080" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Reference Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="102440056" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Rotation" semantic="UNKNOWN" type="25" rows="0" columns="0" handle="139806888" animated="0" numkeys="1" defaulttype="quat" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000, 1.000000e+000"><keys><key num="0" value="-1.378406e-001, 8.503866e-001, -4.273067e-001, -2.743205e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Translation" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="139807496" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="5.659547e-001, 5.150132e-001, 6.898241e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Scale" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="102437168" animated="0" numkeys="1" defaulttype="float3" defaultvalue="1.000000e+000, 1.000000e+000, 1.000000e+000"><keys><key num="0" value="1.000000e+000, 1.000000e+000, 1.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Current Transform" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="102442280" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="-8.114969e-001,2.384186e-006,5.843574e-001,0.000000e+000,-4.688736e-001,5.968179e-001,-6.511268e-001,0.000000e+000,-3.487566e-001,-8.023768e-001,-4.843149e-001,0.000000e+000,5.659547e-001,5.150132e-001,6.898241e-001,1.000000e+000,"/></keys></connectionparameter></parameterlist></nvtransformlink><nvtransformlink objectid="18" parent="145" handle="151" name="light transform" animated="1" separable="1"><nodes><node handle="148"/></nodes><parameterlist objectid="2"><connectionparameter objectid="3" name="Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="102174008" animated="1" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Reference Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="86803968" animated="1" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Rotation" semantic="UNKNOWN" type="25" rows="0" columns="0" handle="99978232" animated="1" numkeys="1" defaulttype="quat" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000, 1.000000e+000"><keys><key num="0" value="3.401799e-001, 3.410173e-001, 0.000000e+000, 8.763475e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Translation" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="99318544" animated="1" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="-6.798351e-001, 4.796705e-001, -7.152954e-002"/></keys></connectionparameter><connectionparameter objectid="3" name="Scale" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="102438680" animated="1" numkeys="1" defaulttype="float3" defaultvalue="1.000000e+000, 1.000000e+000, 1.000000e+000"><keys><key num="0" value="1.000000e+000, 1.000000e+000, 1.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Current Transform" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="99890536" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.000000e+000,"><keys><key num="0" value="7.674144e-001,2.320145e-001,-5.976993e-001,0.000000e+000,2.320145e-001,7.685553e-001,5.962316e-001,0.000000e+000,5.976993e-001,-5.962316e-001,5.359697e-001,0.000000e+000,-6.798351e-001,4.796705e-001,-7.152954e-002,1.000000e+000,"/></keys></connectionparameter></parameterlist></nvtransformlink></nvtransformlink></scene><objects><object objectid="17" objectguid="92143635_32865_19454_144_22_137_91_158_38_251_67" objectname="NVLight_Directional Object" progid="nvsys.NVLight_Directional.1"/><object objectid="10" objectguid="106012044_21786_18731_137_118_191_235_4_148_207_152" objectname="NVEnum Object" progid="nvsys.NVEnum.1"/><object objectid="8" objectguid="579911188_50621_18994_170_80_102_6_63_80_234_94" objectname="NVCalculator_Normalize Object" progid="nvsys.NVCalculator_Normalize.1"/><object objectid="5" objectguid="687344697_14784_17624_175_112_25_78_110_206_178_195" objectname="NVCalculator Object" progid="nvsys.NVCalculator.1"/><object objectid="11" objectguid="993927070_6119_19036_183_189_36_70_90_161_39_240" objectname="NVString Object" progid="nvsys.NVString.1"/><object objectid="3" objectguid="1178903711_54835_17816_162_225_77_133_92_204_97_107" objectname="NVConnectionParameter Object" progid="nvsys.NVConnectionParameter.1"/><object objectid="12" objectguid="1335965045_63750_16786_166_174_116_14_177_170_26_82" objectname="NVGeoPipe Object" progid="nvsys.NVGeoPipe.1"/><object objectid="1" objectguid="1394174672_42515_16399_189_63_62_31_182_9_209_60" objectname="NVScene Object" progid="nvsys.NVScene.1"/><object objectid="4" objectguid="1401340335_59252_17807_172_96_248_52_119_74_181_173" objectname="NVMaterial Object" progid="nvsys.NVMaterial.1"/><object objectid="16" objectguid="1675712286_15683_20022_149_108_42_250_122_123_231_64" objectname="NVCamera Object" progid="nvsys.NVCamera.1"/><object objectid="9" objectguid="1755565597_56309_18722_149_152_96_3_18_125_126_123" objectname="NVCalculator_Assign Object" progid="nvsys.NVCalculator_Assign.1"/><object objectid="18" objectguid="2342579002_10168_19906_178_150_26_144_17_106_220_182" objectname="NVTransformLink Object" progid="nvsys.NVTransformLink.1"/><object objectid="15" objectguid="2516468428_38854_16959_155_101_192_176_42_10_71_202" objectname="NVGeoPipeObject_MeshMender Object" progid="nvsys.NVGeoPipeObject_MeshMender.1"/><object objectid="13" objectguid="3086621292_36320_17872_166_144_232_189_60_91_123_131" objectname="NVGeoPipeObject_PlaneXZ Object" progid="nvsys.NVGeoPipeObject_PlaneXZ.1"/><object objectid="6" objectguid="3098681227_22869_16810_191_237_249_13_61_143_28_123" objectname="NVCalculator_Load Object" progid="nvsys.NVCalculator_Load.1"/><object objectid="2" objectguid="3275223899_28196_19999_162_153_111_232_35_119_165_23" objectname="NVParameterList Object" progid="nvsys.NVParameterList.1"/><object objectid="14" objectguid="4057994036_6371_17546_152_57_13_140_51_98_219_190" objectname="NVGeoPipeObject_TexGen Object" progid="nvsys.NVGeoPipeObject_TexGen.1"/><object objectid="7" objectguid="4162726501_8958_17137_170_77_131_38_3_90_246_20" objectname="NVCalculator_Mul Object" progid="nvsys.NVCalculator_Mul.1"/></objects><media_objects><texture path="F:\devrel\SDK\MEDIA\textures\2D\bulge.tga"/><effect path="F:\devrel\SDK\MEDIA\HLSL\Toksvig-split-directional.fx"><![CDATA[/*********************************************************************NVMH3**** File: $Id: //sw/devrel/SDK/MEDIA/HLSL/Toksvig-split-directional.fx#3 $ Copyright NVIDIA Corporation 2004 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED *AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Comments: Toksvig-factor bump mapping Note use of 16-bit textures (g16r16) for precision with performance ******************************************************************************/ // Compile-time flags // feature flags //#define DO_COLORTEX float Script : STANDARDSGLOBAL < string UIWidget = "none"; string ScriptClass = "object"; string ScriptOrder = "standard"; string ScriptOutput = "color"; // We just call a script in the main technique. string Script = "Technique=Technique?Toksvig:Non_Toksvig;"; > = 0.8; // version # /////////////// #define SPEC_EXPON 64.0 #define TOX_TABLE_SIZE 256 #define TOX_FORMAT "g16r16" /************* "UN-TWEAKABLES," TRACKED BY CPU APPLICATION **************/ float4x4 WorldITXf : WorldInverseTranspose <string UIWidget="None";>; float4x4 WvpXf : WorldViewProjection <string UIWidget="None";>; float4x4 WorldXf : World <string UIWidget="None";>; float4x4 ViewIXf : ViewInverse <string UIWidget="None";>; float2 ScreenSize : VIEWPORTPIXELSIZE <string UIWidget="None";>; /////////////////////////////////////////////////////////////// /// TWEAKABLES //////////////////////////////////////////////// /////////////////////////////////////////////////////////////// ////////////////////////////////////////////// light float3 LightDir : DIRECTION < string UIName = "Direction"; string Object = "DirectionalLight"; string Space = "World"; > = {-1.0f, -1.0f, -0.2f}; float3 LightColor : SPECULAR < string UIName = "Lamp"; string UIWidget = "Color"; > = {1.0f, 1.0f, 1.0f}; ////////////////////////////////////////////// ambient light float3 AmbiLightColor : Ambient < string UIName = "Ambient"; string UIWidget = "Color"; > = {0.07f, 0.07f, 0.07f}; ////////////////////////////////////////////// surface float3 SurfColor : Diffuse < string UIName = "Surface"; string UIWidget = "Color"; > = {1.0f, 1.0f, 1.0f}; float Kd < string UIWidget = "slider"; float UIMin = 0.0; float UIMax = 1.5; float UIStep = 0.01; string UIName = "Diffuse"; > = 0.6; float Ks < string UIWidget = "slider"; float UIMin = 0.0; float UIMax = 1.5; float UIStep = 0.01; string UIName = "Specular"; > = 1.0; float Bumpy <string UIWidget="None";> = 1.0; float URep < string UIWidget = "slider"; float UIMin = 1.0; float UIMax = 40.0; float UIStep = 1.0; string UIName = "U Repeat"; > = 1.0; float VRep < string UIWidget = "slider"; float UIMin = 1.0; float UIMax = 40.0; float UIStep = 1.0; string UIName = "V Repeat"; > = 1.0; //////////////////////////////////////////////////////// /// TEXTURES /////////////////////////////////////////// //////////////////////////////////////////////////////// #ifdef DO_COLORTEX texture ColorTexture : DIFFUSE < string ResourceName = "default_color.dds"; string TextureType = "2D"; >; sampler2D ColorSampler = sampler_state { Texture = <ColorTexture>; MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; }; #endif /* !DO_COLORTEX */ texture NormalTexture : NORMAL < string ResourceName = "default_bump_normal.dds"; string TextureType = "2D"; >; sampler2D NormalSampler = sampler_state { Texture = <NormalTexture>; MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; }; //////////////////////////////////////////////////////// float spec_func(float s, float NaH, float NaNa) { float toksvig = sqrt(NaNa)/(sqrt(NaNa)+s*(1-sqrt(NaNa))); return (1.0+toksvig*s)/(1.0+s)*pow(NaH/sqrt(NaNa), toksvig*s); } float4 make_specular_tex(float2 Pos : POSITION, float2 Size : PSIZE) : COLOR { float f = spec_func(SPEC_EXPON,Pos.x,Pos.y); return float4(f.xxx,0.0); } texture SpecTex < string function = "make_specular_tex"; int width = TOX_TABLE_SIZE; int height = TOX_TABLE_SIZE; string UIWidget = "None"; string format = (TOX_FORMAT); >; sampler SpecSampler = sampler_state { texture = <SpecTex>; AddressU = CLAMP; AddressV = CLAMP; MIPFILTER = NONE; MINFILTER = ANISOTROPIC; MAGFILTER = ANISOTROPIC; }; ////////////// /*********************************************************/ /************* DATA STRUCTS ******************************/ /*********************************************************/ /* data from application vertex buffer */ struct appdata { float3 Position : POSITION; float4 UV : TEXCOORD0; float4 Normal : NORMAL; float4 Tangent : TANGENT0; float4 Binormal : BINORMAL0; }; struct vertexOutput { float4 HPosition : POSITION; float2 UV : TEXCOORD0; float3 WorldNormal : TEXCOORD1; float3 WorldView : TEXCOORD2; float3 WorldTangent : TEXCOORD3; float3 WorldBinorm : TEXCOORD4; }; /*********************************************************/ /*********** vertex shader *******************************/ /*********************************************************/ vertexOutput basicVS(appdata IN) { vertexOutput OUT; OUT.WorldNormal = normalize(mul(IN.Normal,WorldITXf).xyz); OUT.WorldTangent = normalize(mul(IN.Tangent,WorldITXf).xyz); OUT.WorldBinorm = normalize(mul(IN.Binormal,WorldITXf).xyz); float4 Po = float4(IN.Position.xyz,1.0); // object coordinates float3 Pw = mul(Po,WorldXf).xyz; // world coordinates OUT.UV = (float2(URep,VRep) * IN.UV.xy); OUT.WorldView = normalize(ViewIXf[3].xyz - Pw); // obj coords OUT.HPosition = mul(Po,WvpXf); // screen clipspace coords return OUT; } /*********************************************************/ /*********** pixel shader ********************************/ /*********************************************************/ float4 toksvigPS(vertexOutput IN) : COLOR { float3 Nn = /*normalize*/(IN.WorldNormal); float3 Tn = /*normalize*/(IN.WorldTangent); float3 Bn = /*normalize*/(IN.WorldBinorm); float3 bumps = 2.0 * (tex2D(NormalSampler,IN.UV).xyz-(0.5).xxx); float3 Na = bumps.x * Tn + bumps.y * Bn + bumps.z * Nn; float3 Vn = normalize(IN.WorldView); float3 Ln = /*normalize*/(-LightDir); // normalize() required? FXComposer should provide pre-norm'd value float3 Hn = normalize(Vn + Ln); float NaH = dot(Hn,Na); float NaNa = dot(Na,Na); //float2 texelAdjust = (0.5/TOX_TABLE_SIZE).xx; //float s = tex2D(SpecSampler,float2(NaH,NaNa)+texelAdjust).x; float s = tex2D(SpecSampler,float2(NaH,NaNa)).x; Nn = normalize(Na); float ldn = dot(Ln,Nn); ldn = max(ldn,0); float3 diffContrib = ldn * LightColor; float3 specContrib = ((s * Ks) * LightColor); // add, incorporating ambient light term #ifdef DO_COLORTEX float3 colorTex = SurfColor * tex2D(ColorSampler,IN.UV).xyz; #define SURF_COLOR colorTex #else /* !DO_COLORTEX */ #define SURF_COLOR SurfColor #endif /* !DO_COLORTEX */ float3 result = SURF_COLOR*(Kd*diffContrib+AmbiLightColor) + specContrib; return float4(result.xyz,1.0); } float4 nonToksvigPS(vertexOutput IN) : COLOR { float3 Nn = normalize(IN.WorldNormal); float3 Tn = normalize(IN.WorldTangent); float3 Bn = normalize(IN.WorldBinorm); float3 bumps = (Bumpy*2.0) * (tex2D(NormalSampler,IN.UV).xyz-(0.5).xxx); Nn = (bumps.x*Tn + bumps.y*Bn + bumps.z*Nn); Nn = normalize(Nn); float3 Vn = normalize(IN.WorldView); float3 Ln = normalize(-LightDir); // normalize() required? float3 Hn = normalize(Vn + Ln); float hdn = dot(Hn,Nn); float ldn = dot(Ln,Nn); float4 litVec = lit(ldn,hdn,SPEC_EXPON); float3 diffContrib = litVec.y * LightColor; float3 specContrib = ((litVec.z * Ks) * LightColor); // add, incorporating ambient light term #ifdef DO_COLORTEX float3 colorTex = SurfColor * tex2D(ColorSampler,IN.UV).xyz; #define SURF_COLOR colorTex #else /* !DO_COLORTEX */ #define SURF_COLOR SurfColor #endif /* !DO_COLORTEX */ float3 result = SURF_COLOR*(Kd*diffContrib+AmbiLightColor) + specContrib; return float4(result.xyz,1.0); } //////////////////////////////////////////////////////////////////// /// TECHNIQUES ///////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// technique Toksvig < string Script = "Pass=p0;"; > { pass p0 < string Script = "Draw=geometry;"; > { VertexShader = compile vs_2_0 basicVS(); ZEnable = true; ZWriteEnable = true; CullMode = None; PixelShader = compile ps_2_a toksvigPS(); } } technique Non_Toksvig < string Script = "Pass=p0;"; > { pass p0 < string Script = "Draw=geometry;"; > { VertexShader = compile vs_2_0 basicVS(); ZEnable = true; ZWriteEnable = true; CullMode = None; PixelShader = compile ps_2_a nonToksvigPS(); } } /***************************** eof ***/ ]]></effect></media_objects></fxstudio_project>