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”。 –