![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图形学
文章平均质量分 86
zhanxi1992
这个作者很懒,什么都没留下…
展开
-
Bounding Volume Hierarchy (BVH)
层次包围体结构(Bounding Volume Hierarchy,BVH ) 是一组几何对象上的树结构。树的叶节点都是由包裹在包围体的几何对象构成。然后将这些节点分组为小集合并包含在更大的边界体积内。反过来,这些也以递归方式分组并包含在其他更大的包围体中,最终形成一个树结构,在树的顶部有一个单一的包围体。包围体层次结构用于有效地支持对几何对象集的多种操作,例如在碰撞检测和光线追踪中。原创 2022-10-22 15:43:18 · 1449 阅读 · 1 评论 -
Möller-Trumbore算法-射线三角形相交算法
Möller-Trumbore算法一、概述二、准备知识三、Möller-Trumbore 算法推导推导过程一、概述Möller-Trumbore 射线三角相交算法是一种快速计算射线与三角形在三个维度上的交点的方法,通过向量与矩阵计算可以快速得出交点与重心坐标,而无需对包含三角形的平面方程进行预计算。另外,它还应用于计算机图形学中以实现涉及三角形网格的光线跟踪计算。算法名字是以发明者 TomasMöller 和 Ben Trumbore 的名字来命名的。二、准备知识1、三阶方阵的行列式等于三个列向量的原创 2020-11-21 21:38:06 · 8018 阅读 · 2 评论 -
贝塞尔曲线
贝塞尔曲线一、简介二、数学推导线性贝塞尔曲线二阶贝塞尔曲线三阶贝塞尔曲线三、代码实现一、简介贝塞尔曲线(英语:Bézier curve)是计算机图形学中相当重要的参数曲线。更高维度的广泛化贝塞尔曲线就称作贝塞尔曲面,其中贝塞尔三角是一种特殊的实例。贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由保尔·德·卡斯特里奥于1959年运用德卡斯特里奥算法开发,以稳定数值的方法求出贝塞尔曲线。二、数学推导线性原创 2020-11-12 20:49:58 · 514 阅读 · 1 评论 -
光栅化之 Bresenham 算法
光栅化之Bresenham 算法布雷森汉姆直线算法(英语:Bresenham’s line algorithm)是用来描绘由两点所决定的直线的算法,它会算出一条线段在 n 维位图上最接近的点。这个算法只会用到较为快速的整数加法、减法和位元移位,常用于绘制电脑画面中的直线。是计算机图形学中最先发展出来的算法。由 Jack E. Bresenham 于 1962 年在 IBM 发明了此算法,因此得名。假定已知直线方程为在绘制时依次递增 x,在(x,y)处绘制了点之后,该直线在其放置位置方面的选择范围就原创 2020-09-25 01:17:58 · 1160 阅读 · 0 评论 -
基于NavMesh的A*寻路算法
基于NavMesh的A*寻路算法代码工程目录:链接:https://pan.baidu.com/s/1anKCGe5EMigeeb1wfydrYA提取码:kebz一、导入数据生成NavMesh导航轮廓1、由文本导入数据,数据要求:可走轮廓的最外围为顺时针方向,障碍物为逆时针方向,顶点不可有重复的,各障碍物不可叠加;2、使用扫描线算法划分三角形,生成多边形轮廓;3、将生...原创 2018-09-16 15:53:43 · 5107 阅读 · 15 评论 -
光栅化之线段扫描转换算法
光栅化之线段扫描转换算法线段扫描转换算法就是通常所说的 DDA 算法,它是以数字微分分析器(Digital Differential Analyzer)命名的,这种数字微分分析器是早期用于微分方程数字仿真的机电设备。因此直线满足下面的微分方程:假定线段的两个端点为(x1,y1)(x2,y2)(x_1, y_1) (x_2, y_2)(x1,y1)(x2,y2),那么有因为像素的坐标是整形,当斜率小于1时,将 xxx 代入,得到 yyy 四舍五入后,可以得到一个比较理想的结果(如 图2 所示原创 2020-08-26 00:37:56 · 713 阅读 · 0 评论 -
Assimp 编译(Visual Studio 2019)
Assimp 编译一、前言二、源码下载三、编译环境四、编译五、配置环境六、测试 DEMO一、前言Assimp 是一个非常流行的模型导入库,它是 Open Asset Import Library(开放的资源导入库)的缩写。Assimp 能够导入多种不同的模型文件格式(并也能够导出部分的格式),它能将不同格式的模型数据加载至 Assimp 的通用数据结构中。当 Assimp 加载完模型之后,我们就能够从 Assimp 的数据结构中提取我们所需的所有数据了。由于 Assimp 的数据结构保持不变,不论导入的原创 2020-08-05 00:02:35 · 7334 阅读 · 5 评论 -
图形学光照
图形学光照一、概述二、环境光照三、漫反射光照四、镜面光照五、光照公式六、Demo一、概述现实世界的光照是极其复杂的,而且会受到诸多因素的影响,这是我们有限的计算能力所无法模拟的。因此OpenGL的光照使用的是简化的模型,对现实的情况进行近似,“看起来像”就好了。这些光照模型都是基于我们对光的物理特性的理解。其中一个模型被称为冯氏光照模型 (Phong reflection model or Phong reflection model),冯氏光照模型的主要结构由3个分量组成:环境(Ambient)、漫反原创 2020-07-29 12:57:34 · 1044 阅读 · 0 评论 -
四元数与欧拉角
四元数与欧拉角一、前言二、欧拉角三、四元数1、四元数各值的意义2、四元数转换为旋转矩阵3、参考源码一、前言欧拉角与四元数都被用来处理图像学中的旋转。两者各有优劣,下面我们对它们做详细的比较。二、欧拉角欧拉角是表示朝向的最简单最直观方法,只需存储绕 X、Y、Z 轴旋转的角度,非常容易理解。你可以用vec3来存储一个欧拉角:vec3 EulerAngles( RotationAroundXInRadians, RotationAroundYInRadians, RotationAroundZInRad原创 2020-07-15 01:07:20 · 8570 阅读 · 0 评论 -
OpenGL入门三——变换进阶
OpenGL入门三——变换进阶一、预备知识二、实现1、模型构建2、矩阵栈3、太阳系的绘制三、控制四、预览一、预备知识图形学变换——平移、旋转和缩放 https://blog.csdn.net/zhanxi1992/article/details/106532991OpenGL入门二——变换 https://blog.csdn.net/zhanxi1992/article/details/106653096二、实现给地球 23.44度的倾斜,地轴偏角,这种倾斜使地球产生了四季。注意地球的轨道不要原创 2020-07-08 08:46:09 · 298 阅读 · 0 评论 -
OpenGL入门二——变换
OpenGL入门二——变换一、预备知识二、实现三、控制四、预览一、预备知识1、齐次坐标:https://blog.csdn.net/zhanxi1992/article/details/1062229982、图形学变换——平移、旋转和缩放 https://blog.csdn.net/zhanxi1992/article/details/106532991二、实现1、八面体顶点数据const int NumVertices = 24; // 8个面,每个面1个三角形,每个三角形3个顶点,共24个顶原创 2020-06-09 23:17:16 · 297 阅读 · 0 评论 -
OpenGL入门一——分形Sierpinski
OpenGL入门一——分形Sierpinski简介一、谢尔宾斯基三角形(Sierpinski triangle)二、进阶 3D 版谢尔宾斯基三角形简介分型是图形学入门的经典,下面将以谢尔宾斯三角作为讲解一、谢尔宾斯基三角形(Sierpinski triangle)创建一个等边三角形;沿三边中点的连线,将它分成四个小三角形;去掉中间的那一个小三角形;对其余三个小三角形重复步骤1。...原创 2020-04-26 16:31:14 · 1546 阅读 · 0 评论 -
图形学投影
图形学投影一、概述二、图形学中常见投影三、投影规范化(projection normalization)四、正交投影五、透视投影六、OpenGL中的实现一、概述投影可以理解为空间到平面的映射。同现实中阳光将事物投影到地面上一样,投影变换将整个向量空间映射到它的其中一个子空间,并且在这个子空间中是恒等变换。二、图形学中常见投影透视投影与正交投影示意图三、投影规范化(projection normalization)使用平移和缩放变换将照相机坐标系下的顶点变换的默认的视见体(部分教程称为是视景体)的原创 2020-07-01 20:42:49 · 3176 阅读 · 0 评论 -
图形学——观察
图形学——观察一、概述二、定义一个相机三、观察矩阵(View Matrix)四、LookAt 函数一、概述观察空间经常被称为 OpenGL 的摄像机(Camera),所以有时也称为摄像机空间(Camera Space)或眼空间(Eye Space)。观察空间是将世界空间坐标转化为用户视野前方的坐标而产生的结果。因此观察空间就是从摄像机的视角所观察到的空间。而这通常是由一系列的位移和旋转的组合来完成,平移/旋转场景从而使得特定的对象被变换到摄像机的前方。这些组合在一起的变换通常存储在一个观察矩阵(View原创 2020-06-24 00:12:02 · 1153 阅读 · 0 评论 -
图形学变换——平移、旋转和缩放
图形学变换一、概述二、平移新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入一、概述在齐次坐标中,所有的反射变换都可以使用如下形式的 4 x 4 矩阵来表示二、平移你好! 这是你第一次使用 Markdown编辑器 所展原创 2020-06-04 00:38:21 · 6972 阅读 · 0 评论 -
齐次坐标
齐次坐标 在数学里,齐次坐标(homogeneous coordinates),或投影坐标(projective coordinates)是指一个用于投影几何里的坐标系统。该词由奥古斯特·费迪南德·莫比乌斯于1827年在其著作《Der barycentrische Calcul》一书内引入。 齐次坐标可让包括无穷远点的点坐标以有限坐标表示。使用齐次坐标的公式通常会比用笛卡儿坐标表示更为简单,且更为对称。 齐次坐标广泛的应用于计算机图形及3D计算机视觉。使用齐次坐标可让计算机进行仿射变换,通常其投原创 2020-05-19 21:49:05 · 9722 阅读 · 0 评论 -
LaTeX 安装及环境配置
LaTex 安装及环境配置一、背景二、准备1、核心库 TeX Live2、编辑器 TeXstudio三、安装1、TeX Live 20202、TeXstudio四、测试一、背景LaTeX(/ˈlɑːtɛx/,常被读作/ˈlɑːtɛk/或/ˈleɪtɛk/)是一种基于TeX的排版系统,由美国计算机科学家莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式系统的处理,对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学、物理文档。这个系统同样适用于生成从简单的信件到原创 2020-05-09 02:34:14 · 6400 阅读 · 0 评论 -
Visual Studio 2017 配置 OpenGL
OpenGL库1、FreeGLUT 3.0.0 :安装下载参照博文Visual Studio 2017 编译 Freeglut2、GLEW 2.1.0 :下面方法二选一,建议直接使用官方编译文件(1)代码编译下载:https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0.zip/download解压后直接使...原创 2019-01-19 12:12:30 · 1080 阅读 · 0 评论 -
Visual Studio 2017 编译 Freeglut
FreeGLUT是 OpenGL 官方推荐使用的 GL库,用于替换许久不更新的GLUT库。OpenGL入门学习常用库之一,下面详细介绍如何在 Windows 平台编译 FreeGLUT库。当然你也可以直接去官网下载编译好的库,各平台下载地址:https://www.transmissionzero.co.uk/software/freeglut-devel/freeglut 3...原创 2019-01-17 18:06:29 · 1257 阅读 · 2 评论