游戏开发论坛

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

请问,在DX中如何直接或间接获取深度值(渲染水时遇到

[复制链接]

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2009-1-17 14:35:00 | 显示全部楼层

Re:请问,在DX中如何直接或间接获取深度值(渲染水时遇

楼上正解

14

主题

156

帖子

158

积分

注册会员

Rank: 2

积分
158
QQ
 楼主| 发表于 2009-1-17 15:25:00 | 显示全部楼层

Re: Re:请问,在DX中如何直接或间接获取深度值(渲染水时

xoyojank: Re:请问,在DX中如何直接或间接获取深度值(渲染水时遇到的障碍)

在地图编辑器里, 把透明度(水面与地面的差值)保存在顶点的颜色里
每次编辑地形就更新一下, 实际渲染时不用算的


先前就是这么做的,但是这种情况下,只有摄像机垂直看水面时,透明效果才是正确的

当摄像机斜着看水面时,透明效果就是错的,跟顶点里预保存的透明度是错位的

就像上面贴出来的那两个图片

14

主题

77

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2009-1-17 16:56:00 | 显示全部楼层

Re:请问,在DX中如何直接或间接获取深度值(渲染水时遇

效果做到神似就行了,没有必要总是动态地精确地计算每一个值。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2009-1-17 20:09:00 | 显示全部楼层

Re:请问,在DX中如何直接或间接获取深度值(渲染水时遇

想在Shader中回读DepthBuffer,dx10可以,dx9就别想了
lz是想算光线在水下的消光吧,既然是游戏,又不是光学模拟,不必这么精确的,预渲染一定要用,但不能全用,
考虑到通常水底都是对称的半圆形,因此可以垂直方向预先渲染一张深度图,然后根据当前摄像机方向和地形水平面的投影方向对深度图的xy轴做适当偏移,这样的话即使是斜着看也能产生相对准确的深度变化
如果要更精确,可以在摄像机所处的半球上选均匀分布的一些采样点,预渲染多张深度图,在渲染时根据摄像机方向在临近深度图中采样并做球面插值,这样存储量和计算量会大不少,但更精确一些

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2009-1-17 23:30:00 | 显示全部楼层

Re:请问,在DX中如何直接或间接获取深度值(渲染水时遇

dx9可以读的,只不过必须是nv的显卡,可以做depthbuffer的纹理格式
参见:http://bbs.gameres.com/showthread.asp?page=end&threadid=122181

14

主题

156

帖子

158

积分

注册会员

Rank: 2

积分
158
QQ
 楼主| 发表于 2009-1-19 20:48:00 | 显示全部楼层

Re: Re:请问,在DX中如何直接或间接获取深度值(渲染水时

jk20012001: Re:请问,在DX中如何直接或间接获取深度值(渲染水时遇到的障碍)

想在Shader中回读DepthBuffer,dx10可以,dx9就别想了
lz是想算光线在水下的消光吧,既然是游戏,又不是光学模...



谢谢啊~你的回答很详细啊!


不过为了简单,后来还是用MTR搞了,将渲染地形的像素SHADER加了个COLOR1输出到render target 1 了~性能几乎没有影响? [em13]

14

主题

156

帖子

158

积分

注册会员

Rank: 2

积分
158
QQ
 楼主| 发表于 2009-1-19 20:51:00 | 显示全部楼层

Re: Re:请问,在DX中如何直接或间接获取深度值(渲染水时

qrli: Re:请问,在DX中如何直接或间接获取深度值(渲染水时遇到的障碍)

dx9可以读的,只不过必须是nv的显卡,可以做depthbuffer的纹理格式
参见:http://bbs.gameres.com/showthr...


谢谢你的回复~去看看先~ [em20]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 11:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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