首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用OpenGL es 2.x绘制三角形渐变的最简单方法是什么

使用OpenGL es 2.x绘制三角形渐变的最简单方法是什么
EN

Stack Overflow用户
提问于 2012-01-22 01:55:45
回答 1查看 1.7K关注 0票数 1

我在使用OpenGL 1.x的安卓手机上运行我的程序,为了生成三角形渐变,我使用了以下代码:

代码语言:javascript
运行
复制
    gl11.glEnableClientState(GL10.GL_COLOR_ARRAY);
    gl11.glBindBuffer(GL11.GL_ARRAY_BUFFER, colorPointerShadow);
    gl11.glColorPointer(4, GL10.GL_FLOAT, 0, 0);

然而,我的使用OpenGL 2.0的新手机就像,嗯,不,你不在,然后就崩溃了。那么如何在三角形上绘制基本渐变呢?可以在不涉及着色器业务的情况下完成这项工作吗?感谢您的阅读!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-22 03:28:07

OpenGL ES 2.0与1.1不向后兼容。你需要编写着色器,但不要害怕。顶点着色器可以非常简单,如下所示:

代码语言:javascript
运行
复制
attribute vec4 Pos, Color; // vertex shader inputs
varying vec4 vColor;       // vertex shader output
uniform mat4 MVP;          // model-view-projection matrix
void main() {
    gl_Position = MVP * Pos;
    vColor = Color;
}

而且你的片段着色器可以更简单:

代码语言:javascript
运行
复制
varying lowp vec4 vColor;   // vertex shader output
void main() {
    gl_FragColor = vColor;
}

如果你给每个三角形的角指定一个唯一的颜色,你会看到一个渐变。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8955231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档