zoukankan      html  css  js  c++  java
  • depth peeling的实现和应用

    最近在在实现volume rendering和isosurface的mixed rendering,仔细研究了depth peeling以及相关的应用。

    detph peeling基于z-buffer的多层渲染,每一层渲染是基于上一层渲染的深度值基础上进行的。

    它是由Mamman 1989年在Transparency and antialiasing algorithms implemented with the
    virtual pixel maps technique中
    提出的。Everitt在2001年给出该方法在GPU上的实现,文章是Interactive order-independent transparency.

    在这之后,该方法得到大量的应用。首先是在03年,Zoltan Nagy将其用到基于纹理的体会制中绘制多层等值面,Depth-Peeling for Texture-Based Volume Rendering

    05年Govindaraju在I3D05提出Vis-Sort来实现depth peeling的效果。该方法假设没有交叉图元。Interactive Visibility Ordering and Transparency Computations among
    Geometric Primitives in Complex Environments

    05年Jan Fischer该方法直接绘制基于mesh表示的等值面,并用defered shading来实现illustrative 效果。Illustrative display of hidden iso-surface structures

    该文章是将GPU的depth peeling的geometry pass与image processing pass相结合。

    另外Steven05年提出了用K-buffer对无规则的多边形排序,实现无结构体会制。Hardware-Assisted Visibility Sorting for Unstructured Volume Rendering

    06年Fabio用depth peeling实现了gpu-based tiled ray casting,GPU-based Tiled Ray Casting using Depth Peeling

    06年Baoquan Liu 和liyi Wei利用fragment sort做多层depth peeling,从而减少depth peeling需要的pass.

    07年Bavoil Louis “Multi-Fragment Effects on the GPU using the k-Buffer”推广了Steven05年的k-buffer,利用frament的read-modivy-write操作,使multi-pass的depth peeling变成一个pass 成为可能。同时该文给出了未来GPU上如何实现该方法的方案。

    07年Ivan的学生用depth peeling实现了volume 和mesh的混合绘制,http://www.ii.uib.no/vis/teaching/vis-project/2007-fall/nes/index.html

    08年Yoshihiro Kanamori等人利用depth peeling来渲染metaballs,发表在EG08上。GPU-based Fast Ray Casting for a Large Number of Metaballs

    08年Nvidia SDK给出了dual depth peeling的实现。

     在grpahic hardware08上,有一篇Coherent Layer Peeling for Transparent High-Depth-Complexity Scenes。目前还没有认真看

    Robust Soft Shadow Mapping with Backprojection and Depth Peeling 将depth peeling用到shadow map中

    http://www.sci.utah.edu/~bavoil/research/shadows/melissa/

    在SIGGRAPH07年上, Kevin Myers 和Louis Bavoil提出了Stencil Routed A-Buffer,用A-buffer来实现depth peeling,速度提高了8倍。不过我还没有实现

    对于VIS而言, depth peeling不仅能绘制透明结构,而且能利用defered shading产生illustrative 效果。

  • 相关阅读:
    插入排序Java实现
    WMI控制IIS(2)
    WMI控制IIS
    C语言中用qsort()快速排序
    list_for_each引起的问题
    c++数组地址
    Valgrind 使用简单说明检查内存泄露
    firefox 在UBUNTU下编译
    内存泄漏检测umdh
    ubuntu GIT 安装与使用
  • 原文地址:https://www.cnblogs.com/cloudseawang/p/1351726.html
Copyright © 2011-2022 走看看