游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: oz01

怎么把深度值转换为距离?

[复制链接]

227

主题

1793

帖子

1866

积分

金牌会员

Rank: 6Rank: 6

积分
1866
 楼主| 发表于 2008-12-2 22:20:00 | 显示全部楼层

Re:怎么把深度值转换为距离?

我需要在shader里实现orz
我要做shadowmap

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-12-3 10:33:00 | 显示全部楼层

Re: Re:怎么把深度值转换为距离?

oz01: Re:怎么把深度值转换为距离?

worldview就是state.matrix.mvp吧?
我现在用state.matrix.mvp变换之后
得出的z值非常奇怪
虽然肯定和深...


首先确认你的MODEL_VIEW矩阵确实是设置的世界矩阵和视矩阵的乘积,因为GL程序经常有不同的用法。
其次,state.matrix.mvp是world * view * projection,是变换到投影空间,投影空间的Z值在GL里是-1到1, 不是world * view的视空间的距离值

227

主题

1793

帖子

1866

积分

金牌会员

Rank: 6Rank: 6

积分
1866
 楼主| 发表于 2008-12-3 15:06:00 | 显示全部楼层

Re:怎么把深度值转换为距离?

现在又有个新问题
我在光源视点渲染了阴影图
接下来要在正常视点来对比深度
可我怎么才能在光源视点获取当前的state.matrix.mvp?
很抱歉我知道这个问题很基础
不过我实在找不到任何关于shader的API中文资料

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-12-3 17:46:00 | 显示全部楼层

Re:怎么把深度值转换为距离?

自己传uniform给shader,不要用glsl内置的

227

主题

1793

帖子

1866

积分

金牌会员

Rank: 6Rank: 6

积分
1866
 楼主| 发表于 2008-12-3 19:04:00 | 显示全部楼层

Re:怎么把深度值转换为距离?

问题是……怎么传呢orz
我是初学者
实在不清楚具体该怎么做orz
我知道要在光源视点获取当前world * view矩阵和projection矩阵
可是这两个矩阵怎么相乘呢?orz
哪个在左哪个在右?

227

主题

1793

帖子

1866

积分

金牌会员

Rank: 6Rank: 6

积分
1866
 楼主| 发表于 2008-12-4 12:10:00 | 显示全部楼层

Re:怎么把深度值转换为距离?

感谢qrli前辈
矩阵问题解决了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 18:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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