游戏开发论坛

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

d小调弹奏一下CS类型游戏弹痕的实现

[复制链接]

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
发表于 2006-6-27 12:53:00 | 显示全部楼层

Re:d小调弹奏一下CS类型游戏弹痕的实现

回justlikethewind:
主要是场景三角形组织方式的问题,规则地形网格当然能设计快速直接方法找到某个点附近的一簇三角形,对一般的模型,可以够建BSP/OCTREE,CPU做几何计算得到这簇三角形.

回WHB9633:
渲染顺序依赖很正常的,要消除依赖只有相同的渲染方式 况且完全没有必要消除这种依赖,但场景里总有Z-WRITE开/关,Z-TEST关/开,ALPHA,STENCIL等等,有了依赖才有能正确和有速度.这不是缺陷.
另外WOW里我指的就是角色影子,尽管就一圆斑.

11

主题

123

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2006-6-28 10:22:00 | 显示全部楼层

Re:d小调弹奏一下CS类型游戏弹痕的实现

  大家看过我得<蓝色流星雨>吗?在作品发布区上有,是模仿CS得,我用DX9.0实现得,而且直接用得是.X格式得文件,在解决弹痕的问题时,是我遇到的第一个较难问题,我当时刚学游戏编程不长时间,我以为我解决不掉了,我用了2个多星期,差不多3个星期才搞定.但是没解决曲面的问题,老外的一本书好像有解决曲面贴弹痕的问题.
  过些天我把代码公布,现在的公司封锁了USB口我无法上传.

33

主题

118

帖子

173

积分

注册会员

Rank: 2

积分
173
发表于 2006-6-28 17:59:00 | 显示全部楼层

Re:d小调弹奏一下CS类型游戏弹痕的实现

在FPS游戏中处理弹痕这样的效果都是使用同一个技术-decal(贴花),也就是一个quad加上一个纹理,如果decal位于墙体这样平坦的表面一般非常容易计算,但是当位于地表和mesh上时就复杂了,因为为了避免出现T型接缝必须与表面的triangle求交,而且必须做z-bias,因为z-buffer精度有限.decal技术应用非常广泛,如使用shadow map技术计算shadow,一般情况下都需要使用decal将shadow渲染到物体表面.关于decal技术可以参考game programming gems2中的文章.

36

主题

197

帖子

197

积分

注册会员

Rank: 2

积分
197
发表于 2006-6-28 18:05:00 | 显示全部楼层

Re:d小调弹奏一下CS类型游戏弹痕的实现

楼上的,我看dx9例子里的shadowmap似乎没有你说的decal来画影子?

33

主题

118

帖子

173

积分

注册会员

Rank: 2

积分
173
发表于 2006-6-29 12:41:00 | 显示全部楼层

Re:d小调弹奏一下CS类型游戏弹痕的实现

可以参考一下hl2 leak code,里面有相关的代码

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
 楼主| 发表于 2006-6-29 20:04:00 | 显示全部楼层

Re:d小调弹奏一下CS类型游戏弹痕的实现

回WHB9633:
渲染顺序依赖很正常的,要消除依赖只有相同的渲染方式 况且完全没有必要消除这种依赖,但场景里总有Z-WRITE开/关,Z-TEST关/开,ALPHA,STENCIL等等,有了依赖才有能正确和有速度.这不是缺陷.
另外WOW里我指的就是角色影子,尽管就一圆斑.
=======================================================
争论是没必要的,不是非得有个输赢。
既然是依赖先后顺序,就没必要做任何处理,因为事实上不管OGL或是D3D默认的z-buffer的处理方式就是LQUEAL,这样就谈不上处理2字了。如果非得依赖处理顺序,那就排序吧。。。
关上z-buffer的写入只不过是渲染alpha的一种手段(事实上还有其它的处理手段,不列举了),不见得就不影响速度,事实上alpha一开,帧率就100%地会下降,是没有办法中用的办法,不见是好的手段.....

另外,本人发此帖,目的只是集思广益,讨论各种实现方案,事实上不见得就要非争出个谁的方法好来。因为处理此种问题,像我前面所说,不同精度和应用范围要求和速度要求的用户,都可以做出自己的选择。上面所列出的方法已经超出6种了吧...用stencil也可以做这件事..在GPU里直接把混合相关顶点或纹理数据区域也行.....
dreams同志所说的贴花应该也就是纹理和相关图形的alpha blend吧,在OGL红宝书里仿佛详细讨论了贴花。
另外,关于z-fight的问题,有篇文章我发个地址吧,有兴趣的可以看看,是Intel全球网上的,也列举了四种处理方式。(ps有代码,是DX处理的).
http://www.intel.com/cd/ids/developer/apac/zho/dc/games/optimization/170939.htm?page=2

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
 楼主| 发表于 2006-6-29 20:13:00 | 显示全部楼层

Re:d小调弹奏一下CS类型游戏弹痕的实现

moremoretime之前所说的wow的特效是用m2格式做的,用到alpha的是用了先渲染非alpha物理,再关闭z-buffer write ,用LQUEAL进行z-buffer test,这是常见的渲染alpha手段之一,非alpha的则直接是模型动画或纹理动画,和上述手段无关.这点是不想误导其它人,特此说明.

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2006-6-30 19:26:00 | 显示全部楼层

Re:d小调弹奏一下CS类型游戏弹痕的实现

whb9633涉猎的站点很广呀,佩服佩服,经常看到你引用网上各处的资料。
如果whb9633有空闲的话,能否将一些有用的网络资源稍加整理汇聚成帖呢?这样对初入这个行当不久的朋友都会有莫大的助益。我们大家也可以把自己知道的资源加入进去,争取做成一个精华贴。

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
 楼主| 发表于 2006-6-30 19:56:00 | 显示全部楼层

Re: Re:d小调弹奏一下CS类型游戏弹痕的实现

justlikethewind: Re:d小调弹奏一下CS类型游戏弹痕的实现

whb9633涉猎的站点很广呀,佩服佩服,经常看到你引用网上各处的资料。
如果whb9633有空闲的话,能否将一些...

"燕尘小筑"这个网站上面有个贴子汇集了很多的网络资料。
我这个人是半桶水,看的多写的少,等我买了电脑。。。再整理吧,现在电脑没得用了,公司又什么端口都锁死了,郁闷中......
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 20:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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