摘要: 前面学习OpenGL的时候渲染的东西都是2D(更准确地说是在2D平面渲染2D的物体)的,而现在开始学习了3D的渲染,其中的门道还是很多的。这里提一提。 首先我们要了解OpenGL的坐标系统,屏幕中心为空间坐标系原点,向右为正x半轴,上为正y半轴,而 从屏幕内指向屏幕外为 正z半轴,如果要渲染一个物体 阅读全文
posted @ 2019-10-06 13:33 jckcoenf 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 出来混迟早是要还的系列(误)。 在学习OpenGL的时候,遇到了一些语言上的障碍(可以读懂,但是不知道具体用法),因此补了一下相关知识。 源代码如下: 先从简单的讲起,也就是try......catch......语句。 我们知道,对于一些异常(exception) c++自己不会处理,当运行程序遇 阅读全文
posted @ 2019-09-19 11:24 jckcoenf 阅读(989) 评论(0) 推荐(0) 编辑
摘要: 本篇写一下EBO(element buffer object, 又称index buffer object IBO,索引缓冲对象)。 在明白了VBO,VAO的相关概念之后,EBO理解起来就简单了很多。 假设现在我们需要绘制一个矩形,首先我们想到的是给出四个点,然后让OpenGL处理。但是限制出现了, 阅读全文
posted @ 2019-09-15 17:14 jckcoenf 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 本篇blog讲的是VAO,想看VBO参照上一篇blog。 VAO(vertex array object,顶点数组对象),不得不说......这个名字起得真是鬼畜,名字和功能八竿子打不着。 吐槽归吐槽,该写还是要写的。 我们知道,VBO保存了一个模型的顶点属性信息,每次绘制模型之前我们需要绑定所有的 阅读全文
posted @ 2019-09-15 16:29 jckcoenf 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 刚学习OpenGL不久,就遇到了VAO VBO EBO(IBO)这类难题,这里写个blog来讲解一下这三个东西的概念,理清思路。 由于篇幅问题,本篇先写最简单的VBO。 在讲解之前,有些预备知识需要了解一下:OpenGL中的缓冲区既是所谓的显存,开始工作的时候缓冲区内的数据会通过AGP总线传输到GP 阅读全文
posted @ 2019-09-15 15:37 jckcoenf 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 在学习openGL的时候,发现了一个关键字的写法有些不一样 就是这个GLADloadproc, 一开始我只是简单以为这个东西是强制转化(事实上它的确是,不过话说回来,c++11以后不是不支持这种old-style的写法了吗。。。),点开GLADloadproc的具体定义页面: 嗯?? 这是什么鬼。。 阅读全文
posted @ 2019-09-11 17:05 jckcoenf 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 函数指针,顾名思义,就是指向函数的指针。那么如何声明一个函数指针呢:答案是返回值以及形参列表与原函数相同,再加个指针符号' * '就好了。 如上所示。并且很容易知道,当我们把函数名作为一个右值使用时,此函数名会自动地转化为指针,当然,也可用取地址符(两者是等价的): 既然是等价的,那么自然而然就可以 阅读全文
posted @ 2019-08-02 09:50 jckcoenf 阅读(6282) 评论(0) 推荐(0) 编辑
摘要: 懒得写了,直接放上答案链接吧 宏和内联函数的意义 相比普通函数,内联函数效率更高,其主要原因为内联函数不需要中断调用,通过复制代码节省了函数调用的时间。 从内联函数的实现我们可以看出,其仅仅节省了函数调用的时间,若本身内联的函数耗时就长,节省这么一点调用时间并不会有太大的提升,而且函数本身复杂,相应 阅读全文
posted @ 2019-07-31 16:16 jckcoenf 阅读(2920) 评论(0) 推荐(0) 编辑
摘要: 宏(macro)本质上是文本替换,也就是在预编译的时候,会把对应的宏(常量or函数)展开替换。 而宏根据有无参数有不同的写法 [1]无参数(对象宏) [2]有参数(函数宏) 注:这里里里外外加了好几层括号,是为了防止一些特殊状况的发生,比如在MIN(X, Y)前乘以某个数,由于宏本质上是文本展开,因 阅读全文
posted @ 2019-07-31 15:35 jckcoenf 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 总是把自己同C++绑定起来,学什么都想着,这个东西对我的c++水平提升有用吗?它会不会影响到我对C++的认知。还是说跟C++风马牛不相及。 停下来想想,实际上自己是走入了一个误区了,首先要知道编程的目的:做出软件、产品。 但我自己却一直放不开,总想着这个东西没在C++类库中,那个东西一点也不“C++ 阅读全文
posted @ 2019-07-31 14:15 jckcoenf 阅读(118) 评论(0) 推荐(0) 编辑