【问题标题】:opengl es transparent fog in androidandroid中的opengl es透明雾
【发布时间】:2010-05-22 21:25:32
【问题描述】:

我想知道为什么当我将颜色 alpha 设置为 0 时,我在我的 Android 手机上的 opengl es 中使用的雾不透明。我将背景设置为透明并且它工作正常并且 Color 类或 toFloatBuffer()方法对我的网格效果很好,但是当我将雾色设置为透明时,这个事实就被忽略了。这是我在渲染器的onSurfaceCreated() 方法中用于雾的基本代码:

gl.glFogf(GL10.GL_FOG_MODE, GL10.GL_LINEAR);
gl.glFogf(GL10.GL_FOG_START, 4.0f);
gl.glFogf(GL10.GL_FOG_END, 10.0f);
gl.glFogfv(GL10.GL_FOG_COLOR, new Color(0,0,0,0).toFloatBuffer());
gl.glEnable(GL10.GL_FOG);

【问题讨论】:

    标签: android opengl-es colors transparency


    【解决方案1】:

    这是预期的行为。 OpenGL 和 OpenGL ES 中的固定功能雾只会改变片段的最终 R、G 和 B 分量。 A 组件保持不变(即 GL_FOG_COLOR 的 A 组件未使用)。

    【讨论】:

    • 好的,谢谢,有没有办法在 alpha 通道上另外使用这种雾效果?我可以通过计算物体到相机的距离来自己做,但我希望可以为此使用雾效果。
    • 并非如此——这正是 OpenGL ES 1.1 中定义行为的方式。您是想在任意背景上淡出任意内容,还是您需要处理的案例集更加有限?
    • 第一个,我试图淡出内容,而迷雾正是我所需要的:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    相关资源
    最近更新 更多