2012-06-30 11 views
0

我遇到了我的頂點着色器問題。如圖所示輸出傾斜圖像。在Android上檢測有問題的GLSL實現

在我的Galaxy S(2.3.6 /薑餅)上它偏斜。在我母親的Iconia上,它完美地工作。我需要能夠檢測到buggy的實現。我正在考慮將該圖像渲染到緩衝區並檢查渲染是否正確。我認爲最好的檢測方法是?

我已經對這些頂點着色,使得red = x,green = y和blue = z從範圍[-1,1]轉換爲[0,1]。這樣我就可以看到頂點從哪裏轉換而來。 Vertex Shader Image

接下來是使用OpenGLES 1.0渲染的相同項目的圖像。這一個應用了紋理,因爲它需要更多的努力來爲第一個圖像着色。正如你所看到的,看起來是正確的。 enter image description here

+0

Iconia上的Android版本是什麼? – t0mm13b

+3

我認爲,僅僅因爲您的多維數據集沒有像您期望的那樣出現,就稱整個glsl實現有缺陷爲時過早。你在檢查glGetError嗎?你的代碼是什麼樣的? – Tim

+0

@ t0mm13b:這是3.2.1 –

回答

1

嗯,這裏是我如何解決它:

我創建的函數

mat4 mmult(mat4 a, mat4 b){ 
    return a*b; 
} 

則改爲:

current *= animMatrix; 

到:

current = mmult(current, animMatrix); 

它工作。

想這太:

current = current * animMatrix; 

但它也返回了錯誤的圖像。

我對此沒有合理的解釋,但它似乎是修復。 任何意見,爲什麼將不勝感激。