如果我有一個簡單的OpenGL着色器一次應用於多個立方體,那麼統一值變慢。我已經注意到像glColor3f這樣的東西並沒有減慢它的速度(至少從我嘗試過的速度來看),但是目前使用glColor3f作爲一種破解方式,以便着色器可以讀取gl_Color,我可以使用它來類似於制服用於確定立方體的哪一側正被渲染用於面部獨立的平面照明。渲染之前設置的OpenGL着色器訪問的值是什麼?
我使用的是displaylists,所以我使用了glColor3f,因爲它會烘焙到列表中,並且在創建列表時只是在每張臉前做了不同的顏色。現在,我想在渲染之前設置更多的值(這次不在顯示列表中)。
來自OpenGL的調用可以在着色器中讀取嗎?我需要在渲染之前將0-8的6個整數送入着色器,但我可能稍後設法縮小。
如果您使用現代OpenGL,而不是嘗試將固定功能管道('glColor3f')和過時的API(顯示列表)與新功能(着色器)混合匹配,則這種事情會容易得多。通常,您可以定義屬性,制服,統一緩衝區,紋理,着色器存儲緩衝區等的組合,着色器可以讀取所有這些。這聽起來像你想要的屬性。 –