Saya menggunakan pendekatan standar untuk billboarding dalam Unity yang OK, tapi tidak ideal:
transform.LookAt(camera)
Masalahnya adalah ini menyebabkan distorsi ke tepi viewport, terutama saat bidang sudut pandang bertambah besar. Ini tidak seperti papan iklan sempurna yang akan Anda lihat di misalnya. Doom ketika melihat musuh dari sudut manapun dan terlepas dari di mana mereka berada di ruang layar.
Jelas, ada cara untuk mencitrakan gambar langsung ke viewport, berpusat di sekitar satu titik, tapi saya tidak suka pada shader.
Adakah yang punya sampel dari pendekatan ini (GLSL jika memungkinkan), atau saran mengapa tidak biasanya dilakukan dengan cara ini (vs. metode transformasi quad yang disebutkan di atas)?
EDIT: Saya bingung, terima kasih Nathan untuk kepala. Tentu saja, menyebabkan paha depan untuk melihat kamera tidak menyebabkan mereka sejajar dengan bidang tampilan - yang saya butuhkan.
Saya percaya Anda dapat mengatur matriks 3x3 teratas (dalam kolom-utama berbicara) ke identitas untuk melakukan ini. Saya tidak melihat alasan mengapa Anda tidak bisa melakukan ini di shader, tetapi Anda mungkin melakukan lebih banyak pekerjaan dengan cara itu. Anda akan kehilangan skala (dalam matriks xformation Anda) dengan cara ini.
Sunting: artikel ini bermanfaat bagi saya untuk membuat papan iklan dan meniru:
http://www.flipcode.com/archives/Billboarding-Excerpt_From_iReal-Time_Renderingi_2E.shtml
Saya tidak tahu seberapa konvensional hal ini, tetapi saya menyebutnya "peniruan" ketika perspektif dipertahankan dan "papan iklan" ketika tidak.
sumber