ÿþ<?xml version="1.0" encoding="UTF-16" standalone="no"?> <fxstudio_project fileversion="3" buildversion="1.6.1029.1130" originalpath="F:\devrel\SDK\MEDIA\projects\tutorials\perf_tutor.fxproj"><system_settings><searchpaths><texture><path name="F:\devrel\SDK\MEDIA\projects\tutorials\"/><path name="D:\src\sw\devrel\SDK\MEDIA\fxcomposer\tutorials\"/><path name="F:\src\sw\devtools\FXComposer1.0\SDK\MEDIA\fxcomposer\tutorials\"/><path name="C:\DX90SDK\Samples\Media\"/></texture><shader><path name="F:\devrel\SDK\MEDIA\projects\tutorials\"/><path name="D:\src\sw\devrel\SDK\MEDIA\fxcomposer\tutorials\"/><path name="F:\src\sw\devtools\FXComposer1.0\SDK\MEDIA\fxcomposer\tutorials\"/><path name="C:\DX90SDK\Samples\Media\"/></shader><model><path name="F:\devrel\SDK\MEDIA\projects\tutorials\"/><path name="D:\src\sw\devrel\SDK\MEDIA\fxcomposer\tutorials\"/><path name="F:\src\sw\devtools\FXComposer1.0\SDK\MEDIA\fxcomposer\tutorials\"/><path name="C:\DX90SDK\Samples\Media\"/></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="66694384" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="4.941853e-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="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="3530840" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="4.944554e-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="9.967273e-001,6.055697e-002,5.354870e-002,0.000000e+000,2.962708e-007,6.624258e-001,-7.491275e-001,0.000000e+000,-8.083693e-002,7.466758e-001,6.602579e-001,0.000000e+000,-8.599897e-002,4.897660e-002,2.513026e+000,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Projection" semantic="PROJECTION" type="5" rows="4" columns="4" handle="3530256" animated="0" numkeys="1" defaulttype="float4x4" defaultvalue="1.468207e-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.198642e+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,-1.763711e-002,0.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Scene Center" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="3522152" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="-3.124112e-001, 1.005431e+000, -8.053107e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Scene Extents" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="3524232" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="2.006099e+000, 1.874753e+000, 1.805311e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Screen Size" semantic="UNKNOWN" type="2" rows="0" columns="0" handle="66693608" animated="0" numkeys="1" defaulttype="float2" defaultvalue="2.560000e+002, 2.560000e+002"><keys><key num="0" value="5.190000e+002, 5.220000e+002"/></keys></connectionparameter><connectionparameter objectid="3" name="Show Lights" semantic="UNKNOWN" type="4" rows="0" columns="0" handle="66712584" 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="3523840" 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="66752144" animated="0" numkeys="1" defaulttype="bool" defaultvalue="1"><keys><key num="0" value="1"/></keys></connectionparameter></parameterlist><material objectid="4" name="PerfTutor_2" handle="84" effect="F:\devrel\SDK\MEDIA\HLSL\PerfTutor.fx"><parameterlist objectid="2"><connectionparameter objectid="3" name="Script" semantic="STANDARDSGLOBAL" type="3" rows="0" columns="0" handle="86610488" 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?OnePass:Multipass:AmbiOnly:DirOnly:PtOnly;"/><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="97914272" 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><annotation nametype="9" valuetype="9" name="UIWIDGET" value="NONE"/></connectionparameter><connectionparameter objectid="3" name="WvpXf" semantic="WORLDVIEWPROJECTION" type="5" rows="4" columns="4" handle="87005632" 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="87009032" 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="87008320" 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="PointLightPos" semantic="POSITION" type="1" rows="0" columns="0" handle="97912232" animated="0" numkeys="1" defaulttype="float3" defaultvalue="1.000000e+001, 1.000000e+001, 1.000000e+001"><keys><key num="0" value="1.000000e+001, 1.000000e+001, 1.000000e+001"/></keys><annotation nametype="9" valuetype="9" name="OBJECT" value="POINTLIGHT"/><annotation nametype="9" valuetype="9" name="SPACE" value="WORLD"/><annotation nametype="9" valuetype="9" name="UINAME" value="Point Pos"/><calculator objectid="5" name="Default Spot Light : POSITION"><nvcalculator_load objectid="6" scenehandle="20" paramname="Object Position" regdest="1" constantvalue="UNKNOWN" constanttype="2147483647" constantrows="0" constantcolumns="0"/><nvcalculator_load objectid="6" scenehandle="19" paramname="Current Transform" regdest="2" constantvalue="UNKNOWN" constanttype="2147483647" constantrows="0" constantcolumns="0"/><nvcalculator_mul objectid="7" regdest="3" reg1="1" reg2="2" op="0"/><nvcalculator_mov objectid="8" type="1" rows="0" columns="0" regdest="0" regsource="3"/></calculator></connectionparameter><connectionparameter objectid="3" name="PointLightColor" semantic="SPECULAR" type="1" rows="0" columns="0" handle="86565896" animated="0" numkeys="1" defaulttype="float3" defaultvalue="8.000000e-001, 1.000000e+000, 4.000000e-001"><keys><key num="0" value="8.000000e-001, 1.000000e+000, 4.000000e-001"/></keys><annotation nametype="9" valuetype="9" name="UINAME" value="Point Color"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="COLOR"/></connectionparameter><connectionparameter objectid="3" name="PointLightIntensity" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="86674872" animated="0" numkeys="1" defaulttype="float" defaultvalue="8.000000e-001"><keys><key num="0" value="8.000000e-001"/></keys><annotation nametype="9" valuetype="3" name="UIMAX" value="1.200000e+000"/><annotation nametype="9" valuetype="3" name="UIMIN" value="0.000000e+000"/><annotation nametype="9" valuetype="9" name="UINAME" value="Point Intensity"/><annotation nametype="9" valuetype="3" name="UISTEP" value="1.000000e-001"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="SLIDER"/></connectionparameter><connectionparameter objectid="3" name="DirLight" semantic="DIRECTION" type="1" rows="0" columns="0" handle="86593320" animated="0" numkeys="1" defaulttype="float3" defaultvalue="7.070000e-001, 7.070000e-001, -7.070000e-001"><keys><key num="0" value="7.070000e-001, 7.070000e-001, -7.070000e-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="Dir Light"/><calculator objectid="5" name="Default Spot Light : DIRECTION"><nvcalculator_load objectid="6" scenehandle="20" paramname="Object Direction" regdest="1" constantvalue="UNKNOWN" constanttype="2147483647" constantrows="0" constantcolumns="0"/><nvcalculator_load objectid="6" scenehandle="19" 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="9" regdest="3" regsource="3"/><nvcalculator_mov objectid="8" type="1" rows="0" columns="0" regdest="0" regsource="3"/></calculator></connectionparameter><connectionparameter objectid="3" name="DirLightColor" semantic="SPECULAR" type="1" rows="0" columns="0" handle="86588512" animated="0" numkeys="1" defaulttype="float3" defaultvalue="3.000000e-001, 3.000000e-001, 8.000000e-001"><keys><key num="0" value="3.000000e-001, 3.000000e-001, 8.000000e-001"/></keys><annotation nametype="9" valuetype="9" name="UINAME" value="Dir Light Color"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="COLOR"/></connectionparameter><connectionparameter objectid="3" name="AmbiLightColor" semantic="AMBIENT" type="1" rows="0" columns="0" handle="86578640" 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 Light Color"/></connectionparameter><connectionparameter objectid="3" name="SurfColor" semantic="DIFFUSE" type="1" rows="0" columns="0" handle="86583616" animated="0" numkeys="1" defaulttype="float3" defaultvalue="1.000000e+000, 7.000000e-001, 3.000000e-001"><keys><key num="0" value="1.000000e+000, 7.000000e-001, 3.000000e-001"/></keys><annotation nametype="9" valuetype="9" name="UINAME" value="Surface Color"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="COLOR"/></connectionparameter><connectionparameter objectid="3" name="Kd" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="86589968" 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="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="87027360" 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="SpecExpon" semantic="SPECULARPOWER" type="3" rows="0" columns="0" handle="86684200" animated="0" numkeys="1" defaulttype="float" defaultvalue="1.200000e+001"><keys><key num="0" value="1.200000e+001"/></keys><annotation nametype="9" valuetype="3" name="UIMAX" value="1.280000e+002"/><annotation nametype="9" valuetype="3" name="UIMIN" value="1.000000e+000"/><annotation nametype="9" valuetype="9" name="UINAME" value="Specular power"/><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="Metalness" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="86590952" animated="0" numkeys="1" defaulttype="float" defaultvalue="2.000000e-001"><keys><key num="0" value="2.000000e-001"/></keys><annotation nametype="9" valuetype="3" name="UIMAX" value="1.000000e+000"/><annotation nametype="9" valuetype="3" name="UIMIN" value="0.000000e+000"/><annotation nametype="9" valuetype="9" name="UINAME" value="Metalness"/><annotation nametype="9" valuetype="3" name="UISTEP" value="1.000000e-001"/><annotation nametype="9" valuetype="9" name="UIWIDGET" value="SLIDER"/></connectionparameter><connectionparameter objectid="3" name="NormalizeTex" semantic="UNKNOWN" type="6" rows="0" columns="0" handle="97911432" animated="0" numkeys="1" defaulttype="texture" defaultvalue=""><keys><key num="0" value=""/></keys><annotation nametype="9" valuetype="8" name="DEPTH" value="256"/><annotation nametype="9" valuetype="9" name="FORMAT" value="X8R8G8B8"/><annotation nametype="9" valuetype="9" name="FUNCTION" value="make_normalization_cube"/><annotation nametype="9" valuetype="8" name="HEIGHT" value="256"/><annotation nametype="9" valuetype="9" name="RESOURCETYPE" value="CUBE"/><annotation nametype="9" valuetype="8" name="WIDTH" value="256"/></connectionparameter><connectionparameter objectid="3" name="NormalizeSampler" semantic="UNKNOWN" type="12" rows="0" columns="0" handle="86718344" 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="97913656" animated="0" numkeys="0"><enum objectid="10" selection="0"><string objectid="11" text="OnePass"/><string objectid="11" text="Multipass"/><string objectid="11" text="AmbiOnly"/><string objectid="11" text="DirOnly"/><string objectid="11" text="PtOnly"/></enum></connectionparameter></parameterlist></ScriptParams></material><node objectid="12" name="Teapot" materialoverride="84" handle="17" worldskin="0"><teapot objectid="13" name=""><parameterlist objectid="2"/></teapot><texgen objectid="14" name=""><parameterlist objectid="2"><connectionparameter objectid="3" name="Coord Set" semantic="UNKNOWN" type="7" rows="0" columns="0" handle="86328936" 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 Spot Light" handle="20" type="3"><parameterlist objectid="2"><connectionparameter objectid="3" name="Diffuse" semantic="DIFFUSE" type="0" rows="0" columns="0" handle="86573120" 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="86567032" 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="86566472" 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="86596520" 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="86591992" 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="86589504" 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="Umbra" semantic="LIGHTUMBRA" type="3" rows="0" columns="0" handle="86584848" animated="1" numkeys="1" defaulttype="float" defaultvalue="5.000000e-001"><keys><key num="0" value="1.570796e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Penumbra" semantic="LIGHTPENUMBRA" type="3" rows="0" columns="0" handle="86562656" animated="1" numkeys="1" defaulttype="float" defaultvalue="1.000000e+000"><keys><key num="0" value="2.094395e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Falloff" semantic="LIGHTFALLOFF" type="3" rows="0" columns="0" handle="86572064" animated="1" numkeys="1" defaulttype="float" defaultvalue="1.000000e+000"><keys><key num="0" value="0.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Range" semantic="LIGHTRANGE" type="3" rows="0" columns="0" handle="86563752" animated="1" numkeys="1" defaulttype="float" defaultvalue="1.000000e+000"><keys><key num="0" value="0.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Attenuation" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="86572592" animated="1" numkeys="1" defaulttype="float3" defaultvalue="1.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="1.000000e+000, 0.000000e+000, 0.000000e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="View" semantic="VIEW" type="5" rows="4" columns="4" handle="86575312" 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="4.939710e-001,3.284491e-001,8.050551e-001,0.000000e+000,2.891663e-001,8.111422e-001,-5.083611e-001,0.000000e+000,-8.199850e-001,4.839105e-001,3.057043e-001,0.000000e+000,-1.334974e-001,-2.525268e-001,2.979749e+000,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Projection" semantic="PROJECTION" type="5" rows="4" columns="4" handle="86559928" 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="5.806875e-001,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,5.773502e-001,0.000000e+000,0.000000e+000,0.000000e+000,0.000000e+000,1.003922e+000,1.000000e+000,0.000000e+000,0.000000e+000,-2.061572e-002,0.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Depth Range" semantic="UNKNOWN" type="2" rows="0" columns="0" handle="98055632" animated="0" numkeys="1" defaulttype="float2" defaultvalue="0.000000e+000, 1.000000e+000"><keys><key num="0" value="2.053519e-002, 5.257009e+000"/></keys></connectionparameter></parameterlist></node><node objectid="17" name="Default Scene Camera" handle="22" target="4294967295" defaultcamera="1" activecamera="1"><parameterlist objectid="2"><connectionparameter objectid="3" name="Focal Length" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="86776160" animated="0" numkeys="1" defaulttype="float" defaultvalue="1.000000e+000"><keys><key num="0" value="2.578945e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Field of View" semantic="UNKNOWN" type="3" rows="0" columns="0" handle="87004112" 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="86798728" animated="0" numkeys="1" defaulttype="float2" defaultvalue="0.000000e+000, 1.000000e+000"><keys><key num="0" value="1.756821e-002, 4.497462e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Look Direction" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="86799184" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 1.000000e+000"><keys><key num="0" value="5.354870e-002, -7.491275e-001, 6.602579e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Up Direction" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="87003360" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 1.000000e+000, 0.000000e+000"><keys><key num="0" value="6.055697e-002, 6.624259e-001, 7.466758e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Lookat Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="86798272" 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="9.967273e-001,6.055697e-002,5.354870e-002,0.000000e+000,2.962708e-007,6.624258e-001,-7.491275e-001,0.000000e+000,-8.083693e-002,7.466758e-001,6.602579e-001,0.000000e+000,-8.599897e-002,4.897660e-002,2.513026e+000,1.000000e+000,"/></keys></connectionparameter><connectionparameter objectid="3" name="Camera Position" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="87002904" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, -1.000000e+000"><keys><key num="0" value="-5.181760e-002, 1.850133e+000, -1.702767e+000"/></keys></connectionparameter></parameterlist></node><nvtransformlink objectid="18" parent="0" handle="16" 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="86716424" 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="87010592" 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="86717656" 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="86718960" 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="87006648" 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="86717008" 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="16" handle="18" name="Object Transform" animated="1" separable="1"><nodes><node handle="17"/></nodes><parameterlist objectid="2"><connectionparameter objectid="3" name="Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="86578048" 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="86782392" 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="86580472" 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="86784000" 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="86570712" 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="86781944" 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="16" handle="19" name="Light Transform" animated="1" separable="1"><nodes><node handle="20"/></nodes><parameterlist objectid="2"><connectionparameter objectid="3" name="Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="86982144" 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="98062808" 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="86976384" 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.070539e-001, 5.028591e-001, -1.215423e-002, 8.078924e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Translation" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="86974656" animated="1" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="-2.249977e+000, 1.758227e+000, -8.981878e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Scale" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="86586080" 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="86978520" 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="4.939701e-001,2.891711e-001,-8.199760e-001,0.000000e+000,3.284483e-001,8.111403e-001,4.839093e-001,0.000000e+000,8.050480e-001,-5.083568e-001,3.057013e-001,0.000000e+000,-2.249977e+000,1.758227e+000,-8.981878e-001,1.000000e+000,"/></keys></connectionparameter></parameterlist></nvtransformlink><nvtransformlink objectid="18" parent="16" handle="21" name="Default Camera Transform" animated="0" separable="1"><nodes><node handle="22"/></nodes><parameterlist objectid="2"><connectionparameter objectid="3" name="Matrix" semantic="UNKNOWN" type="5" rows="4" columns="4" handle="86991200" 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="86991984" 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="86994432" animated="0" numkeys="1" defaulttype="quat" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000, 1.000000e+000"><keys><key num="0" value="4.105008e-001, 3.688012e-002, -1.661887e-002, 9.109626e-001"/></keys></connectionparameter><connectionparameter objectid="3" name="Translation" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="86993864" animated="0" numkeys="1" defaulttype="float3" defaultvalue="0.000000e+000, 0.000000e+000, 0.000000e+000"><keys><key num="0" value="-5.181760e-002, 1.850133e+000, -1.702767e+000"/></keys></connectionparameter><connectionparameter objectid="3" name="Scale" semantic="UNKNOWN" type="1" rows="0" columns="0" handle="87004848" 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="86993336" 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="9.967273e-001,2.905726e-007,-8.083694e-002,0.000000e+000,6.055697e-002,6.624259e-001,7.466758e-001,0.000000e+000,5.354869e-002,-7.491275e-001,6.602579e-001,0.000000e+000,-5.181760e-002,1.850133e+000,-1.702767e+000,1.000000e+000,"/></keys></connectionparameter></parameterlist></nvtransformlink></nvtransformlink></scene><objects><object objectid="10" objectguid="106012044_21786_18731_137_118_191_235_4_148_207_152" objectname="NVEnum Object" progid="nvsys.NVEnum.1"/><object objectid="9" 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="1473613511_28199_19656_142_150_59_31_21_147_173_150" objectname="NVLight_Spot Object" progid="nvsys.NVLight_Spot.1"/><object objectid="17" objectguid="1675712286_15683_20022_149_108_42_250_122_123_231_64" objectname="NVCamera Object" progid="nvsys.NVCamera.1"/><object objectid="13" objectguid="1678389611_25173_17222_180_188_41_169_29_0_144_170" objectname="NVGeoPipeObject_Teapot Object" progid="nvrenderdevice9.Teapot.1"/><object objectid="8" 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="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><effect path="F:\devrel\SDK\MEDIA\HLSL\PerfTutor.fx"><![CDATA[/*********************************************************************NVMH3**** Path: NVSDK\Common\media\cgfx File: $Id: //sw/devrel/SDK/MEDIA/HLSL/PerfTutor.fx#7 $ Copyright NVIDIA Corporation 2002 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. Mini-Style Guide: Shader parameter names start with Caps. Connector member names start with Caps. Local shader variable names generally start with lower case letters. L, P, N, V are typical Light vector, Point, Normal, View. Vectors that are normalized have names that end in "n" (except "Nb"). When possible use float3 calculations to free-up w terms for compiler. ******************************************************************************/ // Compile-time flags // feature flags //#define DO_COLORTEX //#define DO_BUMP //#define DO_GLOSSMAP //#define DO_QUADRATIC //#define DO_REFLECTION // performance flags #define USE_NORMALIZATION_CUBEMAP /************* "UN-TWEAKABLES," TRACKED BY CPU APPLICATION **************/ float Script : STANDARDSGLOBAL < string UIWidget = "none"; string ScriptClass = "object"; string ScriptOrder = "standard"; string ScriptOutput = "color"; string Script = "Technique=Technique?OnePass:Multipass:AmbiOnly:DirOnly:PtOnly;"; > = 0.8; float4x4 WorldITXf : WorldInverseTranspose < string UIWidget="None"; > = {1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1}; float4x4 WvpXf : WorldViewProjection < string UIWidget="None"; >; float4x4 WorldXf : World < string UIWidget="None"; >; float4x4 ViewIXf : ViewInverse < string UIWidget="None"; >; /////////////////////////////////////////////////////////////// /// TWEAKABLES //////////////////////////////////////////////// /////////////////////////////////////////////////////////////// ////////////////////////////////////////////// point light float3 PointLightPos : POSITION < string UIName = "Point Pos"; string Object = "PointLight"; string Space = "World"; > = {10.0f, 10.0f, 10.0f}; float3 PointLightColor : SPECULAR < string UIName = "Point Color"; string UIWidget = "Color"; > = {0.8f, 1.0f, 0.4f}; #ifdef DO_QUADRATIC #define MAX_INTENSITY 25.0 #define DEFAULT_INTENSITY 2.0 #else /* ! DO_QUADRATIC */ #define MAX_INTENSITY 1.2 #define DEFAULT_INTENSITY 0.8 #endif /* ! DO_QUADRATIC */ float PointLightIntensity < string UIName = "Point Intensity"; string UIWidget = "slider"; float UIMin = 0.0; float UIMax = MAX_INTENSITY; float UIStep = 0.1; > = DEFAULT_INTENSITY; ////////////////////////////////////////////// directional light float3 DirLight : DIRECTION < string UIName = "Dir Light"; string Object = "DirectionalLight"; string Space = "World"; > = {0.707f, 0.707f, -0.707f}; float3 DirLightColor : SPECULAR < string UIName = "Dir Light Color"; string UIWidget = "Color"; > = {0.3f, 0.3f, 0.8f}; ////////////////////////////////////////////// ambient light float3 AmbiLightColor : Ambient < string UIName = "Ambient Light Color"; > = {0.07f, 0.07f, 0.07f}; ////////////////////////////////////////////// surface float3 SurfColor : DIFFUSE < string UIName = "Surface Color"; string UIWidget = "Color"; > = {1.0f, 0.7f, 0.3f}; float Kd < string UIWidget = "slider"; float UIMin = 0.0; float UIMax = 1.5; float UIStep = 0.01; string UIName = "Diffuse"; > = 1.0; float Ks < string UIWidget = "slider"; float UIMin = 0.0; float UIMax = 1.5; float UIStep = 0.01; string UIName = "Specular"; > = 1.0; float SpecExpon : SpecularPower < string UIWidget = "slider"; float UIMin = 1.0; float UIMax = 128.0; float UIStep = 1.0; string UIName = "Specular power"; > = 12.0; float Metalness < string UIWidget = "slider"; float UIMin = 0.0; float UIMax = 1.0; float UIStep = 0.1; string UIName = "Metalness"; > = 0.2; #ifdef DO_REFLECTION float Kr < string UIWidget = "slider"; float UIMin = 0.0; float UIMax = 1.5; float UIStep = 0.01; string UIName = "Reflection Max"; > = 1.0; float KrMin < string UIWidget = "slider"; float UIMin = 0.0; float UIMax = 0.2; float UIStep = 0.001; string UIName = "Reflection Min"; > = 0.002; float FresExp : SpecularPower < string UIWidget = "slider"; float UIMin = 1.0; float UIMax = 7.0; float UIStep = 0.1; string UIName = "Edging of fresnel effect"; > = 5.0; #endif /* DO_REFLECTION */ #ifdef DO_BUMP float Bumpy < string UIWidget = "slider"; float UIMin = 0.0; float UIMax = 10.0; float UIStep = 0.1; string UIName = "Bump Height"; > = 1.0; #endif /* DO_BUMP */ //////////////////////////////////////////////////////// /// TEXTURES /////////////////////////////////////////// //////////////////////////////////////////////////////// #ifdef DO_COLORTEX texture ColorTexture : DIFFUSE < string ResourceName = "default_color.dds"; string ResourceType = "2D"; >; sampler2D ColorSampler = sampler_state { Texture = <ColorTexture>; MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; }; #endif /* !DO_COLORTEX */ #ifdef DO_BUMP texture NormalTexture : NORMAL < string ResourceName = "default_bump_normal.dds"; string ResourceType = "2D"; >; sampler2D NormalSampler = sampler_state { Texture = <NormalTexture>; MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; }; #endif /* DO_BUMP */ ////////////// #ifdef DO_GLOSSMAP texture GlossTexture : SPECULAR < string ResourceName = "default_gloss.dds"; string ResourceType = "2D"; >; sampler2D GlossSampler = sampler_state { Texture = <GlossTexture>; MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; }; #endif /* !DO_GLOSSMAP */ ////////////// #ifdef DO_REFLECTION texture EnvTexture : ENVIRONMENT < string ResourceName = "default_reflection.dds"; string ResourceType = "Cube"; >; samplerCUBE EnvSampler = sampler_state { Texture = <EnvTexture>; MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; AddressU = clamp; AddressV = clamp; AddressW = clamp; }; #endif /* DO_REFLECTION */ ////////////// #ifdef USE_NORMALIZATION_CUBEMAP #include "normalize.fxh" // only for pixel shaders.... #define NORM my_normalize #else /* !USE_NORMALIZATION_CUBEMAP */ #define NORM normalize #endif /* !USE_NORMALIZATION_CUBEMAP */ /*********************************************************/ /************* DATA STRUCTS ******************************/ /*********************************************************/ /* data from application vertex buffer */ struct appdata { float3 Position : POSITION; float4 UV : TEXCOORD0; float4 Normal : NORMAL; #ifdef DO_BUMP float4 Tangent : TANGENT0; float4 Binormal : BINORMAL0; #endif /* DO_BUMP */ }; struct vertexOutput { float4 HPosition : POSITION; float2 UV : TEXCOORD0; float3 LightVec : TEXCOORD1; float3 WorldNormal : TEXCOORD2; float3 WorldView : TEXCOORD3; #ifdef DO_BUMP float3 WorldTangent : TEXCOORD4; float3 WorldBinorm : TEXCOORD5; #endif /* DO_BUMP */ }; /*********************************************************/ /*********** vertex shader *******************************/ /*********************************************************/ void sharedVS(appdata IN, out vertexOutput OUT, out float3 Pw ) { OUT = (vertexOutput)0; OUT.WorldNormal = mul(IN.Normal,WorldITXf).xyz; #ifdef DO_BUMP OUT.WorldTangent = mul(IN.Tangent,WorldITXf).xyz; OUT.WorldBinorm = mul(IN.Binormal,WorldITXf).xyz; #endif /* DO_BUMP */ float4 Po = float4(IN.Position.xyz,1.0); // object coordinates Pw = mul(Po,WorldXf).xyz; // world coordinates OUT.WorldView = normalize(ViewIXf[3].xyz - Pw); // obj coords OUT.HPosition = mul(Po,WvpXf); // screen clipspace coords OUT.UV = IN.UV.xy; } vertexOutput ambiVS(appdata IN) { vertexOutput OUT; float3 Pw; sharedVS(IN,OUT,Pw); return OUT; } vertexOutput basicVS(appdata IN, uniform float3 LightPos // in world coordinates ) { vertexOutput OUT; float3 Pw; sharedVS(IN,OUT,Pw); OUT.LightVec = LightPos - Pw; return OUT; } /*********************************************************/ /*********** functions for pixel shaders *****************/ /*********************************************************/ // some vectors and colors shared by all lit pixel shaders void shared_ps_data(vertexOutput IN, out float3 Nn, out float3 Vn, out float Shiny, out float3 MatColor ) { Nn = NORM(IN.WorldNormal); #ifdef DO_BUMP float3 Tn = NORM(IN.WorldTangent); float3 Bn = NORM(IN.WorldBinorm); float3 bumps = Bumpy * (tex2D(NormalSampler,IN.UV).xyz-(0.5).xxx); Nn = Nn + (bumps.x * Tn + bumps.y * Bn); Nn = NORM(Nn); #endif /* DO_BUMP */ Vn = NORM(IN.WorldView); Shiny = Ks; #ifdef DO_GLOSSMAP Shiny *= tex2D(GlossSampler,IN.UV).x; #endif /* DO_GLOSSMAP */ MatColor = SurfColor; #ifdef DO_COLORTEX MatColor *= tex2D(ColorSampler,IN.UV).xyz; #endif /* DO_COLORTEX */ } // point light contribution void point_light_calc(float3 L, uniform float3 LightColor, uniform float Intensity, float3 Vn,float3 Nn,float Shiny, out float3 diffResult, out float3 specResult ) { #ifdef DO_QUADRATIC float distSquared = dot(L,L); #ifdef USE_NORMALIZATION_CUBEMAP float3 Ln = NORM(L); #else /* !USE_NORMALIZATION_CUBEMAP */ float3 Ln = L/ sqrt(distSquared); #endif /* !USE_NORMALIZATION_CUBEMAP */ #else /* !DO_QUADRATIC */ float3 Ln = NORM(L); #endif /* !DO_QUADRATIC */ float3 Hn = NORM(Vn + Ln); float hdn = dot(Hn,Nn); float ldn = dot(Ln,Nn); float4 litVec = lit(ldn,hdn,SpecExpon); ldn = litVec.y * Intensity; #ifdef DO_QUADRATIC ldn /= distSquared; #endif /* DO_QUADRATIC */ diffResult = (ldn * LightColor); specResult = ((ldn * litVec.z * Shiny) * LightColor); } // directional light contribution void dir_light_calc(float3 L, uniform float3 LightColor, float3 Vn, float3 Nn, float Shiny, out float3 diffResult, out float3 specResult ) { float3 Hn = NORM(Vn + L); float hdn = dot(Hn,Nn); float ldn = dot(L,Nn); float4 litVec = lit(ldn,hdn,SpecExpon); diffResult = (litVec.y * LightColor); specResult = ((litVec.y * litVec.z * Shiny) * LightColor); } #ifdef DO_REFLECTION float3 refl_color(float3 V, float3 N) { // reflection float3 reflVect = reflect(V,N); float vdn = dot(V,N); float fres = KrMin + (Kr-KrMin) * pow((1.0-abs(vdn)),FresExp); float3 reflColor = lerp(fres,Kr,Metalness) * texCUBE(EnvSampler,reflVect).xyz; return reflColor; } #endif /* !DO_REFLECTION */ /*********************************************************/ /*********** pixel shader ********************************/ /*********************************************************/ float4 everythingPS(vertexOutput IN, uniform float3 PtColor, uniform float PtIntensity, uniform float3 DirLightVec, // PRENORMALIZED, WE HOPE uniform float DirColor ) : COLOR { float3 Nn, Vn; float3 materialColor; float shininess; shared_ps_data(IN,Nn,Vn,shininess,materialColor); // first we do point light illumination float3 diffContrib, specContrib; point_light_calc(IN.LightVec,PtColor,PtIntensity,Vn,Nn,shininess,diffContrib,specContrib); // now add-in directional light float3 diff, spec; dir_light_calc(DirLightVec,DirColor,Vn,Nn,shininess,diff,spec); diffContrib += diff; specContrib += spec; // add all, incorporating ambient light term #ifdef DO_REFLECTION specContrib += refl_color(Vn,Nn); #endif /* DO_REFLECTION */ float3 result = (materialColor*(Kd*diffContrib+AmbiLightColor)) + lerp(((1.0).xxx),materialColor,Metalness)*specContrib; return float4(result,1.0); } // split for multipass /////////////////////////////// float4 ambiReflPS(vertexOutput IN) : COLOR { #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 */ #ifdef DO_REFLECTION float3 Nn = NORM(IN.WorldNormal); #ifdef DO_BUMP float3 Tn = NORM(IN.WorldTangent); float3 Bn = NORM(IN.WorldBinorm); float3 bumps = Bumpy * (tex2D(NormalSampler,IN.UV).xyz-(0.5).xxx); float3 Nb = Nn + (bumps.x * Tn + bumps.y * Bn); Nb = NORM(Nb); #define SURFACE_NORMAL Nb #else /* DO_BUMP */ #define SURFACE_NORMAL Nn #endif /* DO_BUMP */ float3 Vn = NORM(IN.WorldView); float3 reflColor = refl_color(Vn,SURFACE_NORMAL); float3 result = (SURF_COLOR*AmbiLightColor) + lerp(((1.0).xxx),SURF_COLOR,Metalness)*reflColor; #else /* !DO_REFLECTION */ float3 result = SURF_COLOR*AmbiLightColor; #endif /* !DO_REFLECTION */ return float4(result.xyz,1.0); } float4 pointlitPS(vertexOutput IN, uniform float3 PtColor, uniform float PtIntensity ) : COLOR { float3 Nn, Vn; float3 materialColor; float shininess; shared_ps_data(IN,Nn,Vn,shininess,materialColor); float3 diffContrib, specContrib; point_light_calc(IN.LightVec,PtColor,PtIntensity,Vn,Nn,shininess,diffContrib,specContrib); float3 result = (materialColor*(Kd*diffContrib)) + lerp(((1.0).xxx),materialColor,Metalness)*specContrib; return float4(result,1.0); } float4 dirlitPS(vertexOutput IN, uniform float3 DirLightVec, // PRENORMALIZED, WE HOPE uniform float DirColor ) : COLOR { float3 Nn, Vn; float3 materialColor; float shininess; shared_ps_data(IN,Nn,Vn,shininess,materialColor); float3 diffContrib, specContrib; dir_light_calc(DirLightVec,DirColor,Vn,Nn,shininess,diffContrib,specContrib); float3 result = (materialColor*(Kd*diffContrib)) + lerp(((1.0).xxx),materialColor,Metalness)*specContrib; return float4(result,1.0); } //////////////////////////////////////////////////////////////////// /// TECHNIQUES ///////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// // do all shading in a single pass technique OnePass < string Script = "Pass=p0;"; > { pass p0 < string Script = "Draw=geometry;"; > { VertexShader = compile vs_2_0 basicVS(PointLightPos); ZEnable = true; ZWriteEnable = true; CullMode = None; PixelShader = compile ps_2_0 everythingPS(PointLightColor,PointLightIntensity, DirLight,DirLightColor); } } // split into individual lighting passes technique Multipass < string Script = "Pass=ambiZ; Pass=pointLight1; Pass=dirLight1;"; > { pass ambiZ < string Script = "Draw=geometry;"; > { VertexShader = compile vs_2_0 ambiVS(); ZEnable = true; ZWriteEnable = true; CullMode = None; PixelShader = compile ps_2_0 ambiReflPS(); } pass pointLight1 < string Script = "Draw=geometry;"; > { VertexShader = compile vs_2_0 basicVS(PointLightPos); ZEnable = true; ZWriteEnable = false; ZFunc = LessEqual; CullMode = None; AlphaBlendEnable = true; SrcBlend = One; DestBlend = One; PixelShader = compile ps_2_0 pointlitPS(PointLightColor,PointLightIntensity); } pass dirLight1 < string Script = "Draw=geometry;"; > { VertexShader = compile vs_2_0 ambiVS(); ZEnable = true; ZWriteEnable = false; ZFunc = LessEqual; CullMode = None; AlphaBlendEnable = true; SrcBlend = One; DestBlend = One; PixelShader = compile ps_2_0 dirlitPS(DirLight,DirLightColor); } } // see individual components ///////// technique AmbiOnly < string Script = "Pass=ambiPass;"; > { pass ambiPass < string Script = "Draw=geometry;"; > { VertexShader = compile vs_2_0 ambiVS(); ZEnable = true; ZWriteEnable = true; CullMode = None; PixelShader = compile ps_2_0 ambiReflPS(); } } technique DirOnly < string Script = "Pass=dirPass;"; > { pass dirPass < string Script = "Draw=geometry;"; > { VertexShader = compile vs_2_0 ambiVS(); ZEnable = true; ZWriteEnable = true; CullMode = None; PixelShader = compile ps_2_0 dirlitPS(DirLight,DirLightColor); } } technique PtOnly < string Script = "Pass=pointPass;"; > { pass pointPass < string Script = "Draw=geometry;"; > { VertexShader = compile vs_2_0 basicVS(PointLightPos); ZEnable = true; ZWriteEnable = true; CullMode = None; PixelShader = compile ps_2_0 pointlitPS(PointLightColor,PointLightIntensity); } } /***************************** eof ***/ ]]></effect><effect path="f:\devrel\sdk\media\hlsl\normalize.fxh"><![CDATA[/*********************************************************************NVMH3**** File: $Id: //sw/devrel/SDK/MEDIA/HLSL/normalize.fxh#7 $ Copyright NVIDIA Corporation 2003 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: Utility FX functions -- normalization cube map for pixel shaders. The following functions create and let you use a texture read to approximate 3D normalize() calls. In some cases, using normalize() may be just as fast! For details, please be sure to reference the Technical Brief "Normalization Heuristics" -- you can find the brief at http://developer.nvidia.com/ ******************************************************************************/ #ifndef _H_NORMALIZE #define _H_NORMALIZE #define NORMALIZE_CUBE_SIZE 256 // for other texel formats, just define NORM_FORMAT before including normalize.fxh #ifndef NORM_FORMAT #define NORM_FORMAT "X8R8G8B8" #endif /* NORM_FORMAT */ float4 make_normalization_cube(float3 Pos : POSITION) : COLOR { float3 n = normalize(Pos); float3 r = 0.5 + (0.5*n); return float4(r,0); } texture NormalizeTex < string TextureType = "CUBE"; string function = "make_normalization_cube"; string Format = (NORM_FORMAT); int width = NORMALIZE_CUBE_SIZE; int height = NORMALIZE_CUBE_SIZE; int depth = NORMALIZE_CUBE_SIZE; >; samplerCUBE NormalizeSampler = sampler_state { texture = <NormalizeTex>; AddressU = CLAMP; AddressV = CLAMP; AddressW = CLAMP; MIPFILTER = NONE; MINFILTER = LINEAR; MAGFILTER = LINEAR; }; // access the cube map instead of using normalize() float3 my_normalize(float3 v) { float3 v2 = texCUBE(NormalizeSampler,v); return (2*(v2-0.5)); } // access the cube map instead of using normalize() -- only first three components! float4 my_normalize(float4 v) { float3 v2 = texCUBE(NormalizeSampler,v.xyz); return float4((2*(v2-0.5)),1); } // same as above, but for half data half3 my_normalize(half3 v) { half3 v2 = texCUBE(NormalizeSampler,v); return (2*(v2-0.5)); } half4 my_normalize(half4 v) { half3 v2 = texCUBE(NormalizeSampler,v.xyz); return half4((2*(v2-0.5)),1); } #endif /* _H_NORMALIZE */ // eof ]]></effect></media_objects></fxstudio_project>