Bagaimana cara memetakan tekstur persegi ke segitiga?

13

Saya ingin mencari koordinat tekstur untuk titik P. Saya memiliki simpul segitiga dan koordinat uv yang sesuai.

Angka-angka dalam kotak kecil di tekstur mewakili nilai warna.

Apa langkah-langkah menghitung koordinat uv dari P?

masukkan deskripsi gambar di sini

john john
sumber
Ada transformasi affine yang akan memetakan setiap sudut ke koordinat teksturnya, Anda dapat menggunakannya untuk memetakan P ke uv-nya.
ratchet freak
@ scratchetfreak dapatkah Anda memberi saya tautan?
john john
Ada tulisan yang bagus tentang bagaimana melakukan perhitungan titik persimpangan serta perhitungan kabel barycentric sekaligus dalam makalah ini . Ini pada dasarnya sama dengan mengubah segitiga.
joojaa

Jawaban:

14

Ini dicapai melalui Interpolasi Barycentric .

P

SEBUAHBPPBCPCSEBUAH

masukkan deskripsi gambar di sini

SEBUAHPPBCSEBUAHBC

PSEBUAHPBC

1

Metode untuk menghitung koordinat barycentric adalah:

BSebuahrySEBUAH=(By-Cy)(Px-Cx)+(Cx-Bx)(Py-Cy)(By-Cy)(SEBUAHx-Cx)+(Cx-Bx)(SEBUAHy-Cy)BSebuahryB=(Cy-SEBUAHy)(Px-Cx)+(SEBUAHx-Cx)(Py-Cy)(By-Cy)(SEBUAHx-Cx)+(Cx-Bx)(SEBUAHy-Cy)BSebuahryC=1-BSebuahrySEBUAH-BSebuahryB

Derivasi dan penalaran dijelaskan dalam artikel wikipedia .

P

Pkamuv=BSebuahrySEBUAHSEBUAHkamuv+BSebuahryBBkamuv+BSebuahryCCkamuv

Alasannya juga dijelaskan dengan sangat baik dalam presentasi ini .

Lihat juga pertanyaan ini untuk metode perhitungan yang efisien.

Rotem
sumber
BSebuahryB(SEBUAHy-Cy)
@ joojaa kurasa tidak. Itu sama di artikel Wikipedia, dan sepertinya benar dari perhitungan pengujian yang saya lakukan.
Rotem
-(SEBUAHy-Cy)SEBUAHCy=(SEBUAHy-Cy)
1
P