- 博客(15)
- 资源 (8)
- 收藏
- 关注
原创 OpenGL学习之路13----相机控制(鼠标操作)
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程到目前为止,我们已经可以将一个物体以任意大小、任意角度和任意位置摆放在世界空间,相关博文链接: OpenGL学习之路6—-平移,旋转和缩放变换OpenGL学习之路9—-混合变换并且可以将我们的相机任意摆放在世界空间,相关博文链接: OpenGL学习之路11—-相机空间上一节通过键盘上的...
2018-04-28 01:14:18 4252 1
原创 OpenGL学习之路12----相机控制(键盘操作)
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程上一篇博文讲述了我们怎么把相机摆在三维空间的任意一个位置,想要了解的同学请移步上一篇博客: OpenGL学习之路11—-相机空间这次我们的目标是通过键盘上的方向键来移动相机。但是仅仅是改变相机的位置,而并没有改变相机的目标朝向(target向量)和竖直头顶方向(up向量)。一、键盘操作...
2018-04-27 17:55:57 3578
原创 OpenGL学习之路11----相机空间
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程之前已经学习了怎么将物体在3维空间里自由地缩放、旋转和平移,博客链接如下: OpenGL学习之路6—-平移,旋转和缩放变换OpenGL学习之路9—-混合变换也学习怎么把三维世界表现在我们屏幕这个2维平面上,博客链接如下:OpenGL学习之路10—-透视投影但是我们发现了一个问题,我们...
2018-04-27 01:18:17 3108 1
原创 OpenGL学习之路10----透视投影
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程一、透视投影1.1 透视投影定义中心投影法: - 光线照射物体时,可在预设的地面或墙面上产生影子,根据这一自然现象,经科学的抽象总结,产生了投影法。 - 投射线通过物体,向选定的面投射,并在该面上得到图形的方法称为投影法 - 投射线汇交于投射中心的投影法叫做中心投影法中心投影法示...
2018-04-26 00:18:56 4343 1
原创 OpenGL学习之路9----混合变换
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程一、混合变换之前的教程中,学习了如何让物体平移、旋转和缩放,相关教程链接:OpenGL学习之路6—-平移,旋转和缩放变换1.1 一次性计算变换矩阵我们每进行一次变换都要左乘一次我们的变换矩阵,如果每进行一次变换(平移、旋转或者缩放)都在着色器里左乘一次变换矩阵,则会显得非常低效和臃...
2018-04-25 21:58:10 1448
原创 OpenGL学习之路8----索引绘制
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程一、索引绘制我们之前使用glDrawArrays()函数绘制了一个三角形,属于顺序绘制,即从指定的偏移量依次扫描顶点缓冲区所有图元的每一个顶点。正如下图,我们绘制一个三角形只需要指定三个顶点即可,但是如果绘制两个三角形组成的一个平行四边形就需要六个顶点,而且会有两个顶点相重叠: 可以看到...
2018-04-25 19:10:01 1534
原创 OpenGL学习之路7----插值
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程一、插值插值是3D渲染管线中非常重要的部分,其实就是光栅化程序执行的从顶点着色器传过来的变量。光栅化程序对三角形三个顶点之间执行插值处理:对三个顶点之间的每个像素执行片元着色器(即fragment shader),片元着色器通过由顶点着色器传来的插值变量确定每个像素的颜色,光栅化程序将颜色存放...
2018-04-25 17:32:27 2348
原创 OpenGL学习之路6----平移,旋转和缩放变换
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程一、准备工作1.1 表示一个矩阵我们需要在程序中使用矩阵,我们需要用计算机程序语言来表示出来一个矩阵。我们用数组来表示一个矩阵,并且规定列填充优先,即一个4*4矩阵表示为:// 4 * 4 矩阵:// 0 4 8 12...
2018-04-25 00:17:22 6555
原创 OpenGL学习之路5----使用一致变量(Uniform Variables)
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程一、uniform 存储限制符在着色器运行之前,uniform修饰符可以指定一个在应用程序中设置好的变量,它不会在图元处理过程中发生变化uniform变量在所有可用的着色阶段之间都是共享的,它必须定义为全局变量任何类型的变量(包括结构体和数组)都可以设置为uniform变量着色器无法写入到...
2018-04-25 00:13:32 2356
原创 OpenGL学习之路4----使用着色器(shader)
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程一、OpenGL 渲染管线这节相比上一节有了本质上的区别,OpenGL实际上是通过渲染管线(rendering pipeline),经过一系列的数据处理,将应用程序的数据转换到最终渲染的图像。在《OpenGL Programming Guide 9th》讲解了渲染管线,下图即是OpenGL 4...
2018-04-23 00:21:34 5224
原创 OpenGL学习之路3----画一个三角形
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程归一化坐标我们在屏幕上绘制图形的时候,是在一个归一化的空间里,即为下图可以看到绘制窗口左下角坐标为(-1.0,-1.0)到右上角坐标为(1.0,1.0)代码解释opengl_math.h:#ifndef __OPENGL_MATH_H#define __OPENGL_...
2018-04-23 00:20:06 1808
原创 OpenGL学习之路2----画一个点
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程一、简述这一节比上一节《打开一个窗口》,多了需要使用glew库和3d数学库glew是OpenGL的扩展库,用于帮助C/C++开发者初始化扩展(OpenGL扩展功能)并书写可移植的应用程序。这个可以通过上网搜教程自行安装引用。3d函数库可以用网上的,也可以用源教程里的。这里我是根据需要开始自...
2018-04-23 00:18:44 2117 2
原创 OpenGL学习之路1----打开一个窗口
代码放在github上本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程OpenGL(全写Open Graphics Library)是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库。先贴出源码:main.cpp:#include <gl/freeglut.h>...
2018-04-23 00:17:45 2299
Android开发——文件存储
2018-06-20
Android开发——布局管理
2018-06-05
Android开发——界面设计
2018-06-05
第五届蓝桥杯嵌入式代码
2018-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人