着色器与OpenGL中较旧的渲染方法相适应的地方在哪里?
在许多在线教程之后,我用OpenGL编写了一个级别渲染器。实际上,我使用顶点数组和“范围绘制”命令进行渲染。现在,因为我想用逐像素照明来照亮关卡,我意识到着色器是OpenGL的一个重要组成部分,如果不是OpenGL的主要部分的话 因此,我在这里使用我的“传统”渲染方法,不使用着色器,我想知道着色器如何适应事物的大场景。如果我利用OpenGL的最新功能对其进行返工,那么我的主要渲染功能是否会使用着色器来完成?我可以将渲染保留在代码中,而只使用着色器进行照明吗 我想正确地做到这一点,而不是很快,所以我将继续通过OpenGL Superbible阅读,边读边学着色器与OpenGL中较旧的渲染方法相适应的地方在哪里?,opengl,shader,Opengl,Shader,在许多在线教程之后,我用OpenGL编写了一个级别渲染器。实际上,我使用顶点数组和“范围绘制”命令进行渲染。现在,因为我想用逐像素照明来照亮关卡,我意识到着色器是OpenGL的一个重要组成部分,如果不是OpenGL的主要部分的话 因此,我在这里使用我的“传统”渲染方法,不使用着色器,我想知道着色器如何适应事物的大场景。如果我利用OpenGL的最新功能对其进行返工,那么我的主要渲染功能是否会使用着色器来完成?我可以将渲染保留在代码中,而只使用着色器进行照明吗 我想正确地做到这一点,而不是很快,所以
有谁能教我如何适应一切,以及这些旧的在线教程(如Nehe和GameTootorials)是否仍然适用。使用固定功能OpenGL大致遵循以下步骤:
- 设置投影矩阵
- 设置模型视图矩阵
- 设置照明参数
- 将纹理绑定到纹理单元
- 定义纹理环境操作
- 设置几何体(顶点阵列/顶点缓冲区对象)
- 发出绘图命令
如果您的意思是,如果着色器将执行绘图调用:否!实际上,将一个不使用显示列表、选择模式和即时模式的旧OpenGL-1.1渲染器提升到OpenGL-3核心并不难。(如果涉及显示列表、选择模式和即时模式…使用固定功能OpenGL大致遵循以下步骤:
- 设置投影矩阵
- 设置模型视图矩阵
- 设置照明参数
- 将纹理绑定到纹理单元
- 定义纹理环境操作
- 设置几何体(顶点阵列/顶点缓冲区对象)
- 发出绘图命令
如果您的意思是,如果着色器将执行绘图调用:否!实际上,将一个不使用显示列表、选择模式和即时模式的旧OpenGL-1.1渲染器提升到OpenGL-3核心并不难。(如果涉及到显示列表、选择模式和即时模式…在我看来,您的问题在于您并不真正了解着色器是什么或做什么。我建议处理一下这个想法。但是,我还是写了它们,所以请恕我直言。在我看来,你的问题在于你并不真正理解着色器是什么或做什么。我建议处理一下这个想法。但话说回来,我确实写过,所以请恕我直言。