【openGL2021版】点&线
大家好,我是Lampard猿奋
欢迎来到船新的openGL基础系列的博客,今天讲的是画点&线
(一)创建openGL上下文
在上一篇博客中我们通过CreateWindowEx创建了一个window的窗口句柄,然后我们需要为这个窗口句柄来创建一个openGL的上下文。
(二)初始化openGL的参数
接下来就是需要对投影矩阵以及模型视图进行一些初始化操作
首先是对投影矩阵进行设置,通过gluPerspective方法把摄像头的角度,绘制宽高比,最近距离和最远距离进行设置
然后是把模型视图当前矩阵设置成单位矩阵,然后glClearColor把屏幕背景颜色设置成一个蓝色。此时的窗口是这样的:
(三)画点
openGL的绘制时在glBegin()后开始,在glEnd()终止,然后在begin之前我们可以对点的一些属性比如大小,比如颜色进行设置
然后就开始绘制,并设置点的位置就可以在(0,0)这个位置画出一个白色的点了
绘制效果:
此时可能有同学有疑惑,这个(0,0)位置可以理解,-0.5是什么意思呢,其实这个负号是表示这个绘制在摄像头前面,0.5就是Z轴的优先级了,如果我们把它设置成正数那么相当于绘制在我们的背面,那么我们就看不到这个点了
(四)画线
那么知道了画点之后其实画线也没什么难度,同样的我们只需要在glBegin前设置好线的属性(线的宽度,颜色),然后再绘制即可
(1)GL_LINES
相比于点,线有三种绘制模式,首先介绍GL_LINES,它会让第n+1个点和第n+2个点绘制成一条线,如果点总数为偶数,则会出现n / 2条线,如果为奇数,比如5个点那么只会出2条线
绘制效果:
(2)GL_LINE_LOOP
GL_LINE_LOOP模式是把绘制出现的点首尾相连
(3)GL_LINE_STRIP
GL_LINE_STRIP相比GL_LINE_LOOP就是在于它也会一个一个点往下连,但是最后一个点不会连上第一个点,而且有一个好玩的东西,就是如果没绘制一个点得时候改变点的颜色,那么这条线就会出现颜色渐变的情况