【问题标题】:Texture coordinates for dynamic terrain - OpenGL动态地形的纹理坐标 - OpenGL
【发布时间】:2011-07-06 18:35:12
【问题描述】:

谁能描述一种用于计算每帧动态变化的地形的纹理坐标的常用技术?我在顶点着色器中实现了一个 perlin 噪声函数,并且地形是逐帧动画的。地形非常像山(锯齿状,非常嘈杂)。我在想我可以在整个地形上线性地拍几个大纹理,并根据高度在片段着色器中使用多纹理,但这会导致纹理在高度增加/损失较大的地方看起来被拉伸,对吗?我无法弄清楚如何在顶点着色器中计算纹理坐标,以便纹理在整个地形上看起来都很漂亮,并且可以对细节进行多重纹理处理。我正在寻找关于 OpenGL 中存在什么样的技术的指针。我可以将 glTexGen 用于这样的事情吗??

【问题讨论】:

    标签: opengl texture-mapping shader perlin-noise


    【解决方案1】:

    没有用于执行此操作的“通用技术”,因为它没有什么共同之处。您有特定于您的用途的需求。很难知道自己想要什么,因为除了“在不断变化的地形上添加纹理”之外,您自己似乎没有任何特定目标。

    glTexGen 不会帮助你,因为它只适用于每个顶点级别。如果您担心跨越巨大变化的领域,那将无济于事。

    您应该尝试各种不同的方法,看看哪种结果可以接受。使用着色器根据三角形的斜率(您必须找到一种在片段着色器中计算它的方法,或者使用几何着色器来获得它)以及任何特定像素的高度来混合纹理。这样,对于坡度较高的区域,您可以开始引入岩石纹理或其他东西。

    【讨论】:

    • 通过在片段着色器中手动将纹理混合在一起,我能够实现我所追求的精确多纹理效果。因为它是柏林噪声,所以斜坡从来没有那么剧烈以至于发生纹理steching,所以我最初对提出这个问题的担忧并不重要。我还将尝试您基于坡度而不是高度的纹理建议,以制作更逼真的地形。谢谢!
    猜你喜欢
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 2015-04-23
    • 2015-02-03
    • 2012-03-06
    • 2012-04-08
    相关资源
    最近更新 更多