2015-01-05 12 views

Trả lời

4

Số tọa độ, toạ độ bình thường và kết cấu có thể khác nhau vì hai đỉnh có thể chia sẻ tọa độ trong một không gian nhưng khác nhau ở vị trí khác.

Hãy suy nghĩ của một hộp (8 verts) bằng cách sử dụng 6 hình chữ nhật khác nhau (một cho mỗi khuôn mặt) trong không gian kết cấu -> đó là 6 * 4 = 24 tọa độ kết cấu.

Chỉnh sửa: Bản đồ uv chung cho một hộp trông giống như dưới đây (14 tọa độ kết cấu). Tôi đã chú thích ba đỉnh khác nhau: A, BC. Lưu ý rằng trong một hộp, mỗi đỉnh nằm cạnh ba mặt phải đúng trong bản đồ tia cực tím. C nhận tọa độ kết cấu liền kề với ba khuôn mặt, nhưng B phải được sao chép và A tăng gấp ba lần để làm như vậy.

Box-uv

+0

Cảm ơn BeyelerStudios, không chắc chắn nếu tôi hiểu ý của bạn là gì. Một hộp có 8 điểm 3D (đỉnh của chúng tôi). Các kết cấu tôi áp dụng phù hợp cho tất cả 6 hình dạng. Trong trường hợp này một khuôn mặt được xác định bởi 4 đỉnh. Nếu tôi muốn tìm các giá trị rgb cho một đỉnh tôi có thể chọn nhiều hơn một? Xin lỗi, tôi nghĩ rằng tôi đã cho bạn sai: ( – Chrizzldi

+0

Ah yeah, tôi hiểu bạn! Thực tế, rằng các kết cấu không cần phải được trong một mảnh kết quả trong vtextures hơn đỉnh. Cảm ơn bạn! – Chrizzldi

+0

Đây là một lời giải thích rất tốt, bạn nên thêm điều này vào wikipedia.Không giải thích nó vào lúc này :)! – Chrizzldi

0

Tôi đã tìm thấy nguồn gốc của vấn đề. Tôi đã tối ưu hóa sớm chương trình của mình và không nhận ra rằng tọa độ kết cấu có thể có số lượng lớn hơn tọa độ đỉnh do thực tế rằng họa tiết được vẽ trên mỗi mặt thay vì mỗi đỉnh, vì vậy mỗi đỉnh có thể có nhiều tọa độ kết cấu được ánh xạ tới nó . Hy vọng rằng ai đó sẽ học hỏi từ những sai lầm của tôi.

Điều tôi thấy lạ là đã khởi tạo sf::RenderWindow trước khi chạy trình phân tích cú pháp .obj của mình, không có thông báo lỗi nào bị ném và sự cố được báo cáo ở một khu vực hoàn toàn khác với thực tế.

Các vấn đề liên quan