二维几何变换相比三维略简单一点但原理基本一致,下列代码实现了平移、缩放、旋转变换,并有一个复合变换矩阵保存所有变换计算后的结果,方便用其结果在OpenGL进行渲染 ...
分类:
其他好文 时间:
2019-05-01 22:28:38
阅读次数:
209
1、 2、 In Tutorial 15 we learnt how to create lightmaps, which encompasses static lighting. While it produces very nice shadows, it doesn’t deal with a ...
分类:
移动开发 时间:
2019-04-29 22:39:21
阅读次数:
180
数字微分分析仪(digital differential analyzer)方法是一种线段扫描转换算法。 DDA算法比直接使用直线方程计算的速度更快,它利用光栅特性消除了直线方程种的乘法。 本代码参考自《计算机图形学》第四版,该函数将在verts末尾按次序添加需要的点坐标 ...
分类:
编程语言 时间:
2019-04-28 12:36:20
阅读次数:
197
之前已经接触过Vertex Shader和Fragment Shader,这次学习如何编写Shader并封装成类。 Shader源码主要有四部分: 1. 版本声明 ; 2. 使用in和out关键字定义输入输出变量,上一个Shader的输出变量必须和下一个Shader的输入变量保持一致; 3. 有时使 ...
分类:
其他好文 时间:
2019-04-26 20:54:30
阅读次数:
144
在 "创建窗口" 的基础上,添加代码实现三角形的绘制。 声明和定义变量 在屏幕上绘制一个三角形需要的变量有: 1. 三角形的三个顶点坐标; 2. Vertex Buffer Object 将顶点数据存储在GPU的内存中; 3. Vertex Array Object存储对顶点属性的配置和与顶点属性相 ...
分类:
其他好文 时间:
2019-04-19 09:14:52
阅读次数:
217
原文摘选自 现代OpenGL渲染管线介绍 此文对最新的OpenGL做一个简单的介绍,如有理解错误,敬请指正。英文原文: https://glumpy.github.io/modern-gl.html opengl已经发展了很多年,自从2003年后提出dynamic pipeline(OpenGL 2 ...
分类:
其他好文 时间:
2019-04-18 16:43:44
阅读次数:
177
Vulkan是Khronos组织制定的“下一代”开放的图形显示API。是与DirectX12能够匹敌的GPU API标准。 Vulkan是基于AMD的Mantle API演化而来,眼下Vulkan 1.0标准已经完毕并正式公布。 上一代的OpenGL|ES并不会被遗弃。还会继续发展,非常有可能Ope ...
分类:
其他好文 时间:
2019-04-11 11:54:18
阅读次数:
149
注意点: ①通过矩阵处理position 模型矩阵:物体的运动(平移、旋转、缩放); 视图矩阵:设置人的视角,也就是第一人称视角; 透视投影矩阵:处理物体的远近,远的物体小,近的物体大; ②开启隐藏面消除 因为webgl渲染的图形的时候,同一个像素点上,后一个绘制的会把前一个绘制的遮盖; 开启隐藏面 ...
分类:
Web程序 时间:
2019-04-11 01:07:34
阅读次数:
197
当我们遇到其他游戏程序员并谈论我们使用OpenGL开发Overgrowth时总是会遇到怀疑的眼神。为什么要用OpenGL? DirectX才是未来。当我们使用OpenGL去告诉显卡如何工作时,房间的温度下降了10度(啥意思?我一直以为A卡和N卡的区别,没想到作者认为是API的问题?Holy。。。)。 ...
分类:
其他好文 时间:
2019-04-09 13:54:52
阅读次数:
167
这里说的math库实现,指的是,通过一般的加减乘除(角度计算)来更新坐标值。 因为涉及到坐标的变化,所以这里都是基于对顶点着色器的修改 平移: 因为平移只涉及到每个顶点的x、y坐标的变化,所以我们引入一个vec4 变量,在每次绘制的时候为这个变量赋值: 上述代码中间一段中,我们对坐标的变化参数u_T ...
分类:
Web程序 时间:
2019-04-09 00:35:28
阅读次数:
157