Xin lỗi tôi sẽ viết lại câu hỏi với hy vọng sẽ rõ ràng.Vị trí mảnh vỡ GLSL
Trong mã .cpp của tôi, tôi tạo một danh sách các tứ, một vài trong số chúng có cờ, trong trình đổ bóng pixel tôi kiểm tra xem cờ này có được đặt hay không, nếu cờ không được đặt, số bốn sẽ được tô màu ví dụ, nếu cờ được đặt, tôi muốn quyết định màu của từng pixel, vì vậy nếu tôi cần tô màu một nửa của cờ được gắn cờ màu đỏ và nửa còn lại màu xanh lam, tôi có thể làm một cái gì đó như:
if coordinate in quad < something color = red
else colour = blue;
Bằng cách này, tôi có thể nhận được một nửa số màu có màu xanh dương và một nửa màu đỏ, hoặc tôi có thể quyết định vị trí đặt màu đỏ hoặc nơi đặt màu xanh.
Hãy tưởng tượng tôi đã có một quad 50x50 pixel
[frag]
if(quad.flag == 1)
{
if(Pixel_coordinate.x<25) gl_fragColor = vec4(1.0, 0.0, 0.0, 1.0);
else gl_fragColor = vec4(0.0, 1.0, 0.0, 1.0);
}
else
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
Trong trường hợp này, tôi hy vọng rằng một quad với cờ sẽ nhận được hai màu sắc mỗi khuôn mặt. Tôi hy vọng tôi đã cụ thể hơn bây giờ.
cảm ơn.
Chỉ cần thêm một cái gì đó tôi không thể sử dụng bất kỳ kết cấu nào.
Ok tôi làm điều này bây giờ:
Mỗi quad đã 4 kết cấu phối hợp (0,0), (0,1), (1,1), (1,0);
tôi cho phép các kết cấu tọa độ sử dụng:
glTexCoordPointer(2, GL_SHORT, sizeof(Vertex), BUFFER_OFFSET(sizeof(float) * 7));
[vert]
varying vec2 texCoord;
main()
{
texCoord = gl_MultiTexCoord0.xy;
}
[frag]
varying vec2 texCoord;
main()
{
float x1 = texCoord.s;
float x2 = texCoord.t;
gl_FragColor = vec4(x1, x2, 0.0, 1.0);
}
tôi nhận được lúc nào cũng là màu vàng nên x1 = 1 và x2 = 1 hầu như luôn luôn và một số quad là màu vàng/xanh lá cây.
Tôi cho rằng kết cấu tọa độ thay đổi trong trình đổ bóng phân đoạn và vì vậy tôi sẽ nhận được độ dốc, tôi có sai không?
Để * "hiểu" * vị trí nào (và do đó cái gì * "nửa" * của hình học)? Vị trí không gian màn hình? Thế giới không gian? Vị trí không gian xem? Cái nào? –
Vị trí địa phương là gì, ý của bạn là vị trí của quad trong không gian thế giới hay cái gì? Điều gì có nghĩa là * "tô màu các điểm ảnh một nửa và một nửa" *? Việc sử dụng cờ này có bất kỳ ý nghĩa nào đối với câu hỏi thực tế (có nghĩa là nó là lá cờ này bạn muốn tính toán động bằng cách nào đó dựa trên * "hiểu vị trí" *)? Tôi có một thời gian thực sự khó khăn để hiểu những gì bạn thực sự muốn đạt được. –