龙书9 chapter8 stencil的使用

笔记1:首先是mirror例子的体会。

大体流程是:

                    1.绘制普通物体;清空每个像素的stencil    2.设置镜面区域stencil值为参考值1   3.判断render后每个像素点的stencil值是否为1,满足条件则绘制出teapot的图元

需要注意的是:

                    1.绘制stencil区域为1时,我们的目的只是为了像素stencil的修改,其他值不变;所以:首先禁止zBuffer的写,其次把此次绘制设置不可见,也就是利用混合,设置 本次源头alpha为zero。

                     2.在绘制镜像teapot时,由于在carmen观察下镜像的z值小于mirror,避免深度z的遮挡不绘制,清空zBuffer。其次让镜像看起来和mirror融合在一起效果。

                     3.背面消隐模式的修改。 默认CWW模式,即顺时针绘制,但镜像内的teapot正好是背面消隐的部分,所以要把CULL Mode修改成CW。

数学方面:求出点v对于平面np+d=0对称的镜像点坐标

 

可得一点对于平面的镜像矩阵是:

原文地址:https://www.cnblogs.com/dust-fly/p/4155900.html