《An Introduction to Ray Tracing》—— 3.3 Ray-Surface Intersections

总结《An Introduction to Ray Tracing》全文:点这里http://blog.csdn.net/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

问题五十:怎么用ray tracing画blobs

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.csdn.net/libing_zeng/article/details/72603619

你可能感兴趣的:(ray,trace,computer,graphics,summary)