自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++设计模式(全23种)

设计模式概述设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。等这种思想融入到了思想中后,你就会不自觉地使用这种思想去进行你的设计和开发。文章目录设计模式概述一、创建型模式Factory 模式(工厂模式)AbstactFactory 模式(抽象工厂模式)Singleton 模式( 单例模式)Builder 模式(建造者模式)Prototype 模式(原型模式)二、结构型模式Bridge 模式(桥接模式)总结

2022-04-27 11:09:43 25909 3

原创 计算机图形学GAMES101(十五)光线追踪(蒙特卡洛积分与路径追踪)

本节涉及内容:蒙特卡罗积分路径追踪蒙特卡罗积分蒙特卡罗积分的核心思想还是求一个不规则图形的面积,它的做法是:首先在a和b之间找一个值xi然后求f(x)。接着以f(x)为高,ab为宽求矩形的面积,最后将所有的值求平均。当采样数量xi趋于无穷时,就近似求到了该不规则图形的面积。怎么求蒙特卡罗积分**FN**表示蒙特卡罗积分**Xi~p(x)**表示概率分布因为我们取xi时是在a到b之间均匀的取值,所以xi在ab上服从均匀分布。由均匀分布的概率密度函数可知 C=1/(b-a)即p(x

2022-03-30 17:42:59 546

原创 计算机图形学GAMES101(十四)光线追踪(辐射度量学、渲染方程与全局光照)

本节涉及内容:辐射度量学(Basic radiometry)光线的传播:反射方程以及渲染方程全局光照为什么要学辐射度量学?之前使用的Whittled style光线追踪很多物理量都没有精确的定义,导致生成的图像不真实。总之就是Whittled style光线追踪太拉了,需要一个更好的方法来代替。辐射度量学(Basic radiometry)辐射度量学主要是用来描述光照的它定义了一系列的方法以及单位、属性精确测量光的空间特性以正确的物理方式进行光照计算一些物理量的定义Radi

2022-02-27 17:53:23 425 1

原创 计算机图形学GAMES101(十三)光线追踪(加速结构)

AABB是怎么加速光线追踪的1、找出包围盒2、划分网格3、找到有物体的格子

2022-02-24 17:28:35 864

原创 计算机图形学GAMES101(十二)光线追踪(基本原理)

为什么要使用光线追踪?当对物体着色的时候,只考虑了像素点自己,没有考虑物体遮挡。所以着色不能解决阴影。那么怎么解决阴影问题呢?阴影映射(Shadow mapping)可以使用阴影映射来渲染阴影。阴影映射的实质还是光栅化。阴影映射的思想:如果一个点不在阴影里,则我们可以看到这个点,而且相对于光源来说也可以看到这个点。如果一个点在阴影里,则我们可以看到这个点,但是相对于光源来说也看不到这个点。即一个点不在阴影里面则两者都可以看到。(这种阴影叫做硬阴影)实现阴影映射的步骤:1、从光源看向场景记录看到

2022-02-23 16:14:32 734

原创 计算机图形学GAMES101(十一)几何(网格处理)

本节涉及内容:网格细分(Mesh subdivision)网格简化(Mesh simplification)网格规则化(Mesh regularization)网格细分网格细分可以使模型的细节更加丰富。网格细分的规则:首先创建更多的三角形(顶点)其次,调整它们的位置Loop SubdivisionLoop细分是一种三角形网格的细分法则,它按照下图三角形分裂,每条边计算生成一个新的顶点,同时每个更新新顶点/原始顶点的位置怎么改变新顶点的位置其中白色的顶点是会被两个三角形所

2022-02-22 15:07:05 266

原创 计算机图形学GAMES101(十)几何(曲线与曲面)

显示几何显示几何的表示方法:点云(Point Cloud)不把一个物体的表面用平面来表示,而是用很密集的点来表示。当点足够多时就可以表示一个平面。通常用在扫描中多边形网格(Polygon Mesh)存储顶点和多边形(通常是三角形或四边形)更容易处理/模拟自适应采样更复杂的数据结构图形中最常见的表示方式曲线(Curves)⻉塞尔曲线(Bézier Curves)P0为起始点,P3为终止点,P1,P2为控制点,蓝的的线为表示的曲线,该曲线要经过起始点和终止点,但是不要求经过控制点

2022-02-20 15:00:14 230

原创 计算机图形学GAMES101(九)几何(基本表示方法)

本节涉及内容:纹理的应用几何在现代GPU中可以将纹理理解为:纹理=内存区域+范围查询(过滤)纹理不仅仅可以用作物体的贴图,还可用来记录环境光照。凹凸贴图、法线贴图纹理还可以用作凹凸贴图,存储高度值。右边原本是一个球,凹凸贴图其实是保存了三角形任意一个点的相对高度,凹凸贴图可以在不在几何形体变复杂的情况下,应用了一个复杂的纹理,使其相对高度发送变化(法线发送了变化),从而改变着色的结果。由于着色结果发送了变化从而产生了明暗对比,实现了凹凸效果。(球的模型并没有改变)凹凸贴图或

2022-02-16 00:25:33 418

原创 计算机图形学GAMES101(八)着色(插值、高级纹理映射)

本节内容:重心坐标纹理的应用重心坐标(Barycentric Coordinates)重心坐标就是为了解决在三角形内部做插值的问题。(插值就是从一个顶点的颜色平滑的过度到另一个顶点的颜色)重心坐标的含义重心坐标是定义在一个三角形上的,在三角形ABC中的任何一个点(x,y)都可以表示成三角形的顶点ABC的线性组合,并且需要满足α+β+γ=1(等于1时是在三角形所在的平面内,不等于1则不在平面内)。这样就可以用(α,β,γ)来表示一个点了。如果α,β,γ都为非负数,则表示这个点在三角形内部这样

2022-02-15 00:10:05 2921

原创 计算机图形学GAMES101(七)着色(着色频率、图形管线、纹理映射)

一个物体的着色工作主要考虑:高光漫反射环境光接下来是高光已知 当摄像机的视角越接近R则高光越强。Blinn-Phong模型计算公式:使用l和v两个向量夹角的角平分线h(也叫做半程向量)和法线n的接近程度来计算高光,越接近高光越强。这里的h和n接近一定程度上就反应了上面的v和R接近。n点乘h 表示接近程度,越接近则值越靠近1,如果离得比较远则接近0。这里不考虑有多少光被吸收。Phong模型是通过计算过v和R的接近程度来计算高光(计算反射方向R不好算)Blinn-Phong模型是通过

2022-02-13 22:43:18 291

原创 计算机图形学GAMES101(六)着色(光照与基本着色模型)

本节设计内容:遮挡深度缓冲(Z-buffering)着色光照与着色图形管线着色深度缓存深度缓存需要做两件事:1、渲染图形(只渲染深度最小的像素)2、记录深度最小的像素的深度左边时渲染图形,右边是记录深度最小的像素的深度信息渲染过程:R表示无穷大,当没有渲染图形时像素的深度信息为无穷大。着色有关着色的一些定义对于一个非平面的表面,只要面积足够小,我们就认为是一个平面。观测方向:从着色点出发到摄像机光照方向:从着色点到发光点法线:垂直于平面的线着色不考虑光线是否

2022-02-12 22:49:42 1726

原创 计算机图形学GAMES101(五)光栅化(深度测试与抗锯齿)

本节内容反走样采样理论图形学中怎么实现反走样遮挡与可见性采样造成走样的本质:信号的变化太快了,以至于采样的速度跟不上变化的速度。反走样的方法1、在采样前做模糊操作,然后再去采样。结果反走样之后的效果:对于先采样后模糊的操作(顺序与反走样相反)我们称之为Blurred Aliasing,即把走样后的图像进行了模糊操作。这样处理的图片并不清楚。理解频率傅里叶级数展开:任何一个周期函数都可以写成一系列正弦和余弦函数的线性组合以及一个常数项从f(x)=A/2(最低的频率

2022-02-11 23:05:12 1368

原创 计算机图形学GAMES101(四)光栅化(三角形的离散化)

光栅化(Rasterization)Rasterize=drawing onto the screen光栅化=把东西画在屏幕上屏幕空间的定义:左下角是原点,向右是+x,向上是+y像素的坐标从(0,0)开始,最大(width-1,height-1)像素的中心点(x+0.5,y+0.5)屏幕覆盖范围:(0,0)到(width,height)接下来就是在屏幕上面显示上一节中的哪个【-1,1】3的立方体1、首先我们忽略调z轴2、然后宽度变为width,高度变为height3、然后就是将立方体

2022-02-11 17:45:56 313

原创 计算机图形学GAMES101(三)变换(模型、视图、投影)

补充内容Rθ是逆时针方向旋转的矩阵R-θ是顺时针方向旋转的矩阵可以发现RθT=Rθ-1 ,像这样的矩阵叫做正交矩阵。以后如果要求往相反的方向旋转相同角度的变换(R-θ),只需要求正向旋转的矩阵然后转置就可以了本节涉及内容:放射变换:线性变换+平移三维空间中的变换矩阵格式:3D旋转任意一个旋转都可以被分解为绕着X,Y,Z轴的旋转 即:α β γ这三个角叫做欧拉角(Euler angles)罗德里格斯公式该公式将解决了绕着任意方向的旋转表示绕着向量n旋转α°可以使用下面这个公

2022-02-09 23:21:18 1118

原创 计算机图形学GAMES101(二)变换

本节涉及的内容1、2D变换:旋转、缩放、切变2、齐次坐标3、变换的组合变换一般使用矩阵来表示变换缩放变换x’ y’代表变换后的坐标,s代表缩放的比例 ,x y代表原来的坐标镜像翻转切变变换旋转变换以上的变换都属于线性变换,都可以使用矩阵的乘法进行表示,形式如下一旦涉及到平移变换就没有办法使用矩阵的乘法来表示了(平移变换不是线性变换)为了使得平移变换也能使用矩阵乘法的形式来表示,我们引入了齐次坐标二维空间的点写成二维空间的向量写成即使用n+1维坐标

2022-02-08 22:59:45 143

原创 计算机图形学GAMES101(一)向量与线性代数

一、向量1、向量的基本概念向量AB=B-A,即终点减去起点单位向量2、向量的运算向量的表达以及向量的模点乘向量的投影b向量在a向量上的投影方向和a向量相同,长度为k倍求k可以使用下面的公式3、点乘在计算机图形学中的应用可以利用点乘来求一个向量相对于另一个向量是方向相同还是相反当a点乘b 结果>0,a和b向量同向当a点乘c 结果<0,a和c向量反向4、叉乘叉乘的结果仍是一个向量,可以使用右手定则来确定朝向,右手食指从a向量转向b向量大拇指的朝向

2022-02-08 21:45:35 288

原创 java rxtx串口通信虚拟机报错 A fatal error has been detected by the Java Runtime Environment

在读串口数据时遇到如下问题A fatal error has been detected by the Java Runtime Environment:EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x70e72b89, pid=8020, tid=7880一般为jdk版本太高,建议将其更换为jdk1.8 u251版本

2021-05-21 22:00:56 321

空空如也

空空如也

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

TA关注的人

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