0
我試圖渲染基本三角形,即時建立視象這樣:使用OpenGL ES的怪座標
GL.Viewport(0, 0, (uint)Width, (uint)Height);
林頂點着色器:
precision highp float;
attribute highp vec2 a_pos;
attribute vec3 a_col;
varying vec3 v_col;
void main()
{
v_col=a_col;
gl_Position = vec4(a_pos,0,0);
}
和片段着色器:
varying highp vec3 v_col;
void main()
{
gl_FragColor = vec4(v_col,0);
}
但是當我嘗試使用簡單的座標繪製像
0,0,0
0,1,0
1,0,0
屏幕右上部分被填滿。
我必須用座標的極端範圍,以在屏幕上得到三角:
0,0,0
0,0.00000000000000000005f,0
0.00000000000000000005f,0,0
我不知道爲什麼。我使用C#所以浮動應該是32位像opengl es的用途。 視口設置正確。
從我的理解,我指定座標在規範化的設備座標系統,在兩個軸上從-1到1。我不知道爲什麼這麼緊張。
請注意,如果使用嚴格執行標準的GLSL編譯器(其中一些供應商執行,其他供應商不執行),則此着色器代碼不會與ES 2.0一起編譯。整數常量不會自動轉換爲浮點型。因此,無論您目前使用「0」還是「1.0」,而不是「1」,都必須使用「0.0」。 –