]> 0427106sqrtNumSamples1100-10112323200134567891011121014271000013741820014271060014271060014271060014271060014271060014271060014271060020001319220720114161731250250151150250250Workspace1000-10140144001250250181180250250Artist Editor1001-10170171250344201200250250Output1002-101901930022261320427242710612311427106000427106sourceTextureSize1101-1010272730026261320427242710612711427106000427106distanceScale1102-109313130030261320427242710613111427106000427106Ka1103-108353530034261320427242710613511427106000427106Kd1104-107393930038261320427242710613911427106000427106epsilonX1105-106434330042261320427242710614311427106000427106epsilonY1106-105474730046261320427242710614711427106000374182lightPos1107-104515130050202020374237418215111374182000427100lightPosY1108-1035555300542012004272427100155114271000021655 ]]> backProjectionCut); // Modulate with spotlight image shadow *= spotLight; float4 ocolor = tex2D(trunkTexture, texCoord); // Shadow any light contribution except ambient return Ka * ocolor + (Kd * diffuse * ocolor + Ks * specular) * shadow; } ]]> backProjectionCut); // Modulate with spotlight image shadow *= spotLight; float4 ocolor = float4(0.0, 0.0, 0.0, 0.0); float2 epsilon = float2(epsilonX, epsilonY); float4 value = tex2D(indirectTexture, subTexCoord).xyzw; float2 coords = float2(0.0, 1.0) - abs(texCoord - ( value.xy - epsilon ) ); if (value.w != 0.0) { float2 newcoord = (float2(1.0, 1.0) - value.zw) + ((coords * sourceTextureSize) / sqrtNumSamples); ocolor = float4(tex2D(sourceTexture, newcoord).xyzw); ocolor = float4(Ka * ocolor.xyz + (Kd * diffuse * ocolor.xyz + Ks * specular) * shadow, ocolor.w); } // Shadow any light contribution except ambient return ocolor; } ]]> backProjectionCut); // Modulate with spotlight image shadow *= spotLight; // Shadow any light contribution except ambient return Ka * platformColor + (Kd * diffuse * platformColor + Ks * specular) * shadow; } ]]>