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


// This binding semantic requires CG_PROFILE_ARBVP1 or higher. 
uniform float4x4 modelViewProj : state.matrix.mvp; 
 
            void main(float4 position : POSITION, 
                      float2 texCoord : TEXCOORD0, 
                      float3 normal   : NORMAL, 
					  float4 incolor  : COLOR, 
 
                  out float4 oPosition  : POSITION, 
                  out float2 oTexCoord  : TEXCOORD0, 
                  out float3 R          : TEXCOORD1, 
				  out float4 outcolor   : COLOR, 
 
              uniform float3   eyePositionW, 
              uniform float4x4 modelToWorld) 
{ 
  oPosition = mul(modelViewProj, position); 
  oTexCoord = texCoord; 
  outcolor = incolor; 
 
  // Compute position and normal in world space 
  float3 positionW = mul(modelToWorld, position).xyz; 
  float3 N = mul((float3x3)modelToWorld, normal); 
  N = normalize(N); 
   
  // Compute the incident and reflected vectors 
  float3 I = positionW - eyePositionW; 
  R = reflect(I, N); 
}