2017-04-24 57 views
0

我在OpenGL 3.3中編寫我的第一個3D程序,我發現爲不同的物體設置不同的材質時會出現問題。我設法繪製3個球體(頂點存儲在一個VAO中,然後翻譯和繪製),並使用制服,我從頂點着色器中改變了它們的外觀。現在問題是球體應該有不同的材料,但我不知道如何爲每個球體設置不同的制服。什麼是最好的方式來做到這一點?每個物體材質的OpenGL

+0

材質在某種程度上等價於着色器程序。你可以綁定不同的紋理和制服,並簡單地GlUseProgram()它渲染你的對象。因此在渲染每個球體之前綁定程序並統一你的材質屬性(即紋理等) – mutex36

回答

0

gl_VertexID可以使用。但最好在這種情況下,我認爲是standandalone vbo。

https://rocketgit.com/user/bowler17/gl/source/tree/branch/wrench/blob/t.c

+0

獨立vbo是什麼意思?你是否建議我應該爲每個球體使用一個vbo?然後我應該將材料存儲在vbo中? – RobiNoob

+0

否一個頂點的墊子 – 2017-04-24 08:07:05

+0

像vec4一樣具有墊子係數。像vbo與法線 – 2017-04-24 08:18:38