2016-07-29 71 views
-1

我有一個.obj紋理網格。我正在使用OpenSceneGraph來加載和顯示我的網格。OpenSceneGraph照亮場景

osg::Node * cytBuilding = osgDB::readNodeFile("model/level_2_0_0.obj"); 
    osg::Group * root = new osg::Group(); 
    root->addChild(cytBuilding); 
    osgViewer::Viewer viewer; 
    viewer.setSceneData(root); 
    viewer.realize(); 
    viewer.setCameraManipulator(new osgGA::TerrainManipulator()); 
    while(!viewer.done()) 
    { 
     viewer.frame(); 
    } 

我得到的顯示像 enter image description here

這是太暗。我試圖添加自己的燈光,它有點幫助。但它不是很明亮。如何增加渲染視圖的亮度。

我知道這取決於材料/紋理屬性。如何操縱它?

我還想補充一點,因爲我加載網我得到以下信息印刷

*** line not handled *** :map_kS 
*** line not handled *** :map_Ns 
*** line not handled *** :map_bump 
*** line not handled *** :bump 
*** line not handled *** :map_opacity 
*** line not handled *** :map_d 
*** line not handled *** :refl 

什麼是一些其他方法?

+0

顯示你的光! – eldo

+0

我沒有設置我的照明,使用系統照明。任何指向像照明一樣設置Sun的指針都是我需要的。 – mkuse

回答

0

因爲我無法辨別你嘗試了哪個燈,我仍然會在該方向給出答案。太陽如光是定向光。你可以通過標準的光源在OSG中創建一個,但是你不會給它任何位置。最簡單的方法可能就是爲漫反射,鏡面反射和環境組件分配顏色。亮度取決於您選擇的顏色。

也許看看這個問題: Create Sun light source in OSG

+0

我確實嘗試過,但圖像仍然太暗。我怎麼能說更明亮的太陽源? – mkuse

+0

您可以選擇全部爲白色的顏色成分,或者改變光線落在您表面上的角度(通過改變光線的方向)。 否則,爲您的對象創建一個材質,在其中設置顏色並將其作爲屬性添加到它們的狀態集(但我不確定,但是,如果標準是明亮的白色,我目前無法嘗試)。 – Tare