簡體   English   中英

自定義頂點屬性GLSL

[英]Custom Vertex Attributes GLSL

我想在着色器中創建幾個vec4頂點屬性。 我已經做了大量的谷歌搜索工作,但是我似乎無法為我想做的事情找到一致的信息。

我的目標是將蒙皮移至GPU,因此我需要每個頂點的骨骼和權重列表,因此為什么要使用頂點屬性。 我有2個代表該數據的浮點數組。 基本上是這樣的:

    weightsBuffer = new float[vSize*4];
    indexesBuffer = new int[vSize*4];

我無法始終找到的部分是如何上傳它們並在着色器中使用它們。 明確地說,我不想上傳所有的位置,法線和紋理坐標數據,我已經在使用顯示列表,並且出於一些不相關的原因決定繼續使用它們。 如何創建緩沖區並正確綁定它們,以便可以使用它們?

謝謝。

綁定骨骼的重量和索引與綁定位置數據沒有什么不同。 假定在緩沖區中正確生成了數據,則可以使用glBindAttribLocation將頂點流中的屬性索引綁定到着色器變量,並使用glVertexAttribPointer定義頂點數組(並且不要忘記glEnableVertexAttribArray )。

確切的代碼可能會有所不同,具體取決於您使用的是VAO和VBO(還是僅使用客戶端緩沖區)。 如果需要更具體的答案,則應提供代碼和着色器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM