
OpenGL教程
听听那冷雨~
猿
展开
-
第一节:OpenGL概览
OpenGL本省并不是一个API,它仅仅是一个由KHronos组织制定并维护的规范。OpenGL规范严格规定了每个函数该如何执行,以及它们的输出值。至于内部具体每个函数是如何实现的,将由OpenGl库的开发者自行决定。实际的OpenGL库的开发者通常是显卡的生产商,当 产生一个BUG时通常可以通过升级显卡驱动来解决。这些驱动会包括你的显卡能支持的最新版本的OpenGL. 立即渲染模式与...翻译 2018-11-13 21:10:24 · 266 阅读 · 0 评论 -
第三节:OpenGL框架实现
首先需要在实现代码的语句最前面包含如下代码:#include <glad/glad.h>#include <GLFW/glfw3.h>Note: 确认在包含GLFW的头文件之前包含了GLAD的头文件。GLAD的头文件包含了正确的OpenGL头文件(例如GL/gl.h),所以需要在其他依赖于OpenGL的头文件之前包含GLAD;创建窗口部分:GLFWw...翻译 2018-11-15 16:25:45 · 714 阅读 · 0 评论 -
第四节:绘制第一个三角形
在OpenGL中,任何事物都在你3D空间中,而屏幕和窗口确实2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线管理的。图形渲染管线可以被划分为两个主要部分:第一部分把3D坐标转化为2D坐标; 第二部分把2D坐标转变为实际的有颜色的像素;2D坐标和像素区别:2D坐标精确表示一个点在2D空间...翻译 2018-11-15 17:26:06 · 290 阅读 · 0 评论 -
第二节:创建窗口
在我们画出出色的效果之前,首先要做的就是创建一个OpenGL上下文和一个用于显示的窗口。然而,这些操作1在每个系统上都是不一样的,OpenGL有目的地从·这些操作抽象出去。这意味着我们不得不自己处理创建窗口,定义OpenGL上下文以及处理用户输入。构建GLFWGLFW是一个专门针对OpenGL的C语言库,提供了一些渲染无所需的最低限度接口。GLFW下载地址;为了完整性最好下载源代码...翻译 2018-11-15 11:23:38 · 247 阅读 · 0 评论 -
游戏优化常见技巧(OpenGL)
OpenGL渲染优化:优化性能的主导思想是:流水线的速度由最慢的一个阶段决定;OpenGL基本优化:减少OpenGL的状态变化; 每当我们改变一个OpenGL状态,可能会涉及到硬件的多个寄存器的数据,那么驱动程序就必须将修改的硬件寄存器通过AGP总线发送到硬件,占用大量的CPU资源和AGP带宽和硬件命令解释器时间; Advice1:尽可能将状态相近的图形绘制命令放在一起,减少Ope...原创 2018-12-15 13:46:03 · 5101 阅读 · 1 评论 -
解决使用GLFW库创建OpenGL程序无法用NSight调试问题
如果程序中使用了GLEW库来创建OpenGL程序,即使只是简单地清除窗口程序,用Nsight调试也会报错API错误;Caption 这是因为GLEW有一个历史悠久的bug,调用glewInit()会设置一个GL_INVALID_ENUM的错误标记,所以第一次调用glGetError永远会猝不及防地给你返回一个错误代码,导致Nsight调试时出现API错误;解决方案:...原创 2019-01-29 21:13:40 · 784 阅读 · 0 评论