有人可以幫助我或讓我朝着正確的方向在GLSL代碼中實現DirectX的基本FVF嗎?我完全理解如何創建一個程序,應用VBO等等,但是我在着色器的實際創建中遇到很大困難。即:DirectX類似FVF的GLSL着色器
transformed+lit (x,y,color,specular,tu,tv)
lit (x,y,z,color,specular,tu,tv)
unlit (x,y,z,nx,ny,nz,tu,tv) [material/lights]
有了這個,我會得到足夠的實現更有趣的着色器。
所以,我不是要求一個機制來處理FVF。我只是要求着色器代碼給出適當的流。我明白,未點亮和亮起的版本依賴於傳遞矩陣,我完全理解了這個概念。我只是無法找到顯示這些概念的着色器示例。
這個概念在OpenGL中並不存在。很久以前,有一些非常不靈活的交錯格式,但他們從未接近D3D的FVF的複雜程度,其頂點屬性用於頂點混合,鏡面反射等等。您最好放棄FVF並採用真正的着色器爲中心的頂點緩衝系統。即使在D3D9中,FVF也不贊成使用[頂點聲明](http://msdn.microsoft.com/en-us/library/windows/desktop/bb206335(v = vs.85).aspx)。如果您希望跨API可移植性,這是您應該定位的技術。 –
正如我剛纔所說的,[glInterleavedArrays(...)'](http://www.opengl.org/sdk/docs/man2/xhtml/glInterleavedArrays.xml)是OpenGL最接近FVF的東西,而且在現代OpenGL中甚至不能使用頂點着色器。 –
我正在尋找這些FVF的GLSL中的着色器實現。 –