【问题标题】:opengl/es: How to resolve excessive smoothing or blurring?opengl/es:如何解决过度平滑或模糊?
【发布时间】:2013-11-17 03:21:34
【问题描述】:

我有一些非常详细的 3D 数据,出于某种原因,这些数据在 OpenGL 上非常清晰和详细,但在 OpenGL ES 1.1 上,所有细节都丢失了。事实上,这个模型看起来像是半透明的塑料,它被过度平滑了。在下图中,在 OpenGL 中,您会清楚地看到数百个单独的三角形。

【问题讨论】:

  • 你能把两张图片都发上来吗?从您发布的图片中很难判断,因为我们不知道可以将其与什么进行比较。

标签: ios opengl-es alpha smoothing


【解决方案1】:

原来我的法线被忽略了。我没有指定 GL_NORMALIZE。

【讨论】:

    【解决方案2】:

    影响的一件事是 GLhint 调用。您可以影响这些项目:

     GL_FOG_HINT
     GL_GENERATE_MIPMAP_HINT
     GL_LINE_SMOOTH_HINT
     GL_PERSPECTIVE_CORRECTION_HINT
     GL_POINT_SMOOTH_HINT
    

    您可以将它们设置为

    GL_FASTEST, GL_NICEST, or GL_DONT_CARE
    

    像这样:

     glHint(GL_LINE_SMOOTH_HINT, GL_FASTEST);
    

    你也可以这样做

    glDisable(GL_LINE_SMOOTH);
    glDisable(GL_BLEND);
    

    可能会弄乱混合功能。此调用将允许使用透明胶片:

    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多