You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过图像纹理颜色(像素)编写代码设置地形高度图?

我最近在尝试通过提取图像/纹理的像素颜色来生成地形高度图,做了个简单的示例,这里把我的实现思路和参数逻辑分享出来:

核心参数配置

  • 原始纹理分辨率:7000×5000 px
  • 目标高度图尺寸:4096单位
  • 预设总高度范围:600单位

采样转换逻辑

因为原始纹理的分辨率远大于高度图的尺寸,所以我通过计算采样步长来完成两者的映射,代码里的关键计算(对应第25行)是这样的:

// 计算X、Y方向的采样步长
float stepX = 7000.0f / 4096.0f;
float stepY = 5000.0f / 4096.0f;

通过这个步长迭代采样原始纹理的像素,就能把高分辨率的纹理转换成对应尺寸的高度图数据。

高度映射规则

我给不同颜色区域设置了固定的高度比例:

  • 水域区域:对应总高度的0.25f,也就是600/4=150单位
  • 其他非水域区域:对应总高度的0.5f,也就是600/2=300单位

目前这个简单的逻辑已经能实现基础的地形高低区分,如果需要更细腻的地形变化,还可以扩展多颜色区间对应不同高度梯度的规则~

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

火山引擎 最新活动