zoukankan      html  css  js  c++  java
  • 硬件遮挡查询

    先放下代码,未完待续。

     TraversalStack.Push(hierarchy.Root);
    
     while ( not TraversalStack.Empty() or not QueryQueue.Empty() ) {   
        //--PART 1: process finished occlusion queries   
        while (not QueryQueue.Empty() and [ResultAvailable(QueryQueue.Front()) or TraversalStack.Empty()] ) {    
            node = QueryQueue.Dequeue();     
            // wait if result not available    
            visiblePixels = GetOcclusionQueryResult(node);   
            if (visiblePixels > VisibilityThreshold) {     
                PullUpVisibility(node);       
                TraverseNode(node); 
            }  
        }    
        //--PART 2: hierarchical traversal    
        if ( not TraversalStack.Empty() )  {    
            node = TraversalStack.Pop();    
            if ( InsideViewFrustum(node) ) {      
                // identify previously visible nodes      
                wasVisible = node.visible and (node.lastVisited == frameID - 1);      
                // identify nodes that we cannot skip queries for       
                leafOrWasInvisible = not wasVisible or IsLeaf(node);     
                // reset node's visibility classification    
                node.visible = false;   
                // update node's visited flag   
                node.lastVisited = frameID;  
                // skip testing previously visible interior nodes  
                if ( leafOrWasInvisible ) {      
                    IssueOcclusionQuery(node);     
                    QueryQueue.Enqueue(node);    
                }        
                // always traverse a node if it was visible      
                if ( wasVisible ) TraverseNode(node);      
            }    
        }  
    }  
    
    TraverseNode(node) {   
        if ( IsLeaf(node) ) Render(node);   
        else TraversalStack.PushChildren(node);  
    }    
    
    PullUpVisibility(node) {    
        while (not node.visible) {     
            node.visible = true;    
            node = node.parent;    
        }  
    } 
    

      

  • 相关阅读:
    hdu3746Cyclic Nacklace(KMP)
    hdu2087剪花布条(KMP)
    cellspacing cellpadding
    3行3列表格 table实现,div+css实现
    自动办公系统
    (转载)互联网协议入门(二)
    (转载)互联网协议入门(一)
    去掉考勤
    第二次装OA系统
    Windows 7系统下局域网文件共享设置方法
  • 原文地址:https://www.cnblogs.com/redips-l/p/12220830.html
Copyright © 2011-2022 走看看