Semakin lama industri 3D mengadopsi standar Mikktspace untuk menghitung ruang singgung untuk pemetaan normal dan efek lainnya yang mengandalkan perhitungan akurat dan konsisten ruang singgung dari satu aplikasi ke aplikasi lainnya. Blender, xNormal, Unity, Substance Painter dan Unreal Engine hanyalah beberapa yang dapat saya pikirkan yang sekarang menggunakan Mikttspace. Saya pribadi mencoba untuk mengode ulang proyek saya sendiri untuk mengadopsi standar ini juga.
Tetapi ada sedikit sumber daya tentang cara kerja Mikktspace karena ini adalah hal yang relatif baru. Sedikit sumber daya yang ada, biasanya langka dalam perincian dan sangat teknis, tidak ramah pengguna untuk memahami, atau menganggap pembuat kode memiliki tingkat pengetahuan tertentu yang sedikit di atas rata-rata pemula yang baru memulai yang membutuhkan hal-hal yang dijelaskan dengan lebih cermat.
Saya mencari penjelasan yang jelas tentang bagaimana Mikktspace bekerja dan bagaimana mengimplementasikannya, dengan penjelasan sederhana tentang bagaimana matematika dan kode bekerja dengan cara yang tidak terbatas hanya pada satu bahasa.
Sebagai contoh, misalkan seorang programmer memiliki objek mesh, dengan indeks simpul, masing-masing dengan posisi, koordinat normal dan UV, dan daftar segitiga yang merujuk pada indeks itu.
Sebagai contoh:
Vertex
: {XYZ NX NY NZ ST}VertexIndex
: DaftarVertex
Triangle
: {V1 V2 V3} (dalam urutan belitan yang benar untuk arah normal)TriangleList
: DaftarTriangle
Secara sederhana, bagaimana cara menghitung per titik vektor vektor tangen (TX TY TZ) dan vektor bitangent (BX BY BZ) untuk setiap titik dengan cara yang sesuai dengan Mikktspace?