我顯然是一個OpenGL poseur。OpenGL ES 2.0 Android渲染單色模型頂點?
我的目標是使用GLES20自定義Android GLSurfaceView控件,該控件可以加載STL資源文件(https://en.wikipedia.org/wiki/STL_(file_format))並將其渲染爲具有固定光照的單一定義顏色。 模型本身將旋轉;照明和顏色將被固定。
聽起來很簡單,但我無法找到一種方法來將我從大量簡單的三角形/立方體示例中學到的東西應用於每張臉上的單獨顏色,並將其應用於具有35k張臉的模型(而不是真正的臉數事項)。
我借來[加載ASCII STL文件]這個相當不錯的代碼...
https://bitbucket.org/saschawillems/opengl-es/src/ed3b324dda4b/stlviewer/?at=master
......並把它改爲Android Studio中運行,並裝載二進制STL文件:
https://bitbucket.org/swooby/opengl-es/src/8bf43e1583c2/stlviewer/?at=binary
渲染的shader代碼只計算使用面法線一種顏色,這將導致一個可愛的彩虹效果有被點燃的錯覺:
https://bitbucket.org/swooby/opengl-es/src/8bf43e1583c238f4397bc469b13cd60dcb34674b/stlviewer/app/src/main/java/de/saschawillems/stlviewer/GLES20Renderer.java?at=binary&fileviewer=file-view-default#GLES20Renderer.java-166
我把它的意思,雖然沒有真正的實際的照明會在這裏。
我必須在這裏丟失一些東西,因爲我認爲我想要做的比從法線計算顏色更簡單;我只是想使用從法線陰影的單個定義顏色繪製對象。我試圖通過將片段顏色設置爲常量來做到這一點,但是這導致非常2D的圖像/輪廓(沒有陰影)。 我相當肯定這需要添加光照,也許這增加了一小部分代碼,但我明顯是這樣的poseur,我甚至不能確定它是一個複雜的方式來做到這一點。
我已經搜遍了所有Google的例子,我想做什麼;我認爲這會很容易找到,但我一直無法找到一個。我只是尋找一個簡單的經典「茶壺」例子,其中的顏色可以定義。 任何人都願意向我展示如何簡單地編寫代碼,或者我可以在哪裏找到我想要做的一個簡單示例?
謝謝!
Pv
謝謝@mikkokoo!我會試一試。在此期間,我一直在使用Rajawali3d庫獲得好運,並計劃對最簡單的原始OpenGLES2代碼進行反向工程,以便渲染點亮的對象並在此處回答我的問題。我覺得很奇怪,我無法輕鬆找到這樣一個簡單的例子。 – swooby