- 博客(9)
- 资源 (2)
- 收藏
- 关注
原创 OpenGL基础14:摄像机
很可惜,openGL没有摄像机的概念一、摄像机我们当然需要想办法模拟出一个摄像机,也就是玩家的视角,在前面这一章:第一个正方体,我们仅将“摄像机”往z轴正方向移动了3个单位,并且正对着(0, 0, 0),但是大部分的情况下,类似于我们处于一个3D场景中,摄像机的视角都是从上斜向下的,这个时候若想要计算摄像机的位置和方向信息,就是需要一定的运算了既然摄像机如此重要,我们当然需要知道它的很多信息,包括:摄像机位置 观察方向(摄像机z轴) 垂直于观察方向,指向摄像机右侧的向量(摄像机...
2020-05-26 15:25:08 1511 1
原创 OpenGL基础13:第一个正方体
我们已经进入了3D世界了,想办法生成一个最简单的3D图形:正方体吧一、生成一块箱子接上一章的代码,其实如果前面12章都完全理解了,应该可以直接写出生成正方体的代码(不就是多5个面嘛)为了简单化,我们保留纹理,把颜色这一属性也去掉,除此之外顶点缓冲也不用了,直接拉36个顶点出来代码如下(当然也顺便换了个纹理):#include<iostream>#include<opengl/glew.h>#define GLEW_STATIC#include<...
2020-05-21 19:47:46 1606
原创 OpenGL基础12:进入3D世界
前置:OpenGL基础11:空间一、坐标系我们都学过坐标系,根据z轴的方向,一般有两种不同的坐标系表示方法:其中拇指是x轴正方向,食指是y轴正方向,中指是z轴正方形OpenGL约定是右手坐标系,而在标准化设备坐标系(NDCSpace)中OpenGL使用的是左手坐标系还记得上一章的这个公式嘛:再看看下面的这个顶点着色器,是不是有种亲切感#version 330 corelayout (location = 0) in vec3 position;layout ...
2020-05-21 16:49:03 2064
原创 OpenGL基础11:空间
一、局部空间即对象被创建时,所在的空间例如我们用模型软建(ZBrush、Blender、3DMax等)创建了一条龙的模型,那么它在创建的时候,就处于它的局部空间内,一般来讲,模型的中心即局部空间的中心(0, 0, 0),如果我们这里说龙的眼睛的坐标为(2.2, 1.5, -2),那么也就是这个龙的眼睛相对于自身的中心,偏移量为(2.2, 1.5, -2)就如下图,一个球体和一个正方体,它们都处于各自的局部空间,并且中心都在(0, 0, 0)的位置二、世界空间如果我们...
2020-05-21 11:44:27 1153
原创 OpenGL基础10:变换
必须掌握的前置技能:https://blog.csdn.net/Jaihk662/article/details/103811465(向量与矩阵)其实也不难,也就是一些线性代数的基本知识,暂时只需要理解到这种程度就好,后面可以再说一、GLM库和SOIL一样,GLM也是一个openGL的库,里面存着各种数学公式和算法OpenGL环境配置(超全整合版)GLM库也可以从这篇文章中的链接中下载到,有个叫做glm-0.9.9.8的文件夹就是了,打开后将其中整个glm文件夹丢到VS的include...
2020-05-15 16:05:00 1289
原创 OpenGL基础9:纹理
其实上一章就是在讲纹理了,不过上一章的目的仅是在想办法生成一张有纹理的矩形一、纹理坐标与环绕方式为了能够把纹理映射(Map)到三角形上,我们需要指定三角形的每个顶点各自对应纹理的哪个部分,每个顶点都会关联着一个纹理坐标(Texture Coordinate),用来标明该从纹理图像的哪个部分采样,之后在图形的其它片段上进行片段插值(Fragment Interpolation)我们很长的一段时间只需要考虑2D的图象,2D纹理坐标范围为(0~1),起始于左下角(0, 0),终止于右上角(1, ...
2020-05-13 19:55:47 990
原创 OpenGL基础8:SOIL库
一、SOILSOIL是简易OpenGL图像库(Simple OpenGL Image Library)的缩写,它支持大多数流行的图像格式,关于SOIL的介绍应该很多,这里就不说了,我们先装上OpenGL环境配置(超全整合版)SOIL库可以从这篇文章中的链接中下载到,有个叫做imple OpenGL Image Library的文件夹就是了,打开后将其src文件夹中的SOIL.h放到老位置(C:\Program Files (x86)\Microsoft Visual Studio\2019\C...
2020-05-11 20:23:53 13272 3
原创 OpenGL基础7:彩色三角形
一、彩色三角形前面顶点属性只用了位置属性,现在可以尝试给顶点加上颜色属性GLfloat trangleY[] ={ -0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f};这些属性更新到...
2020-05-07 20:01:27 1335 2
原创 OpenGL基础6:着色器
如果想要完整的代码,可以用上一章最下面那份代码,然后进行局部替换就OK了一、着色器结构一个简单的着色器如下:#version 3.4 //版本号in type name1 //输入数据out type name2 //输出数据uniform type name3 //全局属性int main(){ // 处理输入并进行一些图形操作...
2020-05-07 12:10:43 780 4
OpenGL基础学习完整代码(完整场景带优化).zip
2020-09-28
OpenGL基础学习完整代码.zip
2020-08-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人