vision引擎中环境地形 材质 ID 贴图

引言
 
在应用程序中,有时有必要在世界的特定位置访问材质信息。例如,为准确播放脚步声或应用墙壁痕迹效果,就需要访问材质信息。 为了在运行时、在世界中任何给定位置提取这一材质数据,材质贴图是非常重要的功能。
 
因为权重贴图的存在,这一信息访问起来不太容易,因为权重贴图纹理驻存在 GPU 内存中。 为此,地形有一可选功能,可生成材质 ID 贴图。 该贴图本质上是一个 2D 数组,包含每个区块的值,范围为 0 到 255,其中每个输入值代表最显著的材质的 ID。
 
材质贴图分辨率
材质贴图分辨率可在配置对话框中设定:

地形创建后,该分辨率可以随时修改。 默认分辨率为 0,也就是说没有材质贴图。
 
材质贴图不是手动编辑的,始终在细节纹理被烘培时从纹理信息生成。 材质贴图信息本身随区块文件一同保存,而非独立的实体文件。
 
材质贴图数据
编辑器中的细节纹理资源可带一个材质 ID 值。 该值默认为 -1,表示材质贴图不考虑该纹理。 用户可指定 0 到 255 之间的任意值:

该值没有写死在代码中的语义关联, 而是让用户决定如何在工作流中使用。 它可以作为地形自定义材质表中的索引使用,甚至作为 8 位逻辑符解读。 并非每一个细节纹理都需要有效 ID,多个纹理甚至还能共享相同的 ID。
 
材质贴图为带材质 ID 的最显著的材质的每个样本储存材质 ID。 如果该材质上层还绘制了不透明度 100% 但不带有效材质 ID 的另一个纹理,该纹理将被忽略,材质贴图储存下一个带有效 ID 的显著材质的 ID。
   注:切换到烘培试图模式以查看材质 ID 贴图
 
材质贴图可视化
材质贴图可作为覆盖层实现可视化,显示纹理在当前场景贴图中的覆盖情况。

覆盖层表现了最近一次烘培流程的状态。 请注意,该覆盖层不会插入这些值,因为插入材质 ID 值也没有意义。

转自:projectanarchy中文社区

猜你喜欢

转载自plmkome.iteye.com/blog/2106417
今日推荐