What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
cg:books:rt_one_wk:book_1 [2024/11/20 05:39] – [hit_sphere 的返回值] codingharecg:books:rt_one_wk:book_1 [2024/11/20 05:44] (当前版本) – [材质的抽象类] codinghare
行 271: 行 271:
   * vector   * vector
 数据对象为: 数据对象为:
-  * ''shared_ptr<vector<hittable>>''+  * ''shared_ptr<vector<hittable> > ''
 主要的操作函数有: 主要的操作函数有:
   * 添加函数 ''add'',通过 ''vector::push_back()'' 实现   * 添加函数 ''add'',通过 ''vector::push_back()'' 实现
行 342: 行 342:
 ===生成像素的采样点=== ===生成像素的采样点===
 整个过程: 整个过程:
-\\ <html><div align="center"> <img src="/_media/cg/books/rt_one_wk/aa.svg width="500"> </div> </html>+\\ {{ :cg:books:rt_one_wk:aa.svg?500 |}}
 ==将 camera 改变为 class 对象== ==将 camera 改变为 class 对象==
 直接将 ''main.cc'' 中的代码抄过去即可。主要的数据成员有: 直接将 ''main.cc'' 中的代码抄过去即可。主要的数据成员有:
行 571: 行 571:
 </code> </code>
 上面的 ''sactter()'' 函数会接收射线,根据衰减值返回射线,并将相关的信息存储到 ''hit_record'' 对象中: 上面的 ''sactter()'' 函数会接收射线,根据衰减值返回射线,并将相关的信息存储到 ''hit_record'' 对象中:
-\\ \\ <html><div align="center"> <img src="/_media/cg/books/rt_one_wk/mat_trans.svg width="600"> </div> </html>+\\ \\ {{ :cg:books:rt_one_wk:mat_trans.svg?600 |}}
 ===描述射线与对象相交的数据结构=== ===描述射线与对象相交的数据结构===
 本课程中,射线与表面相交的相关信息都存储于 ''hit_record'' 对象中。由于光线的反射与衰减是通过材质来决定的,因此对应**表面的材质信息**也需要存储到该对象中,供之后的 ''ray_color()'' 着色使用。材质信息通过智能指针来管理: 本课程中,射线与表面相交的相关信息都存储于 ''hit_record'' 对象中。由于光线的反射与衰减是通过材质来决定的,因此对应**表面的材质信息**也需要存储到该对象中,供之后的 ''ray_color()'' 着色使用。材质信息通过智能指针来管理: