游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3288|回复: 13

关于ShadowMap的问题

[复制链接]

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
发表于 2005-8-29 09:18:00 | 显示全部楼层 |阅读模式
我已经做了如下几步:
1、从光源处设置正交观察投影矩阵(LightViewProj),渲染得到深度图
2、从正常视角处渲染场景,将每个像素转换到LightViewProj空间,与深度图记录的深度比较,判断是否在阴影中

我能够正确判断出每个像素是否处于阴影中,此时如果渲染,得到的将是黑白的阴影图。

我的问题是如何将阴影与Mesh的纹理融合,形成最终结果。是在做第2步的时候,将每个像素的纹理值和阴影融合吗?

我是用Dx8 + PS1.4写的,由于PS的指令条数限制,好像无法做到。我最后将第2步的渲染的图像保存到纹理,并设置纹理非阴影区的Alpha为0;阴影区的Alpha值为0.5,RGB为(0,0,0),然后将整张纹理在最后一步画到屏幕上,形成阴影。
所以我的过程是
1、渲染场景,得到深度图
2、渲染场景,判断是否在阴影,得到阴影图(图A)
3、正常模式渲染场景(图B)
4、将 图A 纹理画到第三步渲染结果 图B之上,形成阴影。(图C)

我这样的2、3、4步过程做对吗?请各位做过ShadowMap的朋友帮忙看看,谢谢!

sf_200582991821.jpg

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
 楼主| 发表于 2005-8-29 09:19:00 | 显示全部楼层

Re: 关于ShadowMap的问题

图B
sf_200582991923.jpg

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
 楼主| 发表于 2005-8-29 09:20:00 | 显示全部楼层

Re: 关于ShadowMap的问题

图C
sf_200582991958.jpg

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
 楼主| 发表于 2005-8-29 09:29:00 | 显示全部楼层

Re:关于ShadowMap的问题

ShadowMap是否需要三次渲染场景?

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-8-29 09:43:00 | 显示全部楼层

Re:关于ShadowMap的问题

是要渲染3次的。

你用Gpu做的?

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
 楼主| 发表于 2005-8-29 10:03:00 | 显示全部楼层

Re:关于ShadowMap的问题

第2步我是用PS1.4做的,那我这几步过程对吗?我觉得第3步是没有必要的吧?应该可以在第2步判断完阴影区以后和纹理颜色再次叠加吧?我是因为PS的指令条数限制才增加了3、4两步的

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2005-8-29 10:06:00 | 显示全部楼层

Re:关于ShadowMap的问题

如果是要把影子投射到自身,那么需要
1.生成depth texture
2.将depth texture投射到自身,比较深度,生成阴影

如果要把影子投射到环境
1.将depth texture直接投射到环境里,无须比较深度,但要考虑加上z-bias

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-8-29 10:07:00 | 显示全部楼层

Re:关于ShadowMap的问题

1、渲染场景,得到深度图
2、渲染场景,判断是否在阴影,是的话d3dx_color(64,64,64),不是的话不改变

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
 楼主| 发表于 2005-8-29 10:12:00 | 显示全部楼层

Re:关于ShadowMap的问题

请问Secondage:那么如果我自投影一个Mesh,是否需要第3、4步,还是到了第2步就结束了
1、生成Depth Texture
2、将depth texture投射到自身,比较深度,生成阴影(图A)
3、再次渲染场景(图B)
4、将2生成的阴影贴到3的结果上(图A + 图B = 图C)

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
 楼主| 发表于 2005-8-29 12:10:00 | 显示全部楼层

Re:关于ShadowMap的问题

OK,我已经解决了,最多两次渲染场景就可以了,3、4步可以去掉。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-27 15:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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