osg實現透明化

在osg中對對象設置透明化(注意最後一行渲染級別的問題):

osg::StateSet* stateset = _geometryFeild->getOrCreateStateSet();
  //Alpha混合開啓
  stateset->setMode(GL_BLEND,osg::StateAttribute::ON);
  //取消深度測試
   stateset->setMode( GL_DEPTH_TEST, osg::StateAttribute::OFF  );
  stateset->setMode( GL_LIGHTING, osg::StateAttribute::OFF | osg::StateAttribute::PROTECTED );
  stateset->setRenderBinDetails(11, "RenderBin");//設置渲染優先級:這個函數有兩個傳入參數,整型數表示渲染的順序,以0 爲標準,小於0 的渲染狀態集(亦即包含了這個StateSet 的StateGraph 狀態節點)將排列在前(個人認爲是在最前繪製,顯示到屏幕後面),大於0 的則排列在後(最後繪製,顯示在屏幕最前面);字符串參數“RenderBin”或者“DepthSortedBin”作爲名稱時有特殊含義,其中“RenderBin”表示在渲染樹中新建分支進行渲染,“DepthSortedBin”表示新建分支,並且所有要渲染的數據將按照深度值降序進行排序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章