Opengl_18_assimp_1

1,Assimp可以导入几十种不同格式的模型文件(同样也可以导出部分模型格式)。只要Assimp加载完了模型文件,我们就可以从Assimp上获取所有我们需要的模型数据。Assimp把不同的模型文件都转换为一个统一的数据结构,所有无论我们导入何种格式的模型文,件,都可以用同一个方式去访问我们需要的模型
5次阅读

Opengl_18_聚光灯光源

1,聚光灯光源也会随着距离衰减,但它不是像点光源照向四面八方的而是像平行光那样有一个聚光方向(相当于取点光源的一个锥形的一小部分),聚光灯光源呈锥形,因此有一个新的属性,就是离光源越远,照亮的圆形区域会越大(光源位于锥形体的尖端)。例如:手电筒。图中垂直指向地面的黑色尖头指的是光源方向,这里想实现让
5次阅读

OpenGL_17_点光源

1,(环境光,漫射光和镜面反射光),这三种模型都是基于平行光的。平行光只是通过一个向量来表示,没有光源起点,因此它不会随着距离的增大而衰减点光源:它有光源起点而且有衰减效果,距离光源越远光线越弱。平行光的方向是恒定的,但点光源光线的方向是变化的,四处扩散。点光源向各个方向均匀照射,因此点光源的方向要
7次阅读

OpenGL_16_镜面反射

1,我们在计算环境光的时候,光的强度是唯一的影响因素。然后处理漫射光的时候公式中加入了光的方向参数。镜面反射包含了上面所有的综合因素并且添加了一个新的元素:观察者的位置。镜面反射时光以一定角度照射到物体表面,同时会在法线的另一侧对称的角度上反射出去,如果观察者刚好在反射光线的路径上那么就会看到格外强
14次阅读

OpenGL_15_漫反射

1,漫射光和环境光的主要不同是漫射光的特性依赖光线的方向,而环境光完全忽略光的方向。当只有环境光时整个场景是被均匀照亮的,而漫射光使物体朝向它的那一面比其他背向光的面要更亮。漫射光还增加了一个光强度的变化现象,光的强度大小还取决于光线和物体表面的角度。漫射光模型是建立在兰伯特余弦定律上的,光线的强度
9次阅读

OpenGL入门学习(转载)

说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。OpenGL作为
19次阅读

Opengl_14_环境光

1,光源颜色 * 物体表面颜色 => 得到反射回来的颜色再乘以环境光的强度因素从而得到最终的颜色值。2,获取键盘事件修改环境强度因素值。每次渲染的时候传入光源颜色值和环境强度因素值。glUniform3f(dirlight_colorlocation, directionallight.Co
11次阅读

Opengl_13_纹理贴图

1,为了实现纹理贴图我们需要做三件事:将一张贴图加载到OpenGL中,提供纹理坐标和顶点(将纹理对应匹配到顶点上),并使用纹理坐标从纹理中进行取样操作取得像素颜色。由于三角形会被缩放、旋转、平移变换导致最后会以不同的结果投影显示到屏幕上,而且由于camera的不同操作看上去也会很不一样。GPU要做的
13次阅读

Opengl_12_相机控制

1,使用键盘控制位置的移动没有使用glutSpecialFunc,glutKeyboardFunc因为我这个win32程序。2,相机类里面定义了相机的三个方向成员:位置(position),target向量和up向量前后移动是最简单的,因为这俩种移动方向和tartget向量在一条线上,我们只需要从起
14次阅读

Opengl_11_相机空间

1,相机开始往下朝向Z轴,可以看到相机的坐标系可能和世界坐标系一致(上面的图)。但是顺时针旋转45度之后,也可能不一样了(下面的图)。所以事实上同时会有两个坐标系。有一个定义物体位置的世界坐标系,还有一个和相机的三个轴线(相机的目标朝向,上,右)一致的相机坐标系。这两个坐标系叫做'世界空间'和'相机
14次阅读