https://developer.nvidia.com/content/interactive-order-independent-transparency

Correctly rendering non-refractive transparent surfaces with core OpenGL
functionality [9] has the vexing requirements of depth-sorted traversal and nonintersecting polygons. This is frustrating for most application developers using OpenGL
because the natural order of scene traversal (usually one object at a time) rarely satisfies
these requirements. Objects can be complex, with their own transformation hierarchies.
Even more troublesome, with advanced graphics hardware, the vertices and fragments of
objects may be altered by user-defined per-vertex or per-fragment operations within the
GPU. When these features are employed, it becomes intractable to guarantee that
fragments will arrive in sorted order for each pixel. The technique presented here solves
the problem of order dependence by using a technique we call depth peeling. Depth
peeling is a fragment-level depth sorting technique described by Mammen using Virtual
Pixel Maps [7] and by Diefenbach using a dual depth buffer [3]. Though no dual depth
buffer hardware fitting Diefenbach’s description exists, Bastos observed that shadow
mapping hardware in conjunction with alpha test can be used to achieve the same effect
[2]. Using this variation of depth peeling, each unique depth in the scene is extracted into
layers, and the layers are composited in depth-sorted order to produce the correctly
blended final image. The peeling of a layer requires a single order-independent pass over
the scene. Figure 1 contrasts correct and incorrect rendering of transparent surfaces.

The goal of this document is to enable OpenGL developers to implement this
technique with NVIDIA OpenGL extensions and GeForce3 hardware. Since shadow
mapping is integral to the technique a very basic introduction is provided, but the
interested reader is encouraged to explore the referenced material for more detail.

NV OIT algorithm : Depth peeling is a fragment-level depth sorting technique的更多相关文章

  1. Single Depth peeling 顺序无关渲染(OIT)

    什么是顺序无关渲染 在3D渲染中,物体的渲染是按一定的顺序渲染的,这也就可能导致半透明的物体先于不透明的物体渲染,结果就是可能出现半透明物体后的物体由于深度遮挡而没有渲染出来.对于这种情况通常会先渲染 ...

  2. depth peeling实现半透明

    aaarticlea/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aH

  3. leetcode 104. Maximum Depth of Binary Tree 111. Minimum Depth of Binary Tree

    104: class Solution { public: int maxDepth(TreeNode* root) { if(root == NULL) ; int left = maxDepth( ...

  4. Wikipedia : OIT history

    http://en.wikipedia.org/wiki/Order-independent_transparency Order-independent transparency From Wiki ...

  5. [ZZ] KlayGE 游戏引擎 之 Order Independent Transparency(OIT)

    转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2233 http://dogasshole.iteye.com/blog/1429665 ht ...

  6. Intel OIT demo

    https://software.intel.com/en-us/blogs/2013/07/18/order-independent-transparency-approximation-with- ...

  7. 使用Depth Texture

    使用Depth Textures: 可以将depth信息渲染到一张texture,有些效果的制作会需要scene depth信息,此时depth texture就可以派上用场了. Depth Text ...

  8. OIT

    https://matthewwellings.com/blog/depth-peeling-order-independent-transparency-in-vulkan/ depth peeli ...

  9. Depth Buffer

    Up until now there is only one type of output buffer you've made use of, the color buffer. This chap ...

随机推荐

  1. javac编译提示编码GBK的不可映射字符

    使用命令行javac命令编译java文件, 提示错误:编码GBK的不可映射字符. 在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe会获得我们操 ...

  2. 在WINDOWS上通过VAGRANT练习ANSIBLE

    有点曲折,但没办法,还要通过VAGRANT里的ANSIBLE建DOCKER呢.. VagrantFile # -*- mode: ruby -*- # vi: set ft=ruby : Vagran ...

  3. Java Hour 29 Weather ( 2 ) Maven

    有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 29 Weather 界面 数据源采用上次取得的杭州天气的json. ...

  4. Oracle多个服务各代表什么作用(转)

    在Windows 操作系统下安装Oracle 9i时会安装很多服务——并且其中一些配置为在Windows 启动时启动.在Oracle 运行在Windows 下时,它会消耗很多资源,并且有些服务可能我们 ...

  5. HDU 4362 Dragon Ball 贪心DP

    Dragon Ball Problem Description   Sean has got a Treasure map which shows when and where the dragon ...

  6. loj 1034(最小点基)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25911 思路:强连通缩点,在新图中找入度为0的点的个数即可. #i ...

  7. C++primer学习笔记(二)——Chapter 4

    4.1  Fundamentals 1.Basic Concepts (1)操作符分为一元,二元或者三元操作符: (2)复杂的表达式中含有很多操作符时: 规则一:分为不同的级别,级别高的先运行: 规则 ...

  8. D6 I

    I - I Time Limit:1000MS     Memory Limit:2048KB     64bit IO Format:%lld & %llu Submit Status Pr ...

  9. CodeForces Round 196

    Div2-A 题意:有m个拼图,每个拼图有f[i]块.从中选出n个,使得 (其中块数最大减块数最小的值) 最小.思路:把f按从小到大的顺序排序,然后顺次尝试. #include<stdio.h& ...

  10. BZOJ3563 : DZY Loves Chinese

    想法题,由于K是加密的,但是通过读入我们可以自己数出来这一行有几个数, 所以可以直接反解出之前回答为连通的个数 至于最后一个询问就用并查集暴力回答 var n,i,m,s,k,j,q : longin ...