Husman

人は夢見る ゆえに生きるもの
posts - 14, comments - 37, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

实现Diablo3的描边效果

Posted on 2011-12-01 12:02 Husman 阅读(1080) 评论(2)  编辑 收藏 引用
网上公开的描边的算法有很多,比较有代表性的是用2个pass,第一个pass在VertexShader中将顶点位置沿法线方向做些偏移,达到模型扩大的效果,第二个pass用正常方式画原来的模型。不过有些特殊模型需要做一下特殊处理,比如像野猪这样的模型背部有个隆起的面,其实其实际的顶点并非在游戏中看到的,其背上的纹理一般用了apha_test,丢弃掉无用的像素,所以在第一个pass的时候要把这种情况考虑进去,可是这个方法有个很致命的缺点就是碰到形状尖锐的物体,扩边后在尖锐的处形状会失真,所以在游戏中没有应用价值。这种方法后来被我抛弃,最好的解决办法是从像素上去考虑,而不要通过顶点变换的方式去入手。具体的技术解决方案我不在此博客上提及。现在我在我们的游戏《超神传OL》中实现的描边效果已经和Diablo3很接近了,并解决了遮挡问题。
下面两张是Diablo3描边截图:


我们游戏的选人描边:


NPC描边:


怪物描边:







Feedback

# re: 实现Diablo3的描边效果  回复  更多评论   

2012-04-21 15:43 by xhxh
你这样弄,效率不高吧

# re: 实现Diablo3的描边效果  回复  更多评论   

2012-09-17 11:27 by Husman
@xhxh
在geforce 7300以上的显卡几乎无性能损失。
只有注册用户登录后才能发表评论。