签到

05月19日
尚未签到

共有回帖数 0

    板栗

    等级:
    krakatoa是一套volumetric粒子渲染器, 也是第一个实现让粒子以像素的大小来进行高速细节算图的外挂. 但其实在krakatoa推出以前, 有另外一种作法可以渲染粒子, 用在电影超人再起(superman returns)里面. 在场景里面粒子在水晶中必须要进行光迹追踪计算, 光迹追踪计算极小的点, 是一项极為困难的工作, 必须要利用特殊的作法---称為voxel grid计算法. 新版的krakatoa 1.5.0 把当时电影里的作法重新呈现, 用voxel grid来计算粒子, 这个方法有其优缺点, 请看以下:
    优点voxel rendering会產生实体的渲染效果, 不会像一般的点云渲染出来容易出现的错误(例如摩尔纹). 只需要用较少的数量就能產生密度狠高的点云, 只要在每个voxel至少有一颗粒子, 而算出来的结果voxel之间不会有缝隙. 渲染的细节与平滑度可以用voxel size与filter半径来控制, 可以得到和预设的point rendering相当品质的渲染效果. 然而, 当voxel size设定太高, filter半径太大时, 容易计算出模糊的结果. 跟point rendering 比较起来, voxel rendering的方法比较适合多核心运算, 让你更能享受到多核心cpu的优势.缺点至少在目前的版本 通常voxel rendering要比particle rendering算图时间要更久. 儘管算图品质与细节狠接近 point rendering 还是没办法达到跟particle rendering那样一颗一颗粒子的感觉, 因此voxel rendering还是比较适合用来渲染云, 烟与其他细节较少的自然现象2 而particle rendering就适合表现细砂, 尘土与泥沙.particle 与 voxel rendering的比较

    如上图, 你看到同样的几何体利用krakatoa prt volume object充满了粒子 而voxel length為0.5, 1, 2 与 3 第一排影像显示particle rendering的效果, 当粒子密度减少时, 粒子的间距就变宽松了

    上图中显示利用voxel rendering的效果, 而voxel size分别為0.5, 1, 2与 3 filter radius设定為1 (1代表没有filter)这个范例里 当算图的细节减小时voxel rendering方法算出来的密度还是可以维持住, 只是说整体而言变得比较模糊的粒子云. 以particle方法算图时间分别為10.938 | 1.484 | 0.547 | 0.454秒
    以voxel的算图时间分别為6.109 | 3.734 | 1.829 | 1.422秒voxel rendering的参数设置
    以下范例渲染两万颗粒子, 用两盏灯照明, 白色光源在右, 蓝色光源在左下.

    左图与右图的密度分别為5.0/-1, 5.0/0.
    算图时间都是0.2秒改变voxel size

    上面三张图显示用5.0/-1密度 voxel filter radius為1 而voxel size分别為0.5, 1.0 与 5.0来渲染当voxel size等於0.5时, 算出来的结果十分接近particle rendering的效果. 因為在这个范例里面,voxels十分接近particle的算图颗粒大小, 但是就算图时间上缺要花费狠久.当把voxel size增大时, 结果变得狠平滑 而算图时间也变短了
    算图是用dual-quadcore xeon 2.5ghz的cpu 算图时间分别為6.641 | 4.953 | 2.843秒改变出图大小
    voxel rendering跟particle rendering的效能不同, 出图大小对算图时间有狠大影响当解析度比超过一个像素时 voxel renderer就必须要多计算像素以下是用voxel sizes分别為0.5, 1, 2 与 5计算的结果, 但是用不同的解析度出图krakatoa会用接近线性的方式缩放. 实际上, 因為多核心计算的关系, 儘管解析度增大让图面积增加了四倍, 算图时间还是少於原本的四倍, 通常是三倍多.640x480 : 13.922 | 11.141| 3.484 | 2.578 秒.
    1280x960 : 31.874 (2.289x) | 27.391 (2.458x) | 9.718 (2.789x) | 7.532 (2.921x)
    2560x1920 : 103.078 (3.233x) | 90.890 (3.318x) | 33.906 (3.488x) | 27.015 (3.586x)改变voxel filter radius

    上面三张图显示用密度為5.0/0 voxel尺寸為5 但是voxel filter radius分别為,2 和 5当voxel filter增加时voxels变得越来越平滑, 导致计算结果越模糊, 而算图时间也会拉长.算图时间分别為2.843 | 3.656 | 7.294秒voxel rendering 与 particle rendering
    以下的box包含了一百万个粒子 其中在diffuse map里面用了cellular map 以particle mode算图
    第二排显示一样的粒子, 但是把cellular map放在opacity map里面第三排则是同时开啟diffuse 与 opacity map
    第四排则是一百万个粒子分割成10个partition然后分别用particle mode 与voxel mode两种模式来算图

    如果是用particle mode方法的算图时间是2.687 | 2.703 | 2.797 | 26.421秒
    用voxel mode的算图时间分别為8.829 | 8.782 | 8.86秒经由这些比较, 你会发现一般来说particle rendering算图比较快, 需要相当多数量的粒子才能维持跟voxel rendering一样的密度. 某些情况下voxel rendering即便是用了较少的粒子, 还是能达到跟particle rendering一样的算图效果.

    楼主 2015-06-18 16:22 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知