• 龙书9 chapter8 stencil的平面阴影的实现(planer shadow)


    笔记:1.向量乘法不满足交换律; a*b*c和a*(b*c)不同。

    planer shadow关键点:1.数学方面:射线与平面的交点坐标是多少?   2.运用stencil标记防止阴影在平面的二次绘制

    1.射线与平面交点的矩阵:MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/bb205364%28v=vs.85%29.aspx

    推导过程参考,图片。   来源是:http://www.opengpu.org/forum.php?mod=viewthread&tid=15214&highlight=D3DXMatrixShadow

    我推导时一直有问题,1.原来是point 阴影点坐标(x,y,z,K)第四位为k也是可以的,不一定要是1,还有就是verctor3和verctor4有时搞混淆

    其实下图中的推导和MSDN上的表示有些不同,这里的向量N是(nx,ny,nz,0),而不是(nx,ny,nz,d)...

    至于流程:

    防止多重绘制阴影方面:首先像素stencil pass设置成与ref相同的话成功,并修改为1,这样的话此像素模板值已经修改,第二次就不会pass此像素,则不会再绘制此像素;    其次注意不需要把影子数据写入zbuffer内,    第三要注意与平面的融合

    1.模板缓存和深度缓存共享一个表面存储区,两者是同时创建的;

    2.模板可以阻止某些像素的光栅化。

  • 相关阅读:
    log4j配置详解
    elasticsearch6.0版本安装head插件
    JAVA笔记-如何将百万级数据高效的导出到Excel表单
    抽象方法为什么不能被private与static修饰
    vue利用promise实现连续弹框
    vue代码片段
    h5元素高度超出屏幕但不滚动
    css3动画
    vue 引入静态图片404
    ios windows.open()不能打开
  • 原文地址:https://www.cnblogs.com/dust-fly/p/4161823.html
Copyright © 2020-2023  润新知