【问题标题】:How to color a cube using glColorMaterial() calls in Android OpenGL ES?如何在 Android OpenGL ES 中使用 glColorMaterial() 调用为立方体着色?
【发布时间】:2011-03-07 13:18:36
【问题描述】:

我有一个立方体,我想在所有六个面上涂上相同的颜色。我必须使用glColorMaterial() 调用(或glMaterial() ?)才能使灯光正常工作。如果我使用 glColor4f() 呼叫然后这不适用于灯光。 可以帮助我提供一系列命令来绘制所有六个面吗 (1,0,0,1) 红色和 100% 不透明度?这必须在 Android 中工作。

【问题讨论】:

    标签: android opengl-es


    【解决方案1】:

    您可以使用glColorMaterial 设置指定应跟踪当前颜色的材质参数。例如,使用

    glEnable(GL_COLOR_MATERIAL)
    glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE)
    

    然后使用glColor4f(...) 设置当前颜色。不要忘记glEnable 电话!

    【讨论】:

    • 您的答案有效,除非我必须注释掉 gl.glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);因为安卓不支持这个。不确定这是否会产生任何其他影响。
    • 啊,你当然是对的,我把普通的 OpenGL 和 OpenGL-ES 混在一起了。在 OpenGL-ES 中,确实不支持 glColorMaterial,启用 GL_COLOR_MATERIAL 将始终使环境和漫反射材质跟踪当前颜色。很抱歉造成混乱;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多