游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2547|回复: 5

地形渲染中,为了每个Tile每层纹理之间的融合,用多次渲

[复制链接]

18

主题

47

帖子

47

积分

注册会员

Rank: 2

积分
47
发表于 2006-5-7 07:57:00 | 显示全部楼层 |阅读模式

在大面积室外地形渲染中,地表是被分割成一小块一小块的“Tile”来渲染的。每个Tile的纹理都用了2-3张的彩色纹理和1-2张的Alpha纹理进行混合,从而得到譬如草地,土地和岩石等过渡自然的地形。天堂2和魔兽等都是类似这样的。


不过我有一个地方不太明白的就是,在每层纹理混合的时候为什么要“多遍渲染”,就是每渲染一层纹理就渲染一次网格DrawTile(), 这样会不会很慢?可是我看好多人都是这么渲染,请问这样帧数不慢吗?

void Draw()
{

      激活纹理通道0
      DrawTile();

      激活纹理通道0
      草地纹理
      激活纹理通道1
      Alpha纹理1

      DrawTile();

      激活纹理通道0
      沙地纹理
      激活纹理通道1
      Alpha纹理2

      DrawTile();


}

-------------------------------------

有没有办法只渲染一次DrawTil()?现在的显卡可以支持好几层纹理一次渲染吧!

各位高手帮忙啊!








121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2006-5-7 13:03:00 | 显示全部楼层

Re:地形渲染中,为了每个Tile每层纹理之间的融合,用多

显卡一次渲染层数是有限的,同时还需要考虑显卡兼容性。

18

主题

47

帖子

47

积分

注册会员

Rank: 2

积分
47
 楼主| 发表于 2006-5-8 08:26:00 | 显示全部楼层

Re:地形渲染中,为了每个Tile每层纹理之间的融合,用多

那显卡支持8层纹理贴图的话,不是渲染一次就可以了吗,我想这样不是比重复渲染好多次要快的多?是这样吗?

小弟不太明白,请各位大侠指教。

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2006-5-8 09:08:00 | 显示全部楼层

Re:地形渲染中,为了每个Tile每层纹理之间的融合,用多

快不了那么多,虽然单周期多重纹理采样是能节省GPU周期,但是到了纹理填充量达到一定程度的时候,显存就会出现瓶颈,而且采样次数超过GPU的单周期能力以后,GPU会跨周期采样,这样可能会给性能带来一定的负面影响。不知道这样会不会造成Cache-Missing,这个就要某些NR抨击一下了。

18

主题

47

帖子

47

积分

注册会员

Rank: 2

积分
47
 楼主| 发表于 2006-5-8 10:12:00 | 显示全部楼层

Re:地形渲染中,为了每个Tile每层纹理之间的融合,用多


原来是这样,又学了不少东西。

那地形各个图层融合渲染就要用这种反复重复渲染几次的方法吗?我总觉得有点别扭啊!现在都为了减少三角形数量努力,而地形反倒是重复渲染三角形,总觉得怪怪的,哈哈!

15

主题

1268

帖子

1268

积分

金牌会员

Rank: 6Rank: 6

积分
1268
发表于 2006-5-9 15:07:00 | 显示全部楼层

Re:地形渲染中,为了每个Tile每层纹理之间的融合,用多

ps2.0里每周期16次以内时没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 11:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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