Ignore:
Timestamp:
12/11/06 16:30:08 (18 years ago)
Author:
szirmay
Message:
 
File:
1 edited

Legend:

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

    r1838 r1879  
    2121{ 
    2222        VS_OUT OUT; 
    23         //texCoord.z = normalize(texCoord.z); 
    24         //texCoord.w = normalize(texCoord.w); 
    25     float2 offset = texCoord.zw * baseRadius; 
     23        float2 offset = texCoord.zw * baseRadius; 
    2624        OUT.r = abs(offset.x); 
    2725        float4 cPosition;    
     
    3028        cPosition.xy += offset;  
    3129        OUT.cPosition = cPosition; 
     30        OUT.cPosition.z += baseRadius; 
    3231        OUT.cPosition.z *= -1; 
    33         //OUT.cPosition.z = OUT.cPosition.z - OUT.r;     
    3432         
    3533    OUT.hPosition = mul( Proj, cPosition ); 
     
    4846                                                uniform sampler2D Texture  : register(s0), 
    4947                                                uniform sampler2D depthTexture : register(s1), 
     48                                                uniform sampler2D illumVolume : register(s2), 
    5049                                                uniform float farplane, 
    51                                                 uniform float width = 800, 
    52                                                 uniform float height = 600 
     50                                                uniform float nearplane                                          
    5351                                                        ) : COLOR 
    5452{ 
     
    6058         
    6159        if(b == 0) 
    62                 discard; 
    63          
    64         float2 halfpixel = float2(1.0 / width, 1.0 / height); 
    65     IN.screenCoord += halfpixel; 
    66     
     60                discard;         
     61 
    6762        float sceneDepth = tex2D(depthTexture, IN.screenCoord).r; 
    6863        if(sceneDepth == 0) 
    69                 //discard; 
    7064                sceneDepth = farplane; 
    71          
     65            
    7266        float size = 2.0 * IN.r; 
    7367        float frontDepth = IN.cPosition.z + size * (f - 0.5); 
    7468        float backDepth = IN.cPosition.z +  size * (b - 0.5); 
    7569         
    76         alpha = (sceneDepth - frontDepth) / (backDepth - frontDepth); 
     70        float far = min(sceneDepth, backDepth); 
     71        float near = max(frontDepth, nearplane); 
     72         
     73        alpha = (far - near) / (backDepth - frontDepth); 
    7774        alpha = saturate(alpha) * impostor.a; 
    7875         
    79         //Color = float4(Color.g, 0, 0, 1); 
     76         
    8077        Color = float4(1, 1, 1, alpha) * IN.Color; 
    81         //Color = float4(b - 0.5, 0, 0, 1); 
    82         //Color = sceneDepth / farplane; 
    83         //Color = 1; 
    84         return Color;  
     78    return Color;  
    8579         
    8680} 
Note: See TracChangeset for help on using the changeset viewer.