Ignore:
Timestamp:
06/05/07 01:57:13 (17 years ago)
Author:
szirmay
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPBasic/GTPBasicShading.hlsl

    r2266 r2404  
    2727        float cosb = max(dot(IN.wNormal.xyz, diff), 0); 
    2828         
    29         color.rgb = pow(cosa, 9) * cosb / dist2 * lightPower; 
     29        color.rgb = pow(cosa, 9) * cosb / dist2 * lightPower * lightColor; 
    3030        //color.rgb *= lightPower; 
    3131        //return 0; 
    3232        return color * tex2D(colorTex, IN.texCoord); 
    3333} 
     34 
     35 
     36float4 TexturedShadedTwoLights_PS(ShadedTex_OUT IN, 
     37                                                uniform float3 lightPos1, 
     38                                                uniform float3 lightDir1, 
     39                                                uniform float3 lightColor1,                                              
     40                                                uniform float  lightPower1, 
     41                                                uniform float3 lightPos2, 
     42                                                uniform float3 lightDir2, 
     43                                                uniform float3 lightColor2,                                              
     44                                                uniform float  lightPower2,                                              
     45                                                uniform sampler2D colorTex : register(s0)):COLOR0 
     46{ 
     47        float4 color = 0; 
     48        IN.wNormal.xyz = normalize(IN.wNormal.xyz); 
     49         
     50        { 
     51        float3 lightDir = normalize(lightDir1); 
     52         
     53        float3 diff = lightPos1 - IN.wPos; 
     54        float dist2 = dot(diff, diff); 
     55        if(dist2 < SAMPLECUTDIST2) 
     56                dist2 = SAMPLECUTDIST2;  
     57        diff = normalize(diff); 
     58        float cosa = max(dot(lightDir1, -diff), 0); 
     59        float cosb = max(dot(IN.wNormal.xyz, diff), 0); 
     60         
     61        //color.rgb += pow(cosa, 9) * cosb / dist2 * lightPower1 * lightColor1; 
     62        color.rgb += cosb / dist2 * lightPower1 * lightColor1; 
     63         
     64        } 
     65         
     66        { 
     67        float3  lightDir = normalize(lightDir2); 
     68         
     69        float3 diff = lightPos2 - IN.wPos; 
     70        float dist2 = dot(diff, diff); 
     71        if(dist2 < SAMPLECUTDIST2) 
     72                dist2 = SAMPLECUTDIST2;  
     73        diff = normalize(diff); 
     74        float cosa = max(dot(lightDir2, -diff), 0); 
     75        float cosb = max(dot(IN.wNormal.xyz, diff), 0); 
     76         
     77        color.rgb += pow(cosa, 9) * cosb / dist2 * lightPower2 * lightColor2;    
     78        }        
     79         
     80        //color.rgb *= lightPower; 
     81        //return 0; 
     82        return color * tex2D(colorTex, IN.texCoord); 
     83} 
Note: See TracChangeset for help on using the changeset viewer.