游戏开发论坛

 找回密码
 立即注册
搜索
楼主: dxwood

WOW中的影子的实现讨论

[复制链接]

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2006-8-29 17:37:00 | 显示全部楼层

Re:WOW中的影子的实现讨论

。。。明摆着是projective shadow。。。

0

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2006-8-30 09:03:00 | 显示全部楼层

Re:WOW中的影子的实现讨论

我也想弱弱的问句:decl是什么?

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

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

Re:WOW中的影子的实现讨论

贴花

6

主题

390

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2006-8-30 11:40:00 | 显示全部楼层

Re:WOW中的影子的实现讨论

1、shadow texture intrinsic
2、alpha fading
3、blending

13

主题

74

帖子

74

积分

注册会员

Rank: 2

积分
74
 楼主| 发表于 2006-8-30 13:43:00 | 显示全部楼层

Re:WOW中的影子的实现讨论

SV是不能带贴图的,我猜测只能用SM来做,可是SM至少要PS支持,,,这样的话在MX440等机器上不是没影子了吗?WOW是怎么弄的呢。。。

大家不要只来句"projective shadow"或者"贴花"什么的,这个谁都知道,问题是要详细的细节流程。

另外经过仔细观察,发现WOW中不是所有的物件都能被阴影覆盖,很多小物体是不收阴影影响的。这里给出我自己的一个模型,大家可以拍砖也可以给出自己的想法,主要是能够带起一种技术讨论的氛围。

假设只针对场景中一个directional light的情况,我们使用ShaodwMap来处理:
1。得到Shadow Depth Image
2。构造出当前视点为中心的需要阴影著色的Mesh。比如地表Mesh结构(一定大小的Quad)和特定需要阴影处理的场景物件。(如果仅仅是拿场景中原来渲染的物件再渲染一边,显然效率是不能接受的,肯定要做过滤和简化处理)
3。PS比较Pixel Depth,如果在阴影中,则使用阴影贴图Blend该像素,否则丢弃该颜色处理。

以上方式存在两个限制:
1。需要使用PS,过旧的显卡不支持
3。至少需要使用A8R8G8B8F的贴图格式(Floating Point Texture),有些显卡不一定支持。

0

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2006-8-30 14:01:00 | 显示全部楼层

Re:WOW中的影子的实现讨论

decal才是贴花吧?decl也叫贴花??

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-8-30 14:56:00 | 显示全部楼层

Re:WOW中的影子的实现讨论

A8R8G8B8F 这是啥格式?
为什么要用到ps?直接贴个板板贴地上设下bias就搞定了。

13

主题

74

帖子

74

积分

注册会员

Rank: 2

积分
74
 楼主| 发表于 2006-8-30 17:58:00 | 显示全部楼层

Re:WOW中的影子的实现讨论

因为需要贴阴影的地方是不规则的,可能是地表也可能是某个建筑,这种情况下怎么设置bias?

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-8-30 18:40:00 | 显示全部楼层

Re:WOW中的影子的实现讨论

不管多不规则都可以算个片出来,你的角色的bounding box的底下四个顶点,往地面方向打射线,可以求出碰到哪几个mesh的哪几个triangle上,然后把这几个点连起来,求连起来的这几条边在每个triangle上的投影,生成顶点,渲染。

如果碰到两个mesh所连接的地方没有顶点的时候(通过判断连线在两个triangle上的投影是否相交)则自己在相交的地方加个顶点。

这下说得够详细了吧,这个方法唯一的缺点就是可能会有z-fighting的情况,所以说需要设置z-bias来尽量避免z-fighting,好像目前流行的显卡都没有什么明显的z-fighting情况了。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

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

Re:WOW中的影子的实现讨论

LZ说错了几点,首先SV为什么不能带贴图?SV只是通过模板值来筛选Quad中的像素而已,Quad想怎么画就怎么画
第二,SM不一定非要浮点纹理,整数纹理也一样可以,只是精度低些罢了
第三,Texture Projection只是用于确定纹理坐标,对系统的负担仅仅只是多一层贴图而已,完全没有多余的渲染,比起要求高得多的SM实用不少,何况它也是针对单个物体的,完全可以只在会产生阴影的地方(地表、大物件)使用,小物体完全可以跳过,还可以节省性能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 07:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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