为什么我们在OpenGL 2中在运行时编译着色器?

金鱼草

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

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

有没有一种方法可以使用不需要此步骤的某种默认着色器(例如内置着色器)?我只想能够绘制GL_POINTS,GL_LINES等图元。

棘轮怪胎

因为GPU架构差异很大,这是否必要?

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

OpenGl 4中的编译着色器是强制性的吗?

在OpenGL中在Mac上编译着色器时出现“不支持版本”错误

在图形应用程序中,为什么在运行时将着色器加载到应用程序中?

如果C ++编译为机器代码,为什么我们需要安装“运行时”?

在OCaml中,我们为什么有'+。','-。' 但是我们仅使用“ <”而不是“ <。”?

为什么我们需要分别编译和链接?

为什么我们需要在运行时实例化一个类型?

为什么我们需要粗略的量化器?

为什么我们需要Fuseki服务器?

构建器模式:为什么我们需要.build()?

为什么我们要使用argv [2] [0]

为什么我们投可比在TreeMap中

为什么我们到底需要Java中的StringBuffer

为什么我们需要Java中的默认方法?

为什么我们需要纯<?>在Java中?

为什么我们使用 try,除了在 Python 中

为什么我们在MongoDB中需要created_at

为什么我们需要python中的协程?

为什么我们需要Java中的Properties类?

为什么我们需要Kubernetes中的服务帐户?

我们为什么要在pytorch中“打包”序列?

为什么我们在芹菜中需要签名?

为什么我们在git中需要SSH密钥?

为什么我们在Tensorflow中命名变量?

为什么我们需要C ++中的虚函数?

为什么我们需要Clojure中的'in(require'[...]])?

为什么我们需要Java中的弱引用

为什么我们在Python中需要“ finally”子句?

为什么我们在Hadoop堆栈中需要ZooKeeper?