游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2064|回复: 3

水面反射的Shader的疑惑

[复制链接]

42

主题

140

帖子

158

积分

注册会员

Rank: 2

积分
158
发表于 2008-12-16 19:22:00 | 显示全部楼层 |阅读模式
uniform sampler2D refMap;
uniform sampler2D fraMap;
uniform sampler2D dudvMap;

uniform float timeline;
uniform float3 eyePosition;

void main(float4 Iposition : TEXCOORD0,
                  float4 viewCoord : TEXCOORD1,
                  float2 Itexcoord : TEXCOORD2,
                  out float4 color : COLOR)
{

         float4 projCoord = viewCoord /  viewCoord.z;

      projCoord = (projCoord + 1.0)*0.5;

         
         float4 projCoord1 = projCoord;
     
        float4 basecolor = tex2D(refMap, projCoord.xy)*0.95f;
        color = basecolor ;
}
这是一个水面反射的片段代码,我实在不知道为什么float4 projCoord = viewCoord /  viewCoord.z;要除以z, 如果把这一句去掉,水面就会变成无数个小的反射贴图。不知道为啥,大侠们救命啊。。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2008-12-16 21:45:00 | 显示全部楼层

Re:水面反射的Shader的疑惑

既然是平面反射,那当然要转换到齐次投影空间了,相机空间的z值实际上就是投影坐标的w分量,所以才要做齐次除

42

主题

140

帖子

158

积分

注册会员

Rank: 2

积分
158
 楼主| 发表于 2008-12-16 22:49:00 | 显示全部楼层

Re:水面反射的Shader的疑惑

真是太感谢了!!!!!!!谢谢

0

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2008-12-19 00:16:00 | 显示全部楼层

Re:水面反射的Shader的疑惑

透视除法啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 16:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表