Terrain(地形)

概述:对于地形来说,无非是对地形中每个顶点的有效管理,而UV的控制也是为了控制顶点的y坐标。

 

位置计算:

1.需要的参数:

(1).TILE_EDGE_VTX_NUM:Tile每行顶点数,边数 = 顶点数-1

(2).tileSize:Tile的宽度

(3).viPosition:Tile相对于整个地形的位置

(4).WORLD_SCALE:整个地形放大的倍数

其中1和4是固定参数,可以调节4对地形进行缩放。2和3需要在CPU端计算获取,2是每一个环的Tile宽度相等,不同环之间成2的倍数关系。

2.过程:

(1).渲染的时候,以每个Tile块为单位进行Instance渲染,在渲染前计算出viPosition作为每个Tile块相对于整个地形的位置。

(2).对每个顶点计算

第一步:通过顶点的索引计算出顶点相对于Tile的位置

第二步:然后乘tileSize以及加viPosition,这个时候的结果是此顶点相对整个地形的位置

第三步:顶点乘WORLD_SCALE,这个时候其实是对整个地形的放大,得到一个真实的地形。

 

纹理计算:

一共有四张纹理,两张高度图,两张地形贴图纹理

1.高度计算:

需要的参数:

pos:顶点计算时,第二步的产物,此时的地形还没有放大。

Coarse_HUV_Repeat_Interval:粗糙高度图UV坐标的跨度,这个是控制纹理覆盖的面积的。

Detail_HUV_Repeat_Interval:同理这是细节高度图UV坐标的跨度,一般来说这个跨度应该比粗糙的小。

Coarse_Height_Scale:这个是控制获取到的高度的比例的,与粗糙高度图匹配

Detail_Height_Scale:同上,与细节高度纹理匹配

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值