Ben opengl es 2 kullanıyorum ve dokulu dörtlü işlemek için optimize edilmiş bir gölgelendirici oluşturmaya çalışıyorum.Opengl/glsl, dörtlü çizim için bir gölgelendirici yazmaya çalışıyor ancak ekranın en boy oranında değişiklikleri nasıl gerçekleştireceğinden emin değilsiniz.
vert shader: Benim programda
attribute float vertIndex;
uniform vec4 verts[4] = vec4[](vec4(-1,-1,0,1), vec4(-1,1,0,1), vec4(1,1,0,1), vec4(1,-1,0,1));
uniform vec2 texCoords[4] = vec2[](vec2(0,0), vec2(0,1), vec2(1,1), vec2(1,0));
uniform vec2 size(0,0); //size of the quad about to be rendered
uniform vec2 translation(0,0); //position of the quad about to be rendered
varying vec2 TexCoordOut;
void main() {
vec2 vert = verts[int(vertIndex)];
vert.x *= size.x;
vert.y *= size.y;
vert.x += translation.x;
vert.y += translation.y;
gl_Position = vert;
TexCoordOut = texCoords[int(vertIndex)];
}
ben x hep -1,1 olacak ve y ekranın en boy oranına göre ayarlanabilir, böylece ayarlanmış ekran sınırlar içermez. Sorun, glsl'deki ekran sınırlarının her zaman -1,1,1, -1 olmasıdır. Bunu nasıl halledebilirim? Ayrıca, indeksler için imzasız chars yerine şamandıralar kullanıyorum çünkü vert gölgelendiriciye mürekkepleri aktarmaya çalıştığımda düzgün çalışmadı. Opengl es 2 ile bunu yapmak için bir çalışma yolu var mı?
Teşekkürler :).
Teşekkürler :). +1'e 15 itibar puanına ihtiyacım var diyor, bunu yapamam. Afedersiniz. – Holden