游戏开发论坛

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

请教CSM或者PSSM处理大场景下阴影问题

[复制链接]

3

主题

7

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2012-10-23 10:58:00 | 显示全部楼层 |阅读模式
csm跟pssm都是想通过分割视锥体来获得多张shadowmap,理论我已经看过很多了,大致也清楚的很,就是实现不知道从哪开始;
1.分割视锥体,在dx9下没有视锥体类吧,或者我没找到,怎么实现分割呢。看csm文章里有这句话 splitfrust[0].ResightNear(Dis_Near); 有人能接受下么。
2.分割后要获得每个clip下的crop matrix,这个又该如何获得,获得后放到hlsl里面又怎么使用呢。
本人刚实现SM+PCF,现在需要处理大场景的阴影图,还请有过经验的朋友告诉一二。

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2012-10-23 11:25:00 | 显示全部楼层

Re:请教CSM或者PSSM处理大场景下阴影问题

pssm简单点来讲和传统的shadow maps没有任何区别,只不过是按深度分成几段,每段分开渲阴影。

csm也是非常简单的,也是分几段,不断拉近shadow maps象机到观察点的距离,渲多次shadow map混到一块儿。这样越靠近象机目标点中心的就精度就越高。

3

主题

7

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2012-10-23 12:15:00 | 显示全部楼层

Re: Re:请教CSM或者PSSM处理大场景下阴影问题

hyzboy: Re:请教CSM或者PSSM处理大场景下阴影问题

pssm简单点来讲和传统的shadow maps没有任何区别,只不过是按深度分成几段,每段分开渲阴影。

csm也是非...

分割,是通过改变setviewport的maxz和minz值实现么,我刚刚改了下maxz和minz值,按理说会有一种情况下是渲染不出来才对吧。分段后获得的shadowmap怎么合并处理。 我是用平行光做的SM,如果分段后,我的正交投影矩阵又该怎么平移呢,  LS的有代码解释下么?谢谢了

3

主题

7

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2012-10-24 09:58:00 | 显示全部楼层

Re: Re:请教CSM或者PSSM处理大场景下阴影问题

hyzboy: Re:请教CSM或者PSSM处理大场景下阴影问题

pssm简单点来讲和传统的shadow maps没有任何区别,只不过是按深度分成几段,每段分开渲阴影。

csm也是非...

看zhang fan的论文里写到:
//计算子视域体
splitFrustum = camera->CalculateFrustum(splitPos, splitPos[i+1]);
这个我是准备自己单独裁剪四个视域体,有更好的方法么?
//计算cropMatrix
cropMatrix = CalcCropMatrix(splitFrustum, lightViewMatrix * lightProjMatrix); 里面有句CalcAABB(splitFrustum, matViewProj); 请问这个函数的功能代码怎么写?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-27 13:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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