You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Mesh转换为Heightmap:Unity procedural terrain场景下算法咨询

顶点Y值转高度图的核心算法说明

你需要的转换逻辑没有专属独立命名,行业通用实现逻辑为高度值归一化映射编码,是程序化地形纹理化流程的标准前置步骤,具体实现逻辑如下:

  • 首先采样当前地形Mesh的所有顶点Y轴数值,统计出整个地形的最小高度值minY和最大高度值maxY,确定高度覆盖区间
  • 对每个顶点的Y值做归一化计算,通用公式为:normalizedHeight = (vertexY - minY) / (maxY - minY),计算结果会被统一映射到[0,1]的区间范围内
  • 最后将归一化后的0-1数值对应编码为高度图的像素灰度值:0对应纯黑(最低海拔)、1对应纯白(最高海拔),输出的灰度图就是你需要的地形高度图

你提到的基于高度图+if-else的纹理上色逻辑,本质是高度分层匹配:

读取高度图每个像素的灰度值(即归一化高度),匹配预设的海拔区间阈值(比如<0.2对应积雪、0.2-0.5对应草地、0.5-0.8对应岩土、>0.8对应裸岩),给对应区域赋值不同的纹理采样结果,这个上色流程也常被称为高度分层纹理采样。

如果你的地形范围较小,也可以省去生成高度图的步骤,直接在Shader中对顶点Y值做实时归一化计算后匹配分层,减少IO和内存开销。


内容的提问来源于stack exchange,提问作者OishikG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 23:39:03