2012-01-31 12 views

risposta

7

Nella demo di GLScene \ interface \ hfpick, si ha un esempio di pittura su un campo di altezza.

La pittura su una mesh più complessa richiederà la ricerca delle coordinate della trama del punto sotto il cursore, che a seconda di come la trama è stata mappata potrebbe essere più o meno complessa.

Un attacco rapido per trame di piccole dimensioni che trarranno vantaggio dalla GPU può essere utilizzare le coordinate di trama come colore RGB, è possibile farlo in uno shader di frammenti, restituendo u, v in R, G fi e il indice di trama nel canale B. Renderlo in un buffer fuori campo e cercare il colore del punto sotto il cursore, che ti darà le coordinate di trama & e banale per trame 256x256 (e anche fino a 4096x4096 se usi saggiamente l'indice di trama).

Per farlo in modo matematicamente corretto (utilizzando la CPU), dovrete modificare i metodi mesh RayCast, in modo che invece di trovare il triangolo colpito, restituirà anche le coordinate di trama del punto che viene colpito.

+0

Molte grazie .............. – Wel