my weekend
鲍Wei
这个作者很懒,什么都没留下…
展开
-
学习《Ray Tracing in One Weekend》第四章
第四章 画球 已经画出了基本的背景图了,现在可以学着加一些物体进去,作者给的是画一个球。 (一个光线代表着一个像素点) 画图的基本步骤 确定球的位置。(球上每个像素点的位置即为光线与球的交点,所有这些交点就组成了球。所以,问题转化为找光线和球的交点) 设置球的颜色。(光线和球交点的颜色) 球体方程 (p−c)⋅(p−c)=R*R 方程等价于: 球上任一点的坐标(向量)为p,而 c 表示小球圆心, R 表示小球半径 带入到光线公式得到 转化为 由此来改写之前的代码,将公式写进代码里,我们在z =原创 2021-04-13 16:26:40 · 137 阅读 · 1 评论 -
学习《Ray Tracing in One Weekend》第三章
第三章 一条射线上一点的公式如下: p(t)=A+B∗t p(t) = A+\boldsymbol{B}*t p(t)=A+B∗t p表示的是三维空间中沿着一条直线的点。 A 是光线的起点 B(向量)是光线的方向向量 参数t是一个实数(在代码中用float表示) 当 t 取不同值得时候,p(t) 表示沿着光线移动的点。 写Ray的类Ray.h //#ifdef RAYH //#define RAYH //#endif #include "Vec3.h" class Ray { public:原创 2021-04-13 15:30:31 · 130 阅读 · 2 评论 -
学习《Ray Tracing in One Weekend》第二章
第二章 作者在第二章让我们设计一个vec3类,用来存储颜色、位置、方向等等。以下是我们设计的vec3类。 vec3类的这些代码就全部放在vec3.h中 Vec3.h的代码如下: //#ifdef VEC3H //#define VEC3H //#endif #include <math.h> #include <stdlib.h> #include <iostream> class Vec3 { public: Vec3(){} Vec3(float原创 2021-04-13 14:10:53 · 96 阅读 · 0 评论 -
学习《Ray Tracing in One Weekend》第一章
第一章 生成图片 在vs中(我用的2019vs)新建你本次学习的项目,然后输入你的代码 #include <iostream> #include <fstream> using namespace std; int main() { ofstream outfile; outfile.open("firstpicture.txt"); int nx = 200; int ny = 100; outfile << "P3\n"原创 2021-04-13 13:51:04 · 120 阅读 · 1 评论