自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (1)
  • 收藏
  • 关注

翻译 多边形裁剪(Polygon Clipping) 2

F. Martinez 2008算法处理重合边缘(不像格雷纳-霍曼),但它仍然有一些轻微的goofiness。让我们一劳永逸地解决这个问题。重新来看下问题给定两个多边形我们如何计算不同的布尔运算?多边形表示首先,我们需要选择一个好的“多边形”表示方法您的第一直觉可能是一个简单的点的数组var poly1 = [ [0,0], [100,0], [50,100] ];我认为这是错误的。一个更强大的多边形定义是一个区域列表以及一个反转标识var poly...

2021-07-24 20:18:30 1691

翻译 多边形裁剪(Polygon Clipping) 1

原文地址:https://sean.cm/a/polygon-clipping-pt1Greiner-Hormann裁剪算法无法处理重合线。所以我研究并写了另一篇适用于所有多边形的文章。在此处阅读后续内容:多边形裁剪(第 2 部分)问题首先, 让我们定义问题,假设您有两个多边形,每个多边形都以 2D 形式存在var poly1 = [ // red [ 181, 270 ], [ 85, 418 ], [ 171, 477 ], [ 491, 365 ..

2021-07-23 06:38:02 3005

原创 Games101 笔记 16 材质和表现

材质 = BRDF折射

2021-06-13 22:37:34 225

原创 Games101 笔记 15 光线跟踪3

变化一点点和变化一点点形成的极小的立体角Irradiance单位面积上对应的能量 和入射光线向垂直的方向.面和入射光线必须垂直, 如果不垂直, 得到的能量就没有这么多.之前提到过.为什么会有冬天和夏天呢. 不同的地方接受到的能量不一样.离远了之后, 半径放大. 单位立体角上的能量并没有减少. 但是Irradiance小啦.Radiance描述光线的属性.主要是考虑某个确定的朝向 和平面.朝某个单位立体角, 并且在单位面积的能量....

2021-03-28 23:01:19 222

原创 Games101 笔记 14 光线跟踪2

使用AABB来加速光线跟踪使用找到包围盒找到包围盒, 创建各自和物体表面相交的地方保存起来.现在就可以做光线跟踪. 只需要遍历所有格子 测试是否相关 然后保存相关的格子.加速效果怎么样. 和不加格子的效率怎么样.格子太密一般情况下格子不用疏也不能太密这种就工作的比较好, 因为场景中有大量的物体.这种就不是, 物体的分布不均匀. 运动场中有个茶壶. 使用均匀的格子的算法不是很好.空间划分(Spatial Parti...

2021-03-28 20:33:13 176

原创 Games101 笔记 13 光线跟踪1

光栅化不容易做全局性的效果软阴影 毛玻璃 间接光照基础光线追踪算法光线1.光线是沿着直线传播的(尽管是错的, 因为光有波动性)2.光线和光线不会发生碰撞 (尽管是错的)3.光线从光源出发到我们的眼镜(光路可逆, )光线投射1.从摄像机穿过成像平面打出一根光线, 到场景中,2.和场中物体的交点和光源连接, 判断是否在阴影中.Recursive (Whitted-Style) Ray Tracing Camera ..

2020-11-02 17:37:34 341

原创 Games101 笔记 12 几何(网格处理)、阴影图

三角形细分网格细分,提高分辨率Loop 细分先细分, 再根据新老顶点的区别来调整位置.新的顶点, 比如 白色点的位置 =3/8 * (A + B) + 1/8 * (C + D) 根据相邻2个相邻3角形的4个控制点来确定.对于旧的顶点.Catmull-Clark Subdivision (General Mesh) 可以人对一般的mesh, 矩形,三角形都存在的情况下.奇异点,度不是4, 相邻的4个边不是4, 比如紫色点一次变换后,1.非...

2020-10-14 12:26:06 418

原创 Games101 笔记 11几何(曲线与曲面)

Explicit Representations in Computer Graphics显式几何点云: 不考虑物体时一个表面, 而是把每个点当作一个表面.如果要表现一个非常复杂的模型, 就需要非常多的点. 点云经常被考虑如何变成三角形面,平时很少用, 除非扫描出来的数据.多边形面最广泛应用的v 顶点vn 法线vt 纹理坐标f 连接关系 (序列连接的三角形) Curves 曲线相机路径/动画曲线/矢量字体Bézier Curves ...

2020-10-14 10:28:24 304

原创 Games101 笔记 10几何(基本表示方法)

纹理概述In modern GPUs, texture = memory + range query (filtering) 在现代GPU中, 纹理 = 内存 + 范围查询(滤波)很多应用环境光贴图非常亮的金属球可以反射环境光, 这就提供了一个办法, 用球形来存储环境光, 然后2D展开.环境光展开. 会有一些扭曲, 而且球形不是均匀展开, 比如地球仪上面的南极.可以把球形上面的点延展到立方体上,立方体Textures can affec...

2020-10-14 00:12:11 380

原创 Games101 笔记 09 着色(插值、高级纹理映射)

Interpolation Across Triangles: Barycentric Coordinates (重⼼坐标)为什么需要插值, 因为我们有些操作时定义在顶点上的, 需要平滑插值三角形内部的点什么东西可以插值, 纹理坐标, 颜色, 法线向量.三角形内部的任意一个点 都可以通过3个顶点描述出来, 3个系数和时1. 在三角形内部的画,3个系数都大于0比如a点 1,0,0任意一个点的坐标,三角形的重心简化的公式任何属性根据3个系数...

2020-10-13 22:23:17 339

原创 Games101 笔记 08 着色(着色频率、图形管线、纹理映射)

高光只是点乘能表达高光区域,但是会是一个比较大的值, 所以需要使用多少次方, 让高光很亮.横向的指数p 用来控制高光区域, 越大, 高光区域越小假设任何一个点 有一个常数的环境光.所有的项加起来.着色频率第一个着色应用在一个面上.第二个着色应用在顶点上第三个应用在每个像素上平面法线任意一个顶点的法线. 三角形内部通过插值每个像素一次着色.当几何模型相对复杂的时候, 可以使用一些相对简单的着色模型.顶点法线 = 相邻.

2020-10-13 21:17:13 217

原创 Games101 笔记 07 着色(光照与基本着色模型)

画家算法先画远处的再画近处的.Z-Buff最后的颜色结果存在FrameBuff 里面深度值存储在 depth Buff (z-Buffer)之前结果中的z 是负值,进的大,越的小, 现在统一变成正值, 近处小, 远处大.z-Buffer 并不是一个排序算法, 只是找到了最小值, o(n)*三角形的个数.考虑到抗锯齿, 多重采样, z-buffer的大小可能不是屏幕大小, 可能是采样大小.Shading 着色引入明暗的不同, 颜色的不同在这个课...

2020-10-13 20:27:44 269

原创 Games101 笔记 06光栅化(深度测试与抗锯齿)

反走样上次课的最后的是三角形有明显的锯齿, 学名是走样 (Aliasing)视频 就是在时间中的采样Artifacts(Errors/Mistakes/Inaccuracies)in Computer Graphics 图形中的一切错误,不准确都可以用这个比如: 高速行走的轮胎会让你感觉又向后的趋势, 原因是人眼是时间上的采样跟不上采样的速度.Sampling Artifacts 采样错误Jaggies - 锯齿 Moire - 摩尔纹, 把奇数行,列的纹理都去掉 车轮的效果

2020-10-13 17:36:51 505

原创 Games101 笔记 05 光栅化(三角形的离散化)

视锥体定义需要的数据长宽比, 可视角度Field of View屏幕的定义二维数组 一组像素 典型的光栅成像设备光栅化光栅 是德语 中的屏幕把东西画在屏幕上Pixel (像素) picture Element 的缩写一个带有颜色的小方块 一个颜色是r,g,b的混合屏幕空间 Screen Space约定俗成像素的坐标写成x,y 都是整数像素的屏幕是从0,0 到width-1,height-1像素的中心其实在x+0.5, y+0.5把之前的-1,1.

2020-10-11 23:19:40 304

原创 Games101 笔记 04 变换(模型、视图、投影)

三维旋转根据叉乘 XYZ 轴 任意2轴可以得到第三个轴, x, yz叉乘, z xy叉乘, y 是zx叉乘得到的.所以旋转矩阵相反欧拉角罗德里格斯 旋转公式视图/相机 转换什么是view变换呢找到一个好位置安排所有人站好 (model transformation)找到一个好的角度去摆放相机(view transformation)拍照(projection transform)首先如何确定一个相机位置 position朝向 look-at...

2020-10-08 23:02:45 483

原创 Games101 笔记 03 变换(二维与三维)

缩放缩放矩阵切变水平方向都移动了a*y旋转根据右下角的点推到出来旋转矩阵中的A,C , 同理根据左上角的点可以推到出来旋转矩阵中的B,D齐次坐标平移变换x0 = x + tx y0 = y + ty 不能写成矩阵形式, 只能写成, 说明平移变换不是线性变换把二维的点增加一个维度2D point = (x, y, 1)T 2D vector = (x, y, 0)T平移变换的矩阵表示点+点得到的是中点仿射变换..

2020-10-08 22:56:31 245

原创 Games101 笔记 02 向量与线性代数

点乘 用处:计算2个向量的夹角 计算另外一个向量在本向量的投影长度 判断2个向量的前后关系 分解向量叉乘正交于2个初始向量, 朝向根据右手旋转, 从第一个向量向第二个向量旋转, 大拇指方向就是朝向.对于构建坐标系很有用.用处:判断2个向量的左右关系 判断在内部还是外部 用来构建坐标系矩阵矩阵之间的乘法矩阵能够相乘的前提是A的列=B的行(M x N) (N x P) = (M x P)乘积结果中的 i,j ...

2020-10-08 22:56:14 159

原创 使用PlantUml VSCode 快速生成UML

1.PlantUMLhttps://plantuml.com/zh/一个UML的DSL语言, 网站有快速的显示地方, 语法也很简单.https://plantuml.com/zh/running有各种工具目前推荐VS Code打开2.GraphViz绘图的http://www.graphviz.org/Download_windows.php需要设...

2019-12-11 21:01:23 3392

原创 VSync 和 多缓冲

1.只有一个Buff(缓冲区)模式缺点是经常会闪烁2.double buffering(双缓冲)双缓冲背后的想法是,计算机只绘制到一个缓冲区(称为“后”缓冲区)并将另一个缓冲区(称为“前”缓冲区)发送到屏幕。计算机画完后,程序会做一个叫做“交换”的程序,这个交换不会移动任何东西:交换只改变两个缓冲区的名称:前缓冲区变成后缓冲区,后缓冲区变成前缓冲区。缓冲区交换后,...

2019-11-27 19:57:56 657

原创 Permuted Congruential Generator(置换同余发生器) 伪随机数生成 算法

看着是个更好点的随机数生成算法, 记录一下以小的快速代码和小的状态大小实现了出色的统计性能, 在linear congruential generator上做出改进的PCG在三个方面与经典线性同余生成器不同:LCG模数和状态较大,通常是所需输出大小的两倍, 它使用的是2的幂模数,这使得全周期发生器和无偏输出位的实现特别有效,并且 状态不是直接输出,而是使用状态的最高有效位来...

2019-11-26 18:07:41 740

原创 Unity Manual 优化 小结

2019-11-18 00:37:11 166

转载 【转载】计算反射向量

1. 转载自:https://blog.csdn.net/yinhun2012/article/details/79466517这幅图可以看出,我们计算反射光线OB,则转换成了计算OP,这里OP是AO在法向量N上的投影,接下来我们推导投影向量计算,如下图:我们根据点积计算出cosθ,然后通过OA' = |OA|*cosθ*单位法向量n就能得到,向量的投影公式。这个时候我们再回...

2019-08-22 22:31:37 913

转载 [转载]lua 垃圾回收

转载自:https://www.cnblogs.com/zblade/p/8824376.html一、GC的原理及其算法设计不同的语言,对GC算法的设计不同,常见的GC算法是引用计数和Mark-Sweep算法, c#采用的是Mark-sweep && compact算法, Lua采用的是Mark-sweep算法,分开说一下:引用计数算法:在一个对象被引用的情况下,将其引...

2019-08-21 08:49:08 204

原创 c#垃圾回收

在公共语言运行时 (CLR) 中,垃圾回收器用作自动内存管理器。它提供如下优点: 在开发应用程序时,不必为所创建的对象手动释放内存。 有效分配托管堆上的对象。 回收不再使用的对象,清除它们的内存,并保留内存以用于将来分配。托管对象会自动获取干净的内容来开始,因此,它们的构造函数不必对每个数据字段进行初始化。 通过确保对象不能使用另一个对象的内容来提供内存安全...

2019-08-21 08:35:47 2691

转载 [转]jvm如何判断一个对象应该回收呢?

转载自:https://www.javatt.com/p/48050一、引用计数算法通常被认为判断对象是否存货的算法是:为对象增加一个引用计数器,当一个地方引用了该对象时,计数器加1,当引用失效时,计数器减1,当引用计数器为0时,表明该对象永远不会被再使用,可以回收。但是HotSpot不是使用引用计数算法,因为解决不掉对象之间相互引用的情况。二、可达性分析算法基本思想是...

2019-08-21 07:16:00 172

原创 c的free 为什么不需要知道大小

mallocmalloc函数在运行时分配内存。它需要以字节为单位的大小并在内存中分配那么多空间。这意味着malloc(50)将在内存中分配50个字节。它返回一个void指针calloc与malloc一样,calloc也在运行时分配内存,并在stdlib.h中定义。它需要元素的数量和每个元素的大小(以字节为单位),将每个元素初始化为零,然后返回一个指向内存的void指针。void *...

2019-08-20 18:41:05 1933

转载 [转载] 网络游戏程序员须知 调试多人联机游戏

转载自:https://blog.csdn.net/rellikt/article/details/5902745本文为作者原创或翻译,转载请注明,不得用于商业用途。作者:[email protected]首发链接:http://blog.csdn.net/rellikt/archive/2010/09/23/5902745.aspx简介欢迎大家再次来到我的博客,上次的...

2019-05-24 08:34:00 404

转载 [转载] 网络游戏程序员须知 可靠传输与流量控制

转载自:https://blog.csdn.net/rellikt/article/details/5892763本文为作者原创或翻译,转载请注明,不得用于商业用途。作者:[email protected]首发链接:http://blog.csdn.net/rellikt/archive/2010/09/18/5892763.aspx简介 又是新的一周了,上周我...

2019-05-24 08:32:57 156

转载 [转载] 网络游戏程序员须知 基础概念篇

转载自:https://blog.csdn.net/rellikt/article/details/5878447本文为作者原创或翻译,转载请注明,不得用于商业用途。作者:[email protected]首发链接:http://blog.csdn.net/rellikt/archive/2010/09/12/5878447.aspx介绍作为一个程序,你想过网络多人对战游...

2019-05-24 08:32:09 194

转载 [转载] 网络游戏程序员须知 目录

转载自:https://blog.csdn.net/rellikt/article/details/5846668UDP vs TCP网络游戏我们应该使用什么协议呢?是TCP还是UDP?亦或是两者混用?我们在这篇讨论中告诉大家,我们应该在一个快节奏的游戏中使用的网络传输协议。收包与发包这篇文章会告诉我们如何在电脑上实现收包与发包。附带的代码示例会告诉我们怎么在Wi...

2019-05-24 08:31:15 205

转载 [转载] 网络游戏程序员须知 基于UDP的虚拟连接

本文为作者原创或翻译,转载请注明,不得用于商业用途。作者:[email protected]首发链接:http://blog.csdn.net/rellikt/archive/2010/08/28/5846647.aspx大家好,欢迎再次来到我的博客。上一篇中我给大家介绍了简单的UDP协议的发包与收包的过程。我们知道只要开了一个UDP的端口,我们就可以通过这个端口和任意个其他机...

2019-05-24 08:30:18 175

转载 [转载] 网络游戏程序员须知 收包与发包

转载自:https://blog.csdn.net/rellikt/article/details/5833233本文为作者原创或翻译,转载请注明,不得用于商业用途。作者:[email protected]首发链接:http://blog.csdn.net/rellikt/archive/2010/08/23/5833233.aspx简介大家好,今天我们就来说说网络游戏程序员须...

2019-05-24 08:29:35 596

转载 [转载] 网络游戏程序员须知 UDP vs TCP

转载自:https://blog.csdn.net/rellikt/article/details/5829020本文为作者原创或翻译,转载请注明,不得用于商业用途。作者:[email protected]首发链接:http://blog.csdn.net/rellikt/archive/2010/08/21/5829020.aspx这篇教程让我们就从最基本的网络数据收发开始谈起吧...

2019-05-24 08:28:04 443

翻译 四.滞后补偿(游戏中的同步)

原文:https://www.gabrielgambetta.com/lag-compensation.html简介和上上篇的总结差不多.滞后补偿所以你用狙击步枪瞄准目标的头部。你开枪-这是一个你不能错过的机会。但是你错过了。为什么会这样?由于前面介绍的客户机-服务器架构,您瞄准的目标是射击前100毫秒敌人的头部所在位置,而不是射击时!在某种程度上,这就像在一个光速真的...

2019-05-24 08:26:32 397

翻译 [译]三.Entity插值(客户端显示其他玩家之前的位置)(游戏中的同步)

原文:https://www.gabrielgambetta.com/entity-interpolation.html在本文中,我们将探讨让其他玩家控制的角色连接到同一服务器的结果。服务器时间节奏(帧同步)在上一篇文章中,我们描述的服务器的行为非常简单——它读取客户端输入,更新游戏状态,并将其发送回客户端。但是,当连接多个客户端时,主服务器循环会有所不同。在这种情况下,几个...

2019-05-24 08:08:44 352

翻译 [译]二.客户端预测和协调服务器(游戏中的同步)

原文:https://www.gabrielgambetta.com/client-side-prediction-server-reconciliation.html第一篇很简单, 不翻译啦.上篇文章中的根据权威中心服务器取同步位置的方法, 玩家那里显示的是一样的, 但是会导致玩家输入和屏幕显示的延迟,例如:按下向右的箭头, 但是角色在半秒之后才开始移动.这是因为客户端输入首先需...

2019-05-23 16:15:35 727

转载 [转载]魔兽争霸3技术分析资源汇总 我们不生产魔兽,我们只是魔兽的搬运工

转载自:http://jjyy.guru/war3-tech策划设计讲的是第一代,也很有参考价值。The Making of Warcraft Part 1 The Making of Warcraft Part 2 The Making of Warcraft Part 3中文版:Patrick Wyatt:魔兽争霸的制作过程 1 Patrick Wyatt:魔兽争...

2019-05-17 17:42:58 932

原创 【空间划分】KDTree

k-d树[1](k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。K-D树是二进制空间分割树的特殊的情况。四叉树,八叉树都是只能用于二维,三维的, 而且是空间等分的,其使用比较困难的是最小粒度(叶节点)的确定,粒度较大时,有的节点数据量可能仍比较大,后续查询效率仍比较低,反之,粒度较小,八...

2019-05-10 16:48:49 17246

原创 【空间划分】八叉树 四叉树

描述:四叉树和八叉树就是2D和3D的“二分法”,搜索过程与二叉树搜索也类似,二叉树中是将数组sort后存入二叉树中,从而在查找中实现时间复杂度为log2N;四叉树/八叉树是按平面/空间范围划分有序node,将所有points(坐标已知,但是每个点的point在vector中的index可以认为是随机的,没有规律的,所以不能直接根据index取出point(x,y))放入所属node中,实现所有...

2019-05-10 10:54:20 2779

原创 机器学习之数学基础 二 .泰勒级数

泰勒级数(Taylor series)用无限项连加式--级数来表示一个函数,这些相加的项由函数在某一点的导数求得. 函数在自变量0 的导数求得的泰勒级数又加做麦克劳林级数.实际应用中,泰勒级数需要截断,只取有限项,可以用泰勒定理估算这种近似的误差。一个函数的有限项的泰勒级数叫做泰勒多项式。一个函数的泰勒级数是其泰勒多项式的极限(如果存在极限)。即使泰勒级数在每点都收敛,函数与其泰勒级数也可...

2018-12-16 21:27:47 1660

游戏开发中的人工智能

游戏开发中的人工智能

2018-12-31

空空如也

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

TA关注的人

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