zoukankan      html  css  js  c++  java
  • 暗黑三泛光算法研究

    GPA过好几次暗黑三的绘制,曾经对其绘制某些物体两遍的操作感到不解,这两天又看了一眼,知道,其是为了绘制GLOW。

    暗黑三中并没有使用浮点精度贴图格式,其泛光计算与UE3的浮点溢出算法不一样。一般的使用8位图的游戏,是全部全屏处理查找亮色来计算泛光区域,我搞过类似的效果给美术查看,不尽人意。瀑布就是发白啊,就是不想泛光啊之类的。

    暗黑三是比较取巧的方法,其首先将需要泛光的物体绘制了两遍,其渲染系统为,第一遍绘制,与大部分的物体的绘制方式一样,只是颜色只写到RenderTarget的RGB通道内(通过设置RenderState的ColorWriteEnable)。对于泛光的物体,有第二遍绘制,此时会往RenderTarget的Alpha通道中绘制遮罩信息。

     

    一、泛光绘制第一步,执行down sample和high-pass filter。通过采样刚才生成的RenderTarget,并通过检测其Alpha通道,将颜色图中颜色计算亮度,将亮度较大的颜色输出到新的四分之一的RT上。

     

    二、对刚才的图像进行高斯Blur

    三、将Blur图像叠加到原图中,公式一般自由发挥。暗黑计算中比较诡异(配合第一步计算中的潜规则),,其Bloom颜色乘以了4.5。。

     

  • 相关阅读:
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    C语言基础知识【作用域规则】
  • 原文地址:https://www.cnblogs.com/hellohuan/p/3478834.html
Copyright © 2011-2022 走看看