Android OpenGL ES 2.0实时变色

Android OpenGL ES 2.0实时变色,第1张

概述目前,我正在每帧创建一个新的着色器程序,并使用它来着色形状.这导致相当大的滞后.我想知道在GLES20中是否有任何方法可以更有效地设置对象的颜色.我知道在其他版本中有一个setColor函数,但据我所知它在此版本的OpenGLES中不存在.解决方法:最简单的方法是使用统一变量.您的片段着色

目前,我正在每帧创建一个新的着色器程序,并使用它来着色形状.这导致相当大的滞后.我想知道在GLES20中是否有任何方法可以更有效地设置对象的颜色.我知道在其他版本中有一个setcolor函数,但据我所知它在此版本的OpenGL ES中不存在.

解决方法:

最简单的方法是使用统一变量.您的片段着色器的声明部分将具有以下内容:

uniform vec4 objcolor;

然后,您可以使用此值设置对象的颜色.

在您的Java代码(由于拥有AndroID标签,我认为它是Java)的代码中,链接了着色器程序后,您具有以下内容,而progID是您刚刚链接的程序的ID:

objcolorLoc = GLES20.glGetUniformlocation(progID, "objcolor");

然后,在进行绘制调用之前,请使用以下方法更改颜色:

GLES20.gluniform4f(objcolorLoc, colR, colG, colB, 1.0f);
总结

以上是内存溢出为你收集整理的Android OpenGL ES 2.0实时变色全部内容,希望文章能够帮你解决Android OpenGL ES 2.0实时变色所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1076569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存