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;    
        }  
    } 
    

      

  • 相关阅读:
    201504051930_《移动APP框架——MUI——HTML5》
    201503121644_《ios直播协议相关》
    2010502260926_《avolon》
    201502251333_《avolon作用域》
    201502251308_《fekit》
    使用Eclipse下载CRaSH源代码
    网络流量监控工具
    Map的putAll方法验证
    bat脚本中%~dp0含义解释
    CD管理和检索软件比较
  • 原文地址:https://www.cnblogs.com/redips-l/p/12220830.html
Copyright © 2011-2022 走看看