两个问题:
有没有办法在 OpenGL ES 2.0 中不使用着色器来渲染到屏幕?
是否有可以用来代替定义自己的默认顶点和片段着色器?
除了围绕 OpenGL ES 2.0 之外,没有尝试实现任何目标。
两个问题:
有没有办法在 OpenGL ES 2.0 中不使用着色器来渲染到屏幕?
是否有可以用来代替定义自己的默认顶点和片段着色器?
除了围绕 OpenGL ES 2.0 之外,没有尝试实现任何目标。
不,不在 ES 2.0 中。
不是内置的,但你可以在网上找到一些。尽管什么是合理的默认着色器很大程度上取决于您实际想要做什么。您只想渲染彩色图元吗?在 2D 或 3D 中?你需要照明吗?哪些参数定义了您的灯光?你想要纹理吗?这些相当基本的问题已经定义了着色器的外观。
一方面,问题是您需要不同的着色器,具体取决于您想要实现的每种情况和渲染风格。但另一方面,如果适应特定的用例,这些着色器不会那么复杂。一个简单的 3D 光照顶点着色器不需要超过 5 行代码(仅实际着色器功能),并且相应的片段着色器对 1 行代码进行纹理处理。
但是您将无法理解着色器是如何工作的以及如何与它们交互。一旦你得到了这个,为通常的用例编写你自己的着色器就变得轻而易举了。我建议您查看一些关于 OpenGL ES 2.0 的优秀教程或书籍。这应该适当地介绍着色器的基本原理以及如何实现通常的标准计算,如顶点变换、光照、纹理。
不幸的是,OpenGL ES 2.0 没有定义任何默认着色器。
OpenGL ES 1.0 只是一个固定的管道,不允许着色器定义,而 OpenGL ES 2.0 允许着色器定义,但不包括任何固定的管道(即默认着色器)