我發現它令人驚訝的令人沮喪的,它是如此難以找到sampler2d陣列如OpenGL多個Sampler2D(數組)示例?
uniform sampler2D myTextureSampler[5];
如何將一個存儲這個統一位置的例子?:
gl.GetUniformLocation(program, "myTextureSampler")
會一個簡單的使用:
gl.GetUniformLocation(program, "myTextureSampler[0]")
gl.GetUniformLocation(program2, "myTextureSampler[2]")
一個如何去使用多重紋理像這樣:
gl.BindTexture(gl.TEXTURE_2D, 1)
gl.BindTexture(gl.TEXTURE_2D, 2)
等。
gl.ActiveTexture(gl.TEXTURE0)
gl.ActiveTexture(gl.TEXTURE1)
等。
注意:這個代碼是不是純C++的OpenGL。只是尋找關於如何完成的基本概念。
傳遞一個簡單的例子,獲得一個sampler2d數組的統一位置會很好。有沒有人有這方面的經驗?
明顯的答案有什麼問題? GL側的[統一數組工作]方式(https://www.opengl.org/wiki/Uniform_(GLSL)#Uniform_management)不會因爲使用像'sampler2D'這樣的不透明類型而改變。 –
以上都不是答案。他們只是猜測我認爲它會起作用的方式。目前,我沒有太多的成功讓它工作。看起來像一個簡單的方法來獲得簡單的堆棧溢出點,並幫助了很多人:) – efel