其他分享
首页 > 其他分享> > 为何在OpenGL 2中在运行时编译着色器?

为何在OpenGL 2中在运行时编译着色器?

作者:互联网

我一直在尝试学习OpenGL,专门针对Android.我在网上看到了各种教程,并且我注意到许多OpenGL 1.0或1.2教程都不需要编译着色器程序,而我可以找到的OpenGL 2.0唯一教程都涉及创建自定义着色器以在形状中渲染形状.视图.

使用字符串保存代码(GLSL),然后在运行时编译和链接此代码的过程感到很麻烦(甚至很hack).因为GPU架构可能相差很大,这是否必要?

有没有办法使用不需要此步骤的某种默认着色器(例如内置着色器)?我只希望能够绘制GL_POINTS,GL_LINES等图元.

解决方法:

Is this necessary because GPU architectures can vary greatly?

确实的确如此,尽管已经提到IR版本的着色器,但关于其外观如何尚未达成适当的共识.

您可以使用glShaderBinary在上一次运行中预编译着色器,然后重新使用编译后的输出.

标签:opengl-es,shader,glsl,android
来源: https://codeday.me/bug/20191120/2046296.html