Làm thế nào để Mikktspace hoạt động để tính toán không gian tiếp tuyến trong ánh xạ bình thường?


8

Ngành công nghiệp 3D ngày càng áp dụng tiêu chuẩn Mikktspace để tính toán không gian tiếp tuyến cho ánh xạ bình thường và các hiệu ứng khác dựa trên tính toán chính xác và nhất quán của không gian tiếp tuyến từ ứng dụng này sang ứng dụng khác. Blender, xN normal, Unity, Substance Họa sĩ và Unreal Engine chỉ là một số ít tôi có thể nghĩ bây giờ sử dụng Mikttspace. Cá nhân tôi cũng đang cố gắng mã hóa lại các dự án của riêng mình để áp dụng tiêu chuẩn này.

Nhưng có rất ít tài nguyên về cách Mikktspace hoạt động vì đây là một điều tương đối mới. Những tài nguyên ít ỏi có, thường khan hiếm về chi tiết và rất kỹ thuật, không thân thiện với người dùng để hiểu, hoặc giả sử người viết mã có một mức độ kiến ​​thức nhất định, cao hơn một chút so với người mới bắt đầu, những người cần giải thích cẩn thận hơn.

Tôi đang tìm kiếm một lời giải thích rõ ràng về cách Mikktspace hoạt động và cách triển khai nó, với một lời giải thích đơn giản về cách toán học và mã hoạt động theo cách không giới hạn chỉ trong một ngôn ngữ.

Ví dụ, giả sử một lập trình viên có một đối tượng lưới, với một chỉ số các đỉnh, mỗi đỉnh có vị trí, tọa độ bình thường và UV và danh sách các tam giác tham chiếu chỉ số đó.

Ví dụ:

  • Vertex: {XYZ NX NY New Zealand ST}
  • VertexIndex: Một danh sách về Vertex
  • Triangle: {V1 V2 V3} (theo thứ tự cuộn đúng cho hướng bình thường)
  • TriangleList: Một danh sách về Triangle

Nói một cách đơn giản, làm thế nào người ta sẽ tính toán trên mỗi đỉnh một vectơ tiếp tuyến (TX TY TZ) và vectơ bitangent (BX BY BZ) cho mỗi đỉnh theo cách phù hợp với Mikktspace?


Có quá khó không? Bất cứ ai cũng được chào đón nếu họ cảm thấy họ có thể đưa ra câu trả lời. Thậm chí chỉ là một lời giải thích ngắn gọn về những gì đặc biệt khác biệt từ kỹ thuật của Mikktspace đến kỹ thuật chung về tính toán không gian tiếp tuyến sẽ làm gì?
Tốt nghiệp

Câu trả lời:


4

Có nhiều mã hơn cho dự án đó:
https://github.com/teared/mikktspace-for-houdini/tree/master/source

Ngoài ra, bạn có thể tìm thấy thông tin về bản đồ bình thường không gian tiếp tuyến tại đây:
https://archive.blender.org/wiki/index.php/Dev:Shading/Tangent_Space_N normal_Maps / http://image.diku.dk/projects/media/morten. mikkelsen.08.pdf

Thông tin khác về bản đồ không gian tanget (Mikktspace) không rõ ràng.

Một lời giải thích ngắn gọn về các phương pháp là rất dài và do đó tôi đã bao gồm hai liên kết ở trên để đề cập đến lời giải thích tốt về bản đồ bình thường không gian tiếp tuyến.

Lưu ý: Blender cũng đưa ra lời khuyên về lý do tại sao không sử dụng phương pháp này.

Tôi hy vọng nó sẽ có ích :)


Tôi nghĩ bạn nên đặt một số thông tin (giới thiệu các loại) ngoài các liên kết một mình. Chúng không hữu ích nếu một ngày nào đó chúng trở thành 404.
Aistis

Rất đúng, ý tưởng tốt Aistis. Nhưng bạn cũng có thể tải xuống một trang web nếu bạn muốn.
Tripl3Fac3

Tôi chấp nhận câu trả lời này là câu trả lời đúng vì Tripl3Fac3 đã giúp ích rất nhiều cho cá nhân tôi và thông tin mà Tripl3Fac3 đã cung cấp trong các liên kết đã tóm tắt khá nhiều tài nguyên tốt nhất tập thể về chủ đề này như hiện tại.
Tốt nghiệp

Xin chào mừng, tôi xin lỗi vì tôi không thể trả lời sớm hơn, đã bận rộn với các dự án trường học và công cụ trò chơi 2D mới tương thích với mọi nền tảng (cho dù bạn sử dụng trình điều khiển nào)
Tripl3Fac3

1
Liên kết pdf hoạt động tốt với tôi @Fire
Tripl3Fac3
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.