簡體   English   中英

Libgdx 渲染網格問題

[英]Libgdx Issue with rendering mesh

我在渲染網格和使用着色器時遇到問題。 我以前讓它工作過,但我一直在進行一些重構以更好地控制數據,現在它正在做一些時髦的事情。 看起來要么頂點被設置得很奇怪,要么相機矩陣對頂點在屏幕上的渲染位置做了一些奇怪的事情。

我的頂點着色器現在非常簡單。

attribute vec4 a_color;
uniform mat4 u_projTrans;
varying vec4 vColor;

void main() {
    vColor = vec4(.5,.5,.5,.8);
    gl_Position = u_projTrans * vec4(a_position.x,a_position.y, 0.0, 1.0);
}

這是 position 和顏色數據的示例(盡管現在我只是忽略了着色器中的顏色數據)

[960.0, 980.0, -1.0, 980.0, 970.0, -1.0, 980.0, 960.0, -1.0]
[960.0, 980.0, -1.0, 980.0, 960.0, -1.0, 960.0, 960.0, -1.0]

每行是一個三角形,有 3 個頂點(2 個 position 分量,1 個顏色)

這是我設置網格和頂點屬性的方式

mesh = new Mesh(true, withShaderData.length, 0,
                new VertexAttribute(VertexAttributes.Usage.Position, POSITION_COMPONENTS, "a_position"),
                new VertexAttribute(VertexAttributes.Usage.ColorPacked, COLOR_COMPONENTS, "a_color"));
mesh.setVertices(withShaderData);

當我渲染這個網格時,它看起來像這樣。

在此處輸入圖像描述 它應該看起來像一個簡單的洞穴系統,並且應該只填充其中一個紫色方塊。 我知道生成代碼工作正常,因為它剛剛工作,但我一直在重構以讓自己更好地控制網格,現在我無法弄清楚發生了什么。

這張照片顯示了一個放大的版本。 在此處輸入圖像描述

正如您從這張圖片中看到的,邊緣是重疊的,這不應該是我擁有的數據的情況。

有人對為什么它不能正確渲染有任何建議嗎? 我已經確保數據格式正確,至少我認為是這樣。 我確保着色器沒有做任何瘋狂的事情。 但它仍然在奇怪的位置渲染三角形。

任何幫助,將不勝感激。 謝謝你。

啊,我是愚蠢的。 我以為我的格式正確,但我發現我的格式有 1 件事完全錯誤。

暫無
暫無

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

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