2014-05-01 131 views
0

openFrameworks存在問題。某些3D模型可以正確顯示,但像沒有紋理的椅子這樣的基本3D模型塗成白色,沒有陰影。只繪製模型的線框即可。這裏是一個picture of the result我得到:Open GL ES渲染只顯示3D模型的白色圖像

enter image description here

椅子模型來自Sketchup的倉庫,並已轉化爲DAE。該模型在Xcode和Finder中正確顯示。

我不是openGL的專家,任何幫助將不勝感激。

回答

0

可能您正在使用的應用程序/示例不處理頂點顏色,或者無法以與您的導出模型兼容的方式處理它們。

如果確實沒有紋理的模型有問題並且紋理一切都正常,那麼您的簡單解決方案將是爲SketchUp中沒有的模型烘焙紋理。

如果您想修復代碼,您首先需要知道您是否在使用OpenGL ES 1.1或2.0? (在應用程序啓動時應打印到終端 - 默認值爲1.1,啓用2.0通常使用呼叫ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);完成)

在OpenGL ES 2.0中,定位頂點和着色/紋理全部在着色器中完成,以修復您需要的找到他們。它們通常放在openFrameworks項目的bin/data目錄中,並在視頻卡上編譯,無需自己編譯。對於模型而言,所有白色都可能表明您沒有在需要的地方正常化值。 (例如,預期值可能介於0和1之間,但您的值可能介於0和255之間)。

在OpenGL ES 1.1中沒有着色器 - 使用頂點顏色的着色應該可以直接使用,但標準化仍然適用。

另一種選擇是,'white'只是模型的默認顏色,並且根本沒有使用頂點顏色數據 - 可能是因爲它不在DAE文件中,或者因爲它沒有正確處理。