摘要: 在VBO、VAO和EBO那一节,介绍了如何向Vertex Shader传递vertex attribute的基本方法。现在我准备把这个话题再次扩展开。 传递整型数据 之前我们的顶点属性数据都是float类型的,现在我使用int(unsigned int)类型或者double类型的数据怎么办? 比如我 阅读全文
posted @ 2021-05-21 16:08 胖Po 阅读(436) 评论(0) 推荐(0)
摘要: 我们之前都是通过glNamedBufferData初始化buffer object,初始化的意思是为buffer object开辟显存空间,并填充数据: GLfloat position[] = { -1.0f, -1.0f, 0.0f, 1.0f, 1.0f, -1.0f, }; GLuint v 阅读全文
posted @ 2021-05-20 07:32 胖Po 阅读(795) 评论(0) 推荐(0)
摘要: Vertex Buffer Object 对于经历过fixed pipeline的我来讲,VBO的出现对于渲染性能提升让人记忆深刻。完了,暴露年龄了~ //immediate mode glBegin(GL_TRIANGLES); glNormal3f(...); glVertex3f(...); 阅读全文
posted @ 2021-05-15 10:22 胖Po 阅读(1808) 评论(2) 推荐(0)
摘要: 寻找链表的倒数第k个节点 题目:已知一个带有表头结点的单链表,节点结构为(data,next),假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的节点(k为正整数),若查找成功,返回指向该节点的指针;否则,返回nullptr。 解法:设置 阅读全文
posted @ 2020-09-04 07:34 胖Po 阅读(435) 评论(0) 推荐(0)
摘要: 在OpenGL中,指定三角形图元的顶点顺序很重要。譬如,我们可以使用glFrontFace指定顺时针还是逆时针为正面,然后通过glCullFace不绘制正面或者背面. 但你有没有想过,OpenGL是怎么判断三角形的顶点顺序是顺时针还是逆时针呢? 二维还是三维 首先我们先明确一下,culling这个阶 阅读全文
posted @ 2020-08-01 08:46 胖Po 阅读(2323) 评论(0) 推荐(0)
摘要: shader之间传递数据实在是太常用了. 下面我们总结几种shader之间传递数据的方法. Name based matching 最简单,也是最常用的一种传递方式是依靠名字进行匹配. 例如我们从vertex shader向fragment shader传递颜色: //vertex shader # 阅读全文
posted @ 2020-07-24 07:28 胖Po 阅读(1356) 评论(0) 推荐(3)