图形学入门Games101
文章平均质量分 55
Micmic33
这个作者很懒,什么都没留下…
展开
-
Games101-Chapter5-光栅化1(视口变换&采样)
经过Chapter4的变换,物体已放到一个1*1*1中心位于原点的立方体里下一步就是绘制在屏幕上——这一步就叫做光栅化【Rasterization】PS.透视投影中:引入两个概念因此定义一个视锥,只需定义fovY角度和宽高比现在要把正交立方体画在屏幕上屏幕由像素的array组成,array的大小就代表了屏幕分辨率 像素pixel(picture element),每个像素的颜色是RGB的mixture 屏幕空间——在屏幕上建立坐标系,像素的位置用整数描述 像素的中心在(原创 2022-04-21 20:40:58 · 185 阅读 · 0 评论 -
Games101-Chapter6-光栅化2(反走样(抗锯齿)&深度缓存)
接上一章,采样后,出现了锯齿------>【一些采样的理论】光栅化的过程,就是在屏幕空间对所有像素中心进行“是否在三角形内部”这个函数的采样采样时,会出现一些“瑕疵”Artifacts出现这些Artifacts的原因 ——信号变化太快而采样慢<滤波Filter>简单理解:把特定的某些频率去掉<傅里叶变换>可以把时域变为频域,还有逆傅里叶变换高通滤波(边界变化明显,所以留下了边界)低通滤波(低频信号留了下来).原创 2022-04-22 13:33:21 · 257 阅读 · 0 评论 -
Games101-Chapter3-变换(概述、模型变换)
【二维变换】缩放因此就是乘上这样一个矩阵当然,x和y也可以不均匀反射:切变:旋转因此,线性变换可以写成乘上一个矩阵的形式<齐次坐标概念的引入>平移变换不是线性变换给二维的点或向量增加一个维度这样就实现了:这样,把平移操作也写成了矩阵乘向量的形式所有的仿射变换都可以写成:2D Transformation总结:复合变换对模型进行操作,就对它左乘相应的矩阵矩阵乘...原创 2022-04-22 14:41:18 · 219 阅读 · 0 评论 -
Games101-Chapter4-变换(模型、视图、投影)
3D(实际世界)到2D(我们视野)的变换的处理有三步:模型变换(m),视图变换(v),投影变换(p) 模型变换(modeling tranformation):将一个物体自身进行变换(缩放、旋转、位移),上一节介绍了此变换方法。 视角变换(view tranformation):根据眼睛(相机)来判断物体的相对位置。 定义相机的三要素:相机位置position(向量e),相机面向方向gaze direction(单位向量g),相机上下方向up direction(单位向量t)。为了方原创 2022-04-22 16:05:18 · 2024 阅读 · 0 评论 -
Games101-Chapter7-Shading(布林冯 漫反射)
接上节的深度缓存:如果有多个三角形叠在一起,怎么办?直观的想法是,从远到近画,有近的,就让近的覆盖远处的【画家算法】但是这样处理不了复杂情况——引入:Z-Buffer对于一幅画面,要渲染出左边的图,同时还要维护一张深度图,记录每一个像素当前能看到的最浅深度时间复杂度是O(n),和遍历顺序无关【着色】定义:对不同的物体应用不同的材质(material)镜面高光,漫反射,环境光定义几个:view direction Sur...原创 2022-04-25 15:03:47 · 246 阅读 · 0 评论 -
Games101-Chapter8-Shading2(镜面反射,环境光,着色频率,渲染管线)
上节课提到了Diffuse【Specular Term】看半程向量是否和法线方向接近指数p:(加这个指数是为了离得非常近才看成是高光)【Ambient Term】环境光与l,v,n等都没有关系,它是一个常数(这里是简化和假设)【SUM UP-布林冯反射模型】【Shading Frequencies 着色频率】逐三角形逐顶点 (Shader就叫顶点着色器)逐像素 (Shader叫片元着色器)怎么算逐顶点的法线?一...原创 2022-04-26 10:25:24 · 333 阅读 · 0 评论 -
Games101-Chapter9-Shading(插值&Texture Mapping)
【重心坐标——为了进行三角形内的插值】为什么要在三角形内进行插值?——许多操作是在三角形的顶点上做的,知道顶点具有的属性,希望在三角形内部获得一个平滑的过渡插值什么内容——-------->因此,引入了重心坐标(重心坐标是定义在三角形上的)三角形所在平面上任何一个点(x,y)都可以表示成A,B,C坐标的线性组合且,若这个点在三角形内,alpha,beta,gamma都应是非负的就是重心坐标如A点的坐标可以写成(1,0,0)重心坐标的另一个定义——可以靠面积比来求.原创 2022-04-26 20:54:49 · 218 阅读 · 0 评论 -
Games101-Chapter10-Geometry1(介绍(含纹理应用))
接上节,【纹理应用】Environment Map可以把环境光记录在球面上并且可以把它展开【spherical map】但是会出现扭曲的问题如何解决问题——用一个Cube把球包住,把光照信息存在立方体上【Cube Map】纹理不只是颜色!例如纹理可以代表相对高度——凹凸贴图这样就可以用一个相对复杂的纹理,而不是一个复杂的几何模型把每个像素的法线做一个扰动,纹理定义的是每个点相对高度的移动那么,如何计算法线的变化?法线和切线垂直,那么我们求切线求完切线,原创 2022-04-27 20:55:09 · 183 阅读 · 0 评论 -
Games101-作业3
修改函数 rasterize_triangle(const Triangle& t) in rasterizer.cpp: 在此处实现与作业 2 类似的插值算法,实现法向量、颜色、纹理颜色的插值。//Screen space rasterizationvoid rst::rasterizer::rasterize_triangle(const Triangle& t, const std::array<Eigen::Vector3f, 3>& view_pos)原创 2022-04-29 11:15:15 · 258 阅读 · 0 评论 -
Games101-Chapter11-Geometry(曲线和曲面)
【Explicit Geometry】1.Point Cloud不考虑物体有一个表面,仅仅是用点表示物体list of points(x,y,z) 理论上来说可以表示任何几何2.Polygon Mesh那么在图形学中怎么表示模型的信息?把空间中的点,纹理,法线坐标分别表示f代表哪三个点会形成一个三角形【贝塞尔曲线】用一系列控制点来定义一条曲线三个点——二次贝塞尔曲线可见,如果枚举所有的t,就能画出这条曲线!贝塞尔曲线-...原创 2022-04-30 19:53:48 · 201 阅读 · 0 评论 -
Games101-Chapter13-Ray Tracing 1
------------------------------------------以下是光线追踪的基础知识--------------------------------现在要解决点与平面是否有交点——求光线上一点p是否在平面上。“光线追踪”---实质上就是从相机发射光线,直到光源。为啥选AABB这样的表达形式:因为计算简单~~~光栅化最大的问题-不适合去表现全局的效果。求点在三角形内-----之前就讨论过这个问题。刚刚遗留的问题:把光线和每个三角形求交太慢了。(分别求三组对面光线进入和离开的时间)原创 2022-09-29 10:06:15 · 314 阅读 · 0 评论 -
Games101-Chapter14-Ray Tracing 2
--------------------------本节课探讨AABB怎么加速光线与场景求交问题-----------------------Oct-Tree是八叉树,三维中砍三刀,这个图是二维,那就是两刀分成4块,然后再把切出来的每个小区域切分(高维会很复杂)----->形成Bounding Volume Hierarchy结构(BVH)另一个技术-----空间划分(Spatial Partitions)这种方法什么好用什么时候不好用。对物体而不是空间进行划分----格子不能太稀疏也不能太密集。原创 2022-09-29 18:13:56 · 245 阅读 · 0 评论 -
Games101-Chapter15-Ray Tracing 3(光线传播+全局光照)
理解之前在布林冯光照模型中提到的:衰减的不是indensity而是irradiance。这个点在所有可能的入射方向反射到这个方向的规律:反射方程。BRDF-如何把一个方向收集到的能量辐射到另一个方向去。甚至可以简化为:所有光源辐射出的能量+被反射后的能量。渲染方程:有物体自身发光,有别的光线反射而来。存留一个问题:(这是一个递归的过程)这里要补充一些概率论知识(略)这样写的最终目的是解渲染方程。双向反射分布函数BRDF。原创 2022-10-01 18:24:21 · 149 阅读 · 0 评论