1
我渲染了很多軸對齊的3D立方體。每個立方體可以通過其立方體和/或顏色的中心的位置而彼此不同。這是我怎麼樣,使其現在OpenGL無着色器的實例化渲染
for (i = 0; i < num_of_cubes; ++i) {
glTranslatef(center[i].x, center[i].y, center[i].z);
DrawCube();
}
我DrawCube()只是呈現對應於立方體的每邊6輛四輪摩托車,使用glDrawElements
存儲在VBO頂點數據。 glVertexPointer和glColorPointer用於設置屬性元素。
這可行,但我想通過使用可能glDrawElementsInstanced()使用Instanced rendering。但是由於項目的一些遺留代碼,我不得不使用固定功能管道。
是否可以使用固定管道進行此操作?如果是,我該如何告訴我的GPU使用voxel中心和顏色的實例vbo。
您可以使用兼容性配置文件並僅在需要它們時(在新代碼中)切換着色器,然後再次關閉它們。這就是爲什麼有兼容性配置文件,使轉換更容易。 – datenwolf
謝謝。這花了我一些時間,但我轉向兼容性配置文件 – iNFINITEi