
学习现代3D图形编程
草上爬
专注技术,热爱分享
展开
-
Qt OpenGL:学习现代3D图形编程之一,画一个三角形
1.显示到屏幕这里先简单介绍一下缓冲区,缓冲区存在于图形卡的显存中,OpenGL在绘制图元时,先是在一个缓冲区中完成渲染,然后再把渲染结果交换到屏幕上。void display(){ //指定OpenGL清理屏幕时将要使用的颜色,这里为黑色。 glClearColor(0.0f, 0.0f, 0.0f, 0.0f); //开始清理屏幕,GL_COLOR_BUFFE原创 2016-03-23 17:21:25 · 5498 阅读 · 3 评论 -
Qt OpenGL:学习现代3D图形编程之二,玩转色彩
除了给三角形赋予单一的颜色,我们还有两种方法来改变三角形表面的颜色,一种是利用片段的位置来计算颜色,另一种是利用每个顶点的数据来计算颜色。一、利用片段位置计算颜色 片段的数据包括片段在屏幕上的位置,因此如果我们想要改变三角形表面的颜色,可以访问片段着色器中的数据,并计算片段最终的颜色。 gl_FragCoord是片段着色器独有的内置变量,它是个三维向量,包含x、y、z,其中x原创 2016-03-25 20:35:11 · 2177 阅读 · 3 评论 -
Qt OpenGL:学习现代3D图形编程之三,移动三角形
这里以《画一个三角形》为基础,只介绍与《画一个三角形》不同的地方一、移动顶点 移动三角形最简单的方法是直接改变顶点的位置数据,我们知道顶点数据存储在缓冲区对象,所以我们的任务就是改变缓冲区对象中的顶点数据。改变顶点的位置数据分为两步,第一步是生成位置相对于x和y的偏移量,第二步是将这些偏移量应用于每个顶点的位置。如函数ComputePositionOffsets所示。该函数循环计算偏原创 2016-04-02 10:24:17 · 3505 阅读 · 2 评论 -
Qt OpenGL:学习现代3D图形编程之四,透视投影
一、非真实的世界 与之前几篇文章不同的是,这里要画12个三角形,这个12个三角形构造一个方形棱柱(这里为长方体)。棱柱的每个四边形表面由两个三角形组成。这两个三角形其中的一条边重合,而且它们的六个顶点的颜色相同,因此每个四边形表面都有唯一的颜色。下面的顶点着色器我们已经非常熟悉,它传递颜色到片段着色器,定义了一个uniform的二维向量offset,该变量用来改变顶点位置的x和y坐标值。原创 2016-04-03 11:05:18 · 6351 阅读 · 4 评论