games
文章平均质量分 82
513k
十年饮冰,难凉热血!
展开
-
Lesson 6 重构代码
Lesson 6重构源代码,下面将按照光栅器运行的顺序来介绍代码。原创 2022-09-08 21:45:43 · 389 阅读 · 0 评论 -
TinyRenderer学习笔记--Lesson 5
准备工作,在摄像机坐标系下,我们要引入up向量,它始终指向摄像机的上方,注意,这里的up是摄像机坐标系下的up。这里和普通的属兔变换要注意区别,普通的视图变换是作用在摄像机上的,这里是作用在物体上的。然后下一步,我们需要把看向的位置移动到世界坐标系的原点,看向的位置可以理解成物体的位置,因为我们最终。的法线,计算得到的光强是一样的,这样得到的效果就是整个三角形都是一种颜色,导致渲染出来的图片有明显的。得到的场景是摄像机位于Z轴负方向的位置,看向原点,所以要把看向的位置移到原点,看向的位置我们定义成。...原创 2022-09-01 11:38:17 · 241 阅读 · 0 评论 -
TinyRenderer学习笔记--Lesson 3、4
无论怎样,生活中的显示器基本上都是平面,是一个2D的场景,而我们的模型却是3D的,是有深度的,实际上我们看见的都只是离我们的眼睛最近的那一个平面,一个不透明的3D物体的内部和背面是我们无法观测到的。有了这三个矩阵,在计算屏幕坐标的时候,直接进行乘就行,简称为MVP变换,M是模型矩阵,V是视角矩阵,P是投影矩阵。图,首先我们需要知道某个三角形顶点上的UV值,然后通过插值的办法计算出三角形内部某个点的UV值,OBJ文。对于透视投影的计算,我们需要进行简单的探讨,这里就不在讨论,强烈建议大家查看文章。...原创 2022-08-30 15:13:14 · 314 阅读 · 0 评论 -
TinyRenderer学习笔记--从零构建软件渲染器
开始软件渲染器–tinyrenderer的学习。原创 2022-08-13 21:06:37 · 571 阅读 · 0 评论 -
games101作业2解题办法详解
作业2的整体代码框架和作业1相同,不同点在于这次需要绘制的是实心的三角形,且两个三角形之间有重叠,所以需要做深度检测。这是此次作业的要求。首先来实现三角形的栅格化算法函数 rasterize_triangle(const Triangle& t)在给定的作业要求pdf中已经给了具体的算法,我们只需要将算法转换成代码即可。1、首先需要建立三角形的bounding box,这个box就是一个二维的矩形,是可以把三角形包围起来的最小矩形 auto v = t.toVector4()原创 2022-03-31 17:05:41 · 1915 阅读 · 3 评论 -
games101作业1框架及解题办法详解
所用到的函数1、Triangle.hppa,b,csetVertex()setNormal()setColor()setTexCoord()toVector4()2、Triangle.cpp3、rasterizer.hpp运算重载load_position()load_indices()set_model()set_view()set_projection()set_pixel()clear()draw()frame_buffer()draw_line()raster_wireframe()4、main.c原创 2022-03-29 14:45:43 · 3609 阅读 · 2 评论