![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机图形学
文章平均质量分 93
syddf_shadow
这个作者很懒,什么都没留下…
展开
-
圆面、球面上的采样方法
(本文内容主要来自《pbrt》13.5、13.6)如果yyy满足概率密度分布p(y)p(y)p(y),如果要随机地获取一个yyy的话,可以先获取一个随机数ttt,然后代入它的累积概率密度P(y)=tP(y)=tP(y)=t,然后求解出yyy即可。但是很多情况需要的不仅是对单个变量做采样,往往需要对多个维度下的多个变量进行采样,而这些多个变量之间很有可能有互相关联,并且直接采样也不容易,可以考虑...原创 2019-10-23 17:37:24 · 5867 阅读 · 1 评论 -
三角网格下的Half-Edge数据结构实现方法
Half-Edge结构即半边结构是图形学中一种十分重要的数据结构,许多算法都是基于这种结构实现的,从数学角度看这种结构十分容易,很好理解,而实际编码的时候似乎不是很轻松,之前写过两次都感觉写的不是很好,而网上也没有太多讲解实际编码实现的文章,所以记录一下简易的实现的步骤。本文基于三角网格实现简易的Half-Edge,并能够读取.obj的模型数据 一、结构特点最质朴的顶点+索引方式存储网格数据不能实...原创 2018-07-01 16:40:25 · 4693 阅读 · 5 评论 -
BRDF·基于物理的着色技术学习总结
基于物理的着色真的不是特别好理解···在这里记录一下自己比较粗浅的认识···立体角要了解BRDF的相关内容,首先要对立体角有一定的理解。立体角是对平面角在三维空间的一个扩展。平面角就是一个顶点两条射线围成的那个角度,它的大小等于单位圆上的弧长,单位是弧度或者度,那么类比到三维空间,立体角就是从一个顶点发出的一个锥体所围成的一个三维角度,它的大小等于单位球上的面积,单位是球面度,一个单位...原创 2018-07-18 15:41:13 · 13879 阅读 · 2 评论 -
几种凹凸贴图(Bump Mapping)的学习记录
凹凸贴图简介凹凸贴图是纹理的一种应用,它主要用来实现类似砖块、墙体的那种凹凸不平的效果,相较于一般的纹理映射,它并不是通过纹理映射来改变材质本身的颜色,而是改变或扰动其法线的方向,而法线的方向被用在光线模型中,改变法线的方向就可以影响物体表面光照的明暗效果。因此,凹凸贴图实际上是一种欺骗式的手段,它并没有改变顶点的位置,让物体本身的模型变得凹凸不平,而是影响用户的视觉效果,让用户以为模型是凹凸...原创 2018-07-12 21:31:58 · 21131 阅读 · 3 评论 -
天空盒(SkyBox)的实现原理与细节
天空盒的原理在实时渲染中,如果要绘制非常远的物体,例如远处的山、天空等,随着观察者的距离的移动,这个物体的大小是几乎没有什么变化的,想象一下远处有一座山,即使人走进十米、百米、甚至千米,这座山的大小也是几乎不怎么改变的,这个时候可以考虑采用天空盒技术。 所谓的天空盒其实就是将一个立方体展开,然后在六个面上贴上相应的贴图,如上图所示。 在实际的渲染中,将这个立方体始终罩在摄像机的周围,让...原创 2018-07-26 17:26:22 · 58352 阅读 · 3 评论 -
关于四元数的一些总结
关于四元数的内容也是看过两次了,但总是容易忘记,这次打算好好总结一下以免再忘了= = 为什么要用四元数在计算机图形学中,作旋转变换有两种方法,一种是欧拉角,另一种就是四元数。用欧拉角会有万向节死锁的问题,而四元数则弥补了这个缺陷,是最好的实现旋转的方案。 欧拉角与万向节死锁 在线性代数中肯定学到了旋转矩阵这个东西,它可以用来作旋转变换,而这里的旋转矩阵只能代表绕着某个坐标...原创 2018-08-11 10:53:56 · 5403 阅读 · 3 评论 -
TrueType字体文件解析和字体光栅化
本文主要记录一下这几天做的一个小Demo,它能够读取.ttf格式的字体文件,获取其中的相关数据,将得到的字体信息光栅化处理后输出到一张PNG文件中,最终输出的结果如下:有兴趣的可以参考一下源码:https://github.com/syddf/TTFFontRenderTTF文件解析首先要注意ttf采用的是大端编址,即最低位的字节在最后面,而最高位的字节在最前面,如果所在的环境用的是小...原创 2019-03-16 16:42:05 · 9076 阅读 · 7 评论