游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3906|回复: 11

杂草类点缀渲染

[复制链接]

18

主题

92

帖子

92

积分

注册会员

Rank: 2

积分
92
发表于 2006-7-21 22:55:00 | 显示全部楼层 |阅读模式
    杂草类点缀指的是室外场景中一些以很少多边形组成的小型物体,如小草或一些灌木等。这些物体一般是由一些交叉的平面带上有Alpha通道的贴图(也可以是带Keycolor的贴图)组成。一般有下面几种渲染方式:
(1)AlphaTest
    这是最通常的方法,大多数游戏使用这个方法。由于开了纹理过滤和生成Mipmap的缘故,渲染一些小物体时会出现黑边,而且锯齿现象较为严重,这就需要在实际使用中找到一个比较合适的AlphaTest参考值。
(2)AlphaBlend + Disable zwrite
    这是一种比较简化的方式。由于打开了AlphaBlend后需要用从后往前的顺序渲染透明物体,如果点缀的密度比较高时,使用这种方法会出现一定的视觉错误。所以此方法只用于点缀密度不是很高的情况,如果要求不高,高密度时也可以用。
(3)两个Pass的渲染方法
    第一个Pass用方法(2)渲染点缀,主要渲染出柔化的边缘;第二个Pass打开Zwrite用方法(1)渲染点缀,主要确定视觉遮挡效果。这种方法视觉误差比方法(2)要小很多,可用于高密度渲染,缺点是需要渲染两次。
(4)Transparency AA
    这是最彻底的方法,可以实现无顺序AlphaBlend渲染,OpenGL支持这个扩展,D3D方面据说要到D3D10才支持。这种方法的缺点是需要强大的硬件支持。
    总的来说渲染很高密度的点缀需要有强大像素填充率的显卡的支持。

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
发表于 2006-7-23 04:40:00 | 显示全部楼层 |阅读模式
(1)你可以对草的纹理开MIPMAP,ALPHA通道另开一个纹理而不用MIPMAP,只用来做ATEST
(4)我说GF7有专门硬件支持.

18

主题

92

帖子

92

积分

注册会员

Rank: 2

积分
92
 楼主| 发表于 2006-7-21 22:56:00 | 显示全部楼层

Re: 只有AlphaTest

sf_2006721225558.jpg

18

主题

92

帖子

92

积分

注册会员

Rank: 2

积分
92
 楼主| 发表于 2006-7-21 22:57:00 | 显示全部楼层

Re: 加入了AlphaBlend

  
sf_2006721225651.jpg

18

主题

92

帖子

92

积分

注册会员

Rank: 2

积分
92
 楼主| 发表于 2006-7-21 22:59:00 | 显示全部楼层

Re: 杂草类点缀渲染

由于是初学者,那里说错了不要怪我

顺便加张地形图 [em13]
sf_200672122594.jpg

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
发表于 2006-7-22 02:33:00 | 显示全部楼层

Re:杂草类点缀渲染

(1)的锯齿是肯定的,但黑边可以消除,就是关掉MIPMAP.
(4)要GF7显卡,可以下载NVIDIA SDK,里面有这个DEMO.

18

主题

92

帖子

92

积分

注册会员

Rank: 2

积分
92
 楼主| 发表于 2006-7-22 08:25:00 | 显示全部楼层

Re:杂草类点缀渲染

关掉Mipmap会造成移动时纹理的抖动

另外订正一下,TAA在D3D9里可以实现,要GF7的卡,OpenGL好象不需要

4

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2006-7-22 10:48:00 | 显示全部楼层

Re:杂草类点缀渲染

对于这些小东西来说渲染效率是很重要的,不知道你是怎么来处理的?

18

主题

92

帖子

92

积分

注册会员

Rank: 2

积分
92
 楼主| 发表于 2006-7-22 22:50:00 | 显示全部楼层

Re:杂草类点缀渲染

就是比较靠近一群一个VB,整体用AABB来剔除
不同的草纹理包到一个里面,通过修改纹理坐标来选择

图中一共有四种草,共2500棵

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-7-23 09:17:00 | 显示全部楼层

Re:杂草类点缀渲染

一般用AlphaLod的效果就可以达到要求了.如果是游戏的话.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 00:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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