vision引擎中地形着色器介绍

引言
地表景观纹理是实时程序中的一大挑战,因为纹理细节、混合层数量、纹理内存和渲染性能之前始终存在矛盾。 vForge 内置各种游戏类型中常用的景观着色技术,可以直观可见地在 vForge 地形编辑器中绘制多种纹理。
 
地形着色器
可在地形编辑器纹理选项卡中自定义地形着色器。

延迟渲染模式下的默认着色器变量:
DefferedTerrain(延迟地形)
DefferedTerrainNormal(延迟地形法线)
DefferedTerrainNormalParallax(延迟地形法线视差)
DefferedTerrain_Lightmap(延迟地形光照贴图)
DefferedTerrainNormal_Lightmap(延迟地形法线光照贴图)
DefferedTerrainNormalParallax_Lightmap(延迟地形法线视差光照贴图)
DefferedTerrainFullbright(延迟地形全亮)
DefferedTerrainSpecular(延迟地形高光)
DefferedTerrain2WM(延迟地形 2 权重贴图)- 着色器会在一个基地纹理上混合 8 个纹理,其代价是使用 2 个权重贴图,不使用法线贴图。
 
正向渲染模式下的默认着色器变量:
地形
TerrainNormalmap(地形法线贴图)
TerrainDirectional(地形指向性)
TerrainDirectionalNormalmap(地形指向性法线贴图)
通常,纹理混合会在每个区块将 4 个纹理和一个基底纹理混合在一起(基底 + RGBA 混合),要使用更多数量的纹理,您可以选择  DefferedTerrain2WM(延迟地形 2 权重贴图)着色器,使用两个权重贴图后,可以在一个基底纹理上混合最多 8 个纹理。
 
   注:纹理采样器和缩放比例参数等属性可通过地形渲染代码自动追踪,所以不应作为着色器参数呈现。

   注:如果地形编辑器为
烘培模式 (切换按钮在工具栏内),自定义着色器分配仅在 vForge 内可见。 非烘培模式下,vForge 始终使用编辑着色器,每个细节纹理都在单独通路中渲染。
 
权重贴图
纹理结果通常由像素着色器定义,该着色器决定了输入的纹理如何组合产生最终色彩结果。 大部分组合方法都使用权重贴图纹理来混合不同的细节纹理。
 
 SDK 内置一个演示该方法的示例:
开始菜单 → 所有程序 → Havok Vision SDK → vForge Sample Maps → Exported Scenes → Terrain Editing - Landscape Mixing 和 
开始菜单 → 所有程序 → Havok Vision SDK → vForge Sample Maps → Scene Files → Terrain Editing - Landscape Mixing
 
 
每个细节纹理都由同一个涵盖整个高度场的大加权纹理加权。
加权纹理的红色通道用来混合到细节纹理 #0,
绿色通道用来混合到细节纹理 #1
蓝色通道用来混合到细节纹理 #2。
仅在没有指定任何加权的位置(黑色部分),第四个基底细节纹理才会可见。 所有细节纹理都可独立平铺,例如 60×60、80×80 等。 混合技术如下图所示:

这一方案不使用建模工具中指定的原始基底颜色贴图。 但是,如果没有与客户图形系统兼容的着色实施方案,单色贴图应被视为回退系统的最低保障,所以观感也不能差。
 
在地形编辑器内,您可以在交互式界面下绘制颜色通道并保存所产生的加权贴图。

转自:project anarchy中文社区

猜你喜欢

转载自projectanarchy.iteye.com/blog/2109118