Làm cách nào tôi có thể lặp lại lựa chọn bản đồ kết cấu?Làm thế nào để sử dụng GL_REPEAT để lặp lại chỉ một lựa chọn của một bản đồ kết cấu? (OpenGL)
Ví dụ, sprite của tôi (lựa chọn) nằm trong kết cấu phối:
GLfloat textureCoords[]=
{
.1f, .1f,
.3f, .1f,
.1f, .3f,
.3f, .3f
};
Sau đó, tôi muốn nhắc lại rằng sprite N lần để một dải tam giác (hoặc quad) được xác định bởi:
GLfloat vertices[]=
{
-100.f, -100.f,
100.f, -100.f,
-100.f, 100.f,
100.f, 100.f
};
Tôi biết nó có liên quan gì đó với GL_REPEAT
và textureCoords sẽ vượt qua phạm vi [0,1]
. Đây tuy nhiên, không hoạt động: (cố gắng để lặp lại N = 10)
GLfloat textureCoords[]=
{
10.1f, 10.1f,
10.3f, 10.1f,
10.1f, 10.3f,
10.3f, 10.3f
};
Chúng tôi đang nhìn thấy bản đồ kết cấu đầy đủ của chúng tôi lặp đi lặp lại ...
Làm thế nào tôi có thể làm điều này một cách đúng đắn?
Nhờ "thư giãn", "Jimmy J" và "TrayMan" cho những đóng góp của bạn. Tôi đã bình chọn câu trả lời của bạn và biên soạn câu trả lời này từ câu trả lời của bạn, giờ đây mô tả rất rõ những gì đang diễn ra. – Kriem
> "hoặc viết chương trình đỉnh GLSL để ánh xạ tọa độ kết cấu một cách thích hợp." Thay vào đó, phải có chương trình * đoạn *. –
Điều đó phụ thuộc, Sarge. Sử dụng kỹ thuật tessellation là đỉnh hơn đoạn. Và bạn thường có thể tối ưu hóa bằng cách không thực hiện các tọa độ kết cấu tính toán trong đổ bóng kết cấu - đặc biệt với kết xuất trả lại dựa trên xếp kề. –