www.pudn.com > 13_184353_cubemap.rar > pixel_dispersion.cg


            void main(float  reflectionFactor : COLOR, 
                      float3 R                : TEXCOORD0, 
                      float3 TRed             : TEXCOORD1, 
                      float3 TGreen           : TEXCOORD2, 
                      float3 TBlue            : TEXCOORD3, 
 
                  out float4 color : COLOR, 
 
              uniform samplerCUBE environmentMap0, 
              uniform samplerCUBE environmentMap1, 
              uniform samplerCUBE environmentMap2, 
              uniform samplerCUBE environmentMap3) 
{ 
  // Fetch the reflected environment color 
  float4 reflectedColor = texCUBE(environmentMap0, R); 
 
  // Compute the refracted environment color 
  float4 refractedColor; 
  refractedColor.x = texCUBE(environmentMap1, TRed).x; 
  refractedColor.y = texCUBE(environmentMap2, TGreen).y; 
  refractedColor.z = texCUBE(environmentMap3, TBlue).z; 
  refractedColor.w = 1; 
 
  // Compute the final color 
  color = lerp(refractedColor,  
               reflectedColor,  
               reflectionFactor); 
}