游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1681|回复: 9

请教问题:关于深度测试。

[复制链接]

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
发表于 2006-8-2 21:36:00 | 显示全部楼层 |阅读模式
深度输出寄存器oDepth,请问这个深度值是怎么计算的?

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-8-3 09:55:00 | 显示全部楼层

Re:请教问题:关于深度测试。

你不会还在用 asm shader 吧?这个值是 vs 之后计算得出,经过屏幕空间变换传入到 ps。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-8-3 12:40:00 | 显示全部楼层

Re:请教问题:关于深度测试。

oDepth是手动输出一个指定深度,临时取代该像素的原有深度,用于后面的深度测试
根据你自己的需要进行计算即可,如果不需要改变原有深度,就不要写入它

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
 楼主| 发表于 2006-8-4 20:56:00 | 显示全部楼层

Re:请教问题:关于深度测试。

深度值是不是坐标变换过后的Z值?这个值可以输出到自定义的内存区域么?

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-8-4 21:17:00 | 显示全部楼层

Re:请教问题:关于深度测试。

默认的深度值是坐标变换并Homogeous Divid后的Z值
原来你是想单独获取深度数据,那很简单啊,Render To Texture就行了,把深度值传入PS,然后输出到oC0 / oC0.a,或者用MRT,输出到oC#
你这种需求和oDepth无关的

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
 楼主| 发表于 2006-8-4 22:03:00 | 显示全部楼层

Re:请教问题:关于深度测试。

楼上,还是不明白深度值输出到哪里了。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-8-5 10:48:00 | 显示全部楼层

Re:请教问题:关于深度测试。

我晕。。。如果你完全不管的话,在变换后当前像素的深度值会自动与深度缓冲中的值进行比较,不会输出到哪里,只是内部使用而已,对使用者而言是完全透明的
如果你想专门得到深度值,就照我上面说的做

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
 楼主| 发表于 2006-8-5 20:36:00 | 显示全部楼层

Re:请教问题:关于深度测试。

⒈你上面说的没看明白。
⒉这个深度值我现在也不知道有什么应用,只是看到书上有介绍,我是想探索一下他的具体用途。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-8-5 22:46:00 | 显示全部楼层

Re:请教问题:关于深度测试。

恩。。。如果是这样的话就不要管了,这个只是在特殊需求下使用的

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
 楼主| 发表于 2006-8-5 23:36:00 | 显示全部楼层

Re:请教问题:关于深度测试。

俺还是想知道他的用途,毕竟我是想深入学习的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 02:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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