Ignore:
Timestamp:
07/02/07 04:04:08 (17 years ago)
Author:
szirmay
Message:
 
File:
1 edited

Legend:

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

    r2409 r2471  
    1313} 
    1414 
    15 #define SECANT_ITERATIONCOUNT 2 
     15#define SECANT_ITERATIONCOUNT 20 
    1616 
    1717float3 Hit( float3 x, float3 R, samplerCUBE mp ) 
     
    9191                                                                                uniform float sRefraction ) :COLOR0 
    9292{ 
     93        float4 Color = 0; 
    9394        float3 N = normalize(IN.wNormal.xyz); 
    9495        float3 RR, TT;   
     
    9798        float3 R = reflect( V, N);       
    9899        float3 T = refract(V, N, sRefraction); 
    99          
     100 
     101                 
    100102        RR = R; TT = T;  
    101103        RR = Hit(cubePos, R, DistanceMap); 
    102         TT = Hit(cubePos, T, DistanceMap); 
     104        float4 reflectcolor = readCubeMap(CubeMap, RR );                 
    103105         
    104         float4 reflectcolor = readCubeMap(CubeMap, RR );                 
    105         float4 refractcolor = readCubeMap(CubeMap, TT );                 
     106        if(dot(T,T)!=0) 
     107        { 
     108                TT = Hit(cubePos, T, DistanceMap); 
     109                float4 refractcolor = readCubeMap(CubeMap, TT );                 
    106110         
    107         float cos_theta = -dot(V, N); 
    108         float F = (sFresnel + pow(1 - cos_theta, 5.0f) * (1 - sFresnel)); 
    109          
    110         return (F * reflectcolor + (1 - F) * refractcolor);      
     111                float cos_theta = -dot(V, N); 
     112                float F = (sFresnel + pow(1 - cos_theta, 5.0f) * (1 - sFresnel)); 
     113                F = saturate(F); 
     114                Color =  (F * reflectcolor + (1 - F) * refractcolor); 
     115        } 
     116        else 
     117        { 
     118                Color = reflectcolor; 
     119        } 
     120  return Color; 
    111121} 
    112122 
Note: See TracChangeset for help on using the changeset viewer.