总结《An Introduction to Ray Tracing》全文:点这里http://blog.youkuaiyun.com/libing_zeng/article/details/72603619
3.3.1 Ray-Sphere Intersections
3.3.2 Ray-Polygon Intersections
3.3.3 Ray-Box Intersections
3.3.4 Ray-Quadric Intersections
3.3.5 Ray-Tori Intersections
光线和圆环求交时,需要解一元四次方程。当时自己写了求解一元四次方程的函数,过程中几经周折。
问题三十七:C++怎么解一元四次方程?(1)——怎么解一元二次方程
问题三十七:C++怎么解一元四次方程?(2)——怎么解一元三次方程
问题三十七:C++怎么解一元四次方程?(3)——怎么解一元四次方程
又遇到过内存泄漏的问题。
问题三十八:C++中bad alloc问题(1)——分析问题
问题三十八:C++中bad alloc问题(2)——使用“引用”避免该问题
终于要画圆环了。但是,由于解一元四次方程的函数考虑欠周全,导致圆环图形出现bug,好在后来进行了修正。另外,也画了任意的圆环片段。
问题三十九:怎么用ray tracing画圆环
问题四十:对ray tracing圆环图形进行debug(1)
问题四十:对ray tracing圆环图形进行debug(2)——C++,用“笛卡尔”方法解一元四次方程
问题四十二:怎么用ray tracing画任意圆环片段
问题四十三:对ray tracing圆环图形中的细微问题进行修正
问题四十四:怎么用ray tracing画空间任意位置的圆环的任意片段
3.3.6 Blending and joining surface
问题四十五:怎么画ray tracing图形中的blending and joining surface
3.3.7 Ray-Superellipsoid Intersections
问题四十六:怎么用ray tracing画superellipsoid
问题四十七:怎么用ray tracing画superellipsoid (2)
3.3.8 Ray-Superhyperboloid Intersections
问题四十八:怎么用ray tracing画superhyperboloid(超级双曲面)
3.3.9 Ray-Supertoroid Intersections
问题四十九:怎么用ray tracing画supertoroid(超级圆环)
3.3.10 Ray-Blobs Intersections
3.3.11 Ray-Tear_drop Intersections
问题五十一:怎么用ray tracing画tear drop
3.3.12 Parametric Surfaces
首先考虑的是三角函数表示的参数方程的表面,比如:球面、牛角面等等。
问题五十三:怎么用ray tracing画参数方程表示的曲面(1)
然后考虑的时Bezier曲线、B样条曲线表示的参数方程的表面。这个得先引入矩阵啦。
问题五十二:怎么用C++实现矩阵运算
问题五十四:怎么用ray tracing画参数方程表示的曲面(2)—— bezier surface
问题五十五:怎么用ray tracing画Utah teapot (bicubic bezier patches)
【修正】问题五十五:怎么用ray tracing画Utah teapot (bicubic bezier patches)
问题五十六:怎么用ray tracing画参数方程表示的曲面(3)—— b-spline surface
3.3.13 Procedural Surfaces
3.3.13.1 Translational and conic sweeping
用到B样条曲线,求交过程会要解一元三次方程。
问题五十七:怎么用ray tracing画translational sweeping图形
问题五十八:怎么用ray tracing画conic sweeping图形
3.3.13.2 回旋体
问题六十:怎么用ray tracing画回旋体(rotational sweeping / revolution)
这个过程会要解一元六次方程。
问题五十九:怎么求一元六次方程在区间内的所有不相等的实根(1)
问题五十九:怎么求一元六次方程在区间内的所有不相等的实根(2)
问题五十九:怎么求一元六次方程在区间内的所有不相等的实根(3)——修正一个问题
考虑到回旋体中用到B样条曲线,咱看看该曲线在具体图形中的表现。
问题六十一:三次b样条(b-spline)曲线的控制点和曲线形状的对应——以回旋体的“基本曲线”为例
问题六十一:三次b样条(b-spline)曲线的控制点和曲线形状的对应——以回旋体的“基本曲线”为例(2)
3.3.13.3 Sphere Sweeping
问题六十三:怎么用ray tracing画sphere sweeping图形
问题六十三:怎么用ray tracing画sphere sweeping图形(2)——teapot
这个过程会要解一元十次方程。
问题六十二:怎么求一元十次方程在区间内的所有不相等的实根
问题六十二:怎么求一元十次方程在区间内的所有不相等的实根(2)——修正“区间端点零值”问题
解一元十次方程的过程可能会用到二叉树。
问题六十四:怎么用C++实现二叉查找树(binary search tree)及其相关操作
问题六十五:二叉查找树的一个应用实例——求解一元十次方程时单实根区间的划分
3.3.14 Constructive solid geometry - CSG
问题六十六:怎么用ray tracing画CSG(Constructive Solid Geometry 构造实体几何)图形
总结《An Introduction to Ray Tracing》全文:点这里http://blog.youkuaiyun.com/libing_zeng/article/details/72603619