自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 《3D游戏与计算机图形学中的数学方法》学习笔记 第二章

第二章 向量该章主要讲述向量的基本概念和性质,并且给出了性质的证明。证明笔记这里就不给出了,毕竟向量的基本性质都是印在脑子里的东西了,要看证明的话可以翻小、初、高课本…2.1向量性质定理2.1:P + Q = Q + P(P + Q) + R = P + (Q + R)(ab)P = a(bP)a(P + Q) = aP + aQ(a + b)P = aP + bP定理2.2:||P|| >= 0 (||P|| 为 向量的模 即 向量长度)当且仅当 P = (0, 0,

2021-01-07 10:55:06 240

原创 《3D游戏与计算机图形学中的数学方法》学习笔记 第一章

第一章 渲染管线前几章都是比较基础的内容,未涉及太多数学部分(大多为一些向量的基础性质证明),前几章内容看之前的《计算机图形学原理及实践》的笔记即可。这里只做少量的内容记录。1.1 图形处理器CPU 与 GPU 的交互:1.2 顶点变换1.3 光栅化与段操作注意,本书将 片段 简称为 段从逻辑上讲,我们会先对 片段 进行着色,然后再进行 一系列判断,这一系列判断称为段操作,如 深度测试、模板测试。但显然,如果我们把这些片段放在 着色之前,那么会大大减少运算量,所以实际上大多 GPU 会

2021-01-07 10:52:36 291

原创 《计算机图形学原理及实践》学习笔记之第十三章

第十三章 相机设定和变换一个2D示例我们要将一个正方形 −1≤u,v≤1-1 \leq u,v \leq 1−1≤u,v≤1,映射到一个宽 1024像素,高 768像素 的显示器上。显示器左上角为 (0,0)(0, 0)(0,0),左下角是(0,768)(0, 768)(0,768),右下角是(1024,768)(1024, 768)(1024,768)我们要把 (−1,−1)(-1, -1)(−1,−1) 变换到 (0,768)(0, 768)(0,768), (−1,1)(-1, 1)(−1,1

2020-12-18 10:22:22 608

原创 《计算机图形学原理及实践》学习笔记之第十一章

第十一章 3D变换3D空间变换与2D空间有很多类似情况:3D空间比2D空间要多一维,所以我们视3D空间是由 (x,y,z,w)(x, y, z, w)(x,y,z,w) 定义的 4D空间 w=1 的子集。平移:[100a010b000c0001]\begin{bmatrix}1 & 0 & 0 & a \\0 & 1 & 0 & b \\0 & 0 & 0 & c \\0 & 0 & 0 & 1

2020-12-11 08:50:38 291

原创 《计算机图形学原理及实践》学习笔记之第十章

第十章 2D 变换线性变换:对于 2D 空间:T:R2−>R2T:R^2 -> R^2T:R2−>R2R2R^2R2 表示二维空间,及一个二维空间向量 或 点经过线性变换仍是二维的对于 2D 空间 R2R^2R2 中任意两个向量 v、w 和 任意实数 α,线性变换 T 可以表示为 T(v+αw)=T(v)+αT(w)T(v + αw) = T(v) + αT(w)T(v+αw)=T(v)+αT(w)在线性变换下,直线保持不变,原点保持不动对于任意线性变换都有 T(0)=0T(

2020-12-05 11:08:38 440

原创 《计算机图形学原理及实践》学习笔记之第七章

第七章 2D 和 3D 空间中的基础数学与几何引言实现原则如果你对一个数学问题的理解足够透彻,则一定写一个程序实现它记号与传统的数学记号相同集合集合 B 和 集合 C 的笛卡尔乘积 定义为:B×C={(b,c):b∈B,c∈C}B × C = \{(b,c):b ∈ B, c ∈ C\}B×C={(b,c):b∈B,c∈C}读作 B 叉乘 C,但称为 笛卡尔乘积,保留向量叉乘的术语乘积 R×R 记作 R2R^2R2,更高阶的是 R3R^3R3 R4R^4R4 等等…

2020-11-24 22:12:57 432

原创 《计算机图形学原理及实践》学习笔记之第六章

这篇笔记发布距离上篇笔记应该是隔了很久… 主要是临近毕业,在找工作,加之 《计算机图形学原理及实践》这本书在 第七章及之后就开始加速起飞了… 本人水平有限理解起来比较困难,因为感觉理解的不是很通透就也没有立即做笔记,再加之 我习惯一章的内容都写入在一篇笔记中,但是 印象笔记一篇的内容越多,往里面也内容就越卡顿体验非常差,还有印象笔记的markdown 怎么搬到其它平台的问题…总之,最近工作有了着落,学校也不放我去实习工作,那么就有了时间来回顾内容,把之前不理解的再理解理解,把一章的内容分成几篇写,最后再粘

2020-11-24 21:48:29 750

原创 《计算机图形学原理及实践》学习笔记之第五章

第五章 人类视觉感知引言可视化程序调试原则:利用可视化显示帮助你调试和理解图形程序人除了有 视觉系统,还有 听觉、触觉。与人的其它感知相比 视觉系统接收的是光,光具有特殊性能:光不会朝各个方向发散,沿某一方向发出的光束只能沿该方向传播。光的传播不需要介质,光在空气中传播时,几乎不受空气的影响。(折射率是介质密度的函数,变化的折射率可能导致光线扭曲,海市蜃楼、炎热天气时 沙漠上影响的"波动", 还要汽车发动机上面的"波动")任何视觉处理模型不仅取决于当前刺激,也必须考虑近期刺激。

2020-10-03 17:18:41 246

原创 第四章 2D 图形测试平台

第四章 2D 图形测试平台使用 2D测试平台在书的官网 cgpp.net 提供了 2D 图形测试平台,我们只需要下载其源码,然后根据需要,将里面的东西放入到自己的 WPF 项目中即可。割角打开在官网下载的文件,找到 Subdiv 文件夹,打开里面的 vs项目,并生成 exe 文件。可以先运行一下,体验一下:打开项目,查看 Windowl.xaml 代码,找到 Subdivide 和 Clear 按钮的代码:这两个按钮分别绑定了 b1Click、b2Click 这两个事件,当点击按钮时,事

2020-10-03 17:07:34 338

原创 《计算机图形学原理及实践》学习笔记之第三章

第三章 一个古老的绘制器1525年,阿尔布雷·丢勒 制作了一幅木刻画,展示了一种可以绘制任一形体透视图的方法。本章我们将开发一个软件来模拟丢勒展示的方法。丢勒视角绘制算法的伪代码Input: a scene containing some objects, location of eye-pointOutput: a drawing of the objectsinitialize drawing to be blankforeach object o foreach visib

2020-09-24 09:38:01 347

原创 2D 图形学简介——基于WPF

第二章 2D 图形学简介——基于WPF2.1 引言选择具体的图形学平台:微软的 Window Presentation Foundation(WPF)WPF 是同时支持 2D 和 3D应用的现代图形学平台2.2 2D图形流水线概述2D图形平台是应用程序和显示硬件的中介,提供的功能与输入和输出相关联。应用通常是将某些数据(称为 应用模型 (Application Modle), AM) 转化为图像应用程序开设客户区域有两个目的: 一部分用于应用程序的用户界面(UI)控制 其余部分为 视图

2020-09-18 23:11:54 559

原创 计算机图形学原理及实践学习笔记第一章

第一章 绪论1.1 计算机图形学简介在计算机图形学中,“模型”这个词指的可以是 几何模型 也可以是 数学模型。几何模型:我们想要呈现在图像中的物体的模型,例如 构建的汽车模型、房子模型、角色模型等。可以在模型中引入颜色、纹理或材料的反射率等多种属性(构成材质),来增强几何模型的表达能力。建模:从一无所有开始、创建出一个模型的过程。得到的就是对物体的“几何加其它信息”的描述为模型数学模型:物理 或 计算过程的模型。例如,光从光泽表面反射的各种模型。还有物体如何运动的模型,以及关于数码相机中

2020-09-16 20:55:38 1201

原创 排序算法(插入、冒泡、归并、快排、堆排)

排序算法(插入、冒泡、归并、快排、堆排)快速排序:思路:使用分治递归的思想,我们首先在序列中选取一个元素作为基准数(有直接选取序列序列首元素、选取序列尾元素、随机选取元素、选取序列中间元素这几种方式。 但为了使算法表达比较统一,一般选取了基准数之后,都会把这个基准数与序列末尾元素进行交换,即把基准数放到序列末尾)。然后在序列左、右两端各设立一个指针,两个指针交替行进,把比基准数大的元素交换到序列后面,把比基准数小的元素交换到序列前面,直到两个指针相遇。这时判断,如果两指针相遇元素小于或等于基准数

2020-09-13 21:46:37 207

原创 Unity 中的 10个代码优化小技巧

Unity 中的 10个代码优化小技巧又到了开学导员开会的时候。满屋子的学生听着比讲课还无聊空洞的东西,于是整齐地打开了手机。于是就在知乎看到了 默然的这篇文章:Unite Talk 让INSIDE实现稳定60帧的工具,技巧和技术该文翻译了 Unite 2016 《INSIDE》开发人员的演讲。其中介绍了 10 个 Unity 代码优化技巧。我觉得非常有意思和有启发性,但里面有些地方我持存疑态度,所以写篇文章进行记录,和验证。1、通过合理的计算顺序来减少矢量操作次数来看下面这几行代码:Vecto

2020-09-04 19:00:16 1206 1

原创 游戏中敏感词的过滤之DFA算法

游戏中敏感词的过滤之DFA算法对于一个游戏,如果有聊天功能,那么我们就会希望我们的聊天系统能够对玩家的输入进行判断,如果玩家的输入中含有一些敏感词汇,那么我们就禁止玩家发送聊天,或者把敏感词转换为 * 来替换。为什么要使用 DFA 算法设我们已经有了一个敏感词词库(从相关部门获取到的,或者网上找来的),那么我们最容易想到的过滤敏感词的方法就是:遍历整个敏感词库,拿到敏感词,再判断玩家输入的字符串中是否有该敏感词,如果有就把敏感词字符替换为 *但这样的方法,我们需要遍历整个敏感词库,并且对玩家输入的

2020-09-03 22:57:04 1709 1

原创 游戏中常用的伪随机算法之PRD暴击算法

游戏中常用的伪随机算法之PRD暴击算法PRD伪随机算法常用于游戏中的暴击算法,因此本文的标题将其称为 PRD暴击算法。诞生与应用PRD算法诞生与《魔兽争霸3》,可以说其诞生就是为了解决游戏中暴击概率所存在的问题。 现在其广泛应用与Dota2、LoL等MOBA游戏和其它竞技性较高的游戏暴击概率运算中。为何诞生?如果暴击概率采用真实的算法,那么是会存在一些影响玩家游戏体验甚至游戏平衡的问题的,我们可以计算一下:设一个角色的暴击率为50%,即 0.5。那么该角色进行100次攻击,理想状态下,应该会产生

2020-09-03 20:29:04 7967 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除