
OpenGL
我是包不同
这个作者很懒,什么都没留下…
展开
-
OpenGL实战教程(13) -- 第十二站:利用Assmip库加载OBJ模型
1、Obj模型数据格式obj模型文件是文本文件,主要由以下几部分组成:;模型用贴图的描述文件,mtl文件描述贴图文件的信息,包括文件名等mtllib xxx.mtl;顶点坐标数据v 1.000000 -1.000000 -1.000000v 1.000000 -1.000000 1.000000v -1.000000 -1.000000 1.000000…;纹理坐标的定义vt ...原创 2020-04-01 15:50:06 · 767 阅读 · 0 评论 -
OpenGL实战教程(12) -- 第十一站:OpenGL坐标系及平移缩放操作
1、坐标系常说的坐标系,有三种说法:左手坐标系、右手坐标系、笛卡尔坐标系左手系:伸开左手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向。右手系:伸开右手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向。左手和右手坐标注系的区别在于两者Z轴的方向是相反的。笛卡尔坐标系:在数学中使用的三维空间是笛卡尔坐标系笛卡尔坐标系其实就是右手坐标系,...原创 2020-04-01 13:45:23 · 1236 阅读 · 0 评论 -
OpenGL实战教程(11) -- 第十站:像素深度测试
绘制每一个像素,只有通过测试的像素才会被绘制,没有通过测试的像素则不进行绘制。如像在绘制物体时,远处被遮挡的物体不绘制,只有可见的物体被绘制一样。这就与绘制的函数调用先后顺序无关。如果没有像素的测试,在相同区域,后调用绘制函数的绘制结果,就会把先调用绘制函数的结果遮盖着。OpenGL中有剪裁测试、 深度测试、Alpha 测试和模板测试。1、剪裁测试剪裁测试用于限制绘制区域。指定一个矩形的剪裁...原创 2020-04-01 12:37:39 · 482 阅读 · 0 评论 -
OpenGL实战教程(10) -- 第九站:纹理贴图
纹理,指的是一张二维的图片,把它像贴纸一样贴在物体上面,让那个东西看起来像我们贴纸所要表现的东西那样。纹理映射功能将一些像素数据经过变换(即使是比较不规则的变换)将其附着到各种形状的多边形表面。利用纹理映射功能可以实现目前计算机动画中的大多数效果。1、启用纹理和载入纹理glEnable(GL_TEXTURE_2D); // 启用纹理功能 glDisable(GL_TEXTURE_2D); /...原创 2020-03-31 16:54:00 · 2180 阅读 · 0 评论 -
OpenGL实战教程(9) -- 第八站:颜色混合
混合用来实现半透明。但其实它也是十分灵活的,通过不同的设置得到不同的混合结果,产生一些有趣或者奇怪的图象。混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。注意:只有在RGBA模式下,才可以使用混合功能,颜色索引模式下是无法使用混合功能的。1、混合功能开关glEnable(GL_BLEND); //打开混合功能...原创 2020-03-31 15:16:57 · 328 阅读 · 0 评论 -
OpenGL实战教程(8) -- 第七站:显示列表
1、为什么要用显示列表对于复杂的图形,有成千上万个顶点,每次刷新屏幕都于重新计算顶点,让CPU执行重复的工作,浪费了CPU资源和运行速度的下降。如果把计算好的结果存放到显示列表中,需要刷新屏幕时,只需要把数据刷新到显卡里就可以了,节省CPU计算资源。2、分配显示列表编号GLuint glGenLists (GLsizei range);GLsizei range:指定要分配几个显示列表。...原创 2020-03-31 14:30:33 · 303 阅读 · 0 评论 -
OpenGL实战教程(7) -- 第六站:光照
一、 光照模型在大自然中,某些物体会发光,例如太阳、电灯等,而其它物体不会发光,反射来自其它物体的光。这些光通过各种方式传播,最后进入眼睛——于是一幅画面就眼前形成了。OpenGL在处理光照时把光照系统分为三部分,分别是光源、材质和光照环境。光源就是发光源,如太阳或者电灯等。材质是指接受光照的物体表面,物体如何反射光线由物体表面决定,材质特点就决定了物体反射光线的特性。光照环境是指环境亮...原创 2020-03-31 13:38:03 · 606 阅读 · 0 评论 -
OpenGL实战教程(6) -- 第五站:模型变换和视图变换
***有关矩阵运行和透视原理,参考相关的数学知识。1、glMatrixMode函数:void glMatrixMode (GLenum mode)mode取值:GL_PROJECTION 投影,GL_MODELVIEW 模型视图,GL_TEXTURE 纹理(1)使用GL_MODELVIEW 参数:表示切换到模型操作方式。调用函数glLoadIdentity()加载单位矩阵,然后...原创 2020-03-31 11:52:50 · 428 阅读 · 0 评论 -
OpenGL实战教程(5) -- 第四站:使用颜色
1、 RGBA颜色RGBA模式中,每一个像素会保存以下数据:红色分量、绿色分量、蓝色分量和alpha分量,其中红、绿、蓝三种颜色相组合,就得到看到的颜色,而alpha不直接影响颜色,它表示与底色的组合关系(即透明程度)。glColor*系列函数可以用于设置颜色,其中三个参数的版本可以指定R、G、B的值,而A值采用默认;四个参数的版本可以分别指定R、G、B、A的值。例如:void glCo...原创 2020-03-30 15:42:37 · 1494 阅读 · 0 评论 -
OpenGL实战教程(4) -- 第三站:深入理解点、线、多边形的绘制(VS2015)
1、点点的大小默认为1个像素,但也可以用glPointSize修改大小。其函数原型如下:void glPointSize(GLfloat size); size必须大于0.0f,默认值为1.0f,单位为“像素”。glPointSize(5.0f);glBegin(GL_POINTS);glVertex2f(0.0f, 0.0f);glVertex2f(0.5f, 0.5f);glE...原创 2020-03-30 14:58:29 · 697 阅读 · 0 评论 -
OpenGL实战教程(3) -- 第二站:点、线、多边形的绘制(VS2015)
1、顶点函数OpenGL中顶点是图形绘制的基础。先了解一下顶点相关的函数:顶点函数:glVertexN?() 和 lVertexN?v()X:表示函数有几个参数:?:表示函数参数的类型:v: 表示参数是指针形式。如:glVertex2i(1, 3): 表示两个整数型参数,1=x坐标,3=y坐标,z坐标为0glVertex2f(1.0f, 3.0f):表示两个浮点型参数,z坐标=0...原创 2020-03-30 13:46:40 · 1224 阅读 · 0 评论 -
OpenGL实战教程(2) -- 第一站:画一个矩形(VS2015)
#include "stdafx.h"#include "glut.h"void Draw1Rect(void){ glClear(GL_COLOR_BUFFER_BIT); // 清除屏幕的内容 glColor3f(0.5, 0.5, 0); // 设置颜色,参数为红绿蓝分量 glRectf(-0.5f, -0.5f, 0.5f, 0.5f); // 在屏幕正中间画一个正方形...原创 2020-03-30 12:45:36 · 517 阅读 · 0 评论 -
OpenGL实战教程(1) -- 开发环境快速搭建(VS2015)
1、新建一个控制台程序(console)工程:系统自动生成一个简单的程序,编译成功。2、以glut库开发OPENGL在https://www.opengl.org/resources/libraries/glut/glut_downloads.php#3.6网址,下载glut库开发时需要以下文件:glut32.libglut.hglut.dll3、文件拷贝在工程目录下创建头文件目...原创 2020-03-30 11:59:21 · 414 阅读 · 0 评论