【问题标题】:Thickness of OpenGL 2D TexturesOpenGL 2D 纹理的厚度
【发布时间】:2014-09-03 15:06:32
【问题描述】:

在 OpenGL (lwjgl) 中赋予 2D 纹理某种“厚度”的最简单方法是什么。当然,我可以以某种方式获得纹理的边界,并以相邻纹理像素的颜色添加以绘制纹理的四边形的法线为方向的四边形。但必须有一种更简单的方法来做到这一点。 Minecraft 也在使用 lwigl,并且有(新的)3D 项目,它们在地面上旋转并且不会造成性能问题,就像它们是由几十个多边形绘制的一样。同样,当您将物品握在手中时,深度会出现那种“拉伸”纹理,这也适用于高分辨率纹理。 有谁知道这是怎么做的吗?

【问题讨论】:

  • 我所知道的纹理可以具有明显厚度的唯一方法是凹凸贴图(即使这只是明显的厚度,当以极端角度观察时它也会分解)。要创建真实的厚度,它必须是一些几何生成效果。
  • 是的,几何着色器在这里可以很好地使用。

标签: java opengl textures rendering lwjgl


【解决方案1】:

2D 纹理总是无限薄。如果您想要实际厚度(当您看边缘时),您需要几何形状。在 Minecraft 中,事物看起来是块状的,因为它们是这样建模的。

如果您从某个角度看并忽略边缘,您可以使用视差映射来“伪造”纹理中的某些深度。或者,您可以使用深度贴图并结合使用曲面细分着色器和顶点着色器来实现置换贴图,从而从纹理生成几何体。

【讨论】:

    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 2019-04-02
    • 2014-10-23
    • 2013-09-20
    • 2011-01-11
    • 2016-10-04
    • 2012-03-13
    • 2015-07-06
    相关资源
    最近更新 更多