我正在开发一款骑行应用,包含室内训练/竞赛模式,通过 Three.js 在 3D 世界中运行。它其实不算游戏,但从渲染角度看,这部分功能实际上已经变成了一个游戏。
物理系统和骑手模型运行良好,但我一直难以构建出令人信服的环境——尤其是地形着色和材质系统。单独看各个组件还可以,但组合在一起后,地形仍然显得平坦、人造、多面感过强,或者与道路视觉上脱节。
视频片段展示了当前状态。
平铺地形纹理一直是个大问题。我尝试过的素材要么有明显的重复,要么带来不想要的颜色和对比度,要么空间尺度不对,要么与低多边形地形格格不入。去掉纹理虽然解决了重复问题,但地形看起来却变得单调而人造。
技术栈是 Three.js/WebGL,使用真实高程数据驱动地形。我在实现和迭代过程中大量使用了 AI,但并未指望它能生成最终的外观。
如果你曾解决过类似问题,我将非常感谢以下建议:
- 你会在宏观、中观和微观尺度上如何组织地形细节?
- 你是否会将固有色保持在程序化/低频状态,仅将平铺用于粗糙度和细微法线?
- 在 Three.js/WebGL 中,有哪些技术能有效打破大面积地形的纹理重复?
- 如何在不暴露网格三角面的情况下保留可辨识的地形起伏?
- 你会如何处理光照和大气深度?
- 如何让道路和路肩感觉是嵌入地形而非叠加在上方?
- 在哪个阶段你会断定剩余问题是地形几何而非材质?
我盯着这个问题太久了,可能正在错误的层面进行优化。
乐意分享实现细节。
评论 (0)