Đưa ra một danh sách các chỉ số tam giác, chính xác làm thế nào để chuyển đổi nó thành một danh sách các chỉ số có tính phụ thuộc cho một shader hình học?
Lưu ý rằng chúng tôi nghiêm túc nói về các chỉ số ở đây - các đỉnh có mặt, nhưng chúng tôi sẽ chỉ tập trung vào các chỉ số, bởi vì chúng tôi có thể sử dụng chúng để khớp với các đỉnh trùng lặp mà không cần phải so sánh các dấu phẩy động và epsilon - công việc đó có đã được thực hiện.
Tôi biết rằng với bất kỳ tam giác đã cho nào trong danh sách, các chỉ số {0, 1}, {1, 2} và {2, 0} (hoặc {n, n + 1}, {n + 1, n + 2}, { n + 2, n} nếu bạn thích) của nó tạo thành các cạnh; danh sách chỉ số được hình thành tốt và tôn trọng thứ tự quanh co chính xác.
Tôi biết rằng với bất kỳ cạnh nào đã cho, chúng ta có thể tìm kiếm toàn bộ danh sách cho một tam giác khác sử dụng hai trong số các chỉ số đó và chỉ số thứ ba của tam giác đó là chỉ số được sử dụng để hoàn thành tam giác liền kề cho cạnh đó.
Tôi biết rằng trong danh sách kề, mỗi tam giác ban đầu được biểu thị bằng 6 chỉ số, các chỉ số ban đầu đi vào các khe 0, 2, 4; các chỉ số mới để hoàn thành kề kề đi vào các khe 1, 3, 5. Chỉ mục cần hoàn thành cho cạnh {0, 1} đi vào khe 1, chỉ mục cần hoàn thành cho cạnh {1, 2} đi vào khe 3, chỉ mục để hoàn thành cho cạnh {2, 1} đi vào khe 5.
Tôi đã thử những gì?
Tôi đã thử dùng vũ lực, và vâng, nó sẽ hoạt động, nhưng tôi theo một cách tiếp cận thanh lịch hơn.
Tôi đã thử xây dựng danh sách cạnh của Eric Lengyel, nhưng (1) dường như không tôn trọng trật tự tam giác ban đầu, (2) dường như không tôn trọng trật tự quanh co, (3) nó rõ ràng như bùn đi đâu tiếp theo sau khi bạn đã xây dựng danh sách cạnh và (4) Tôi nghi ngờ mã mẫu có lỗi rõ ràng như "tam giác" so với "face Index" - tác giả thậm chí đã biên dịch mã, không bao giờ để ý mã đó xác minh điều đó?
Vì vậy - bất kỳ đề xuất hoặc con trỏ từ đây về?