Scrittura di skin per il mio gioco e necessità di animare anche le normali. Da questa articolo Ho imparato che di solito per trasformare le normali hai bisogno di qualcosa del genere:
transformed_normal = transpose(inverse(bone[i])) * normal;
Non posso passare il secondo set di calcoli precalcolatitrasporre (inverso (ossa)) a shader tramite uniformi perché non ho abbastanza uniformi per questo. Quindi devo calcolare questa trasposizione (inversa (bone [i])) in vertex shader (ancora e ancora per ogni migliaia di vertici), non è vero? C'è un modo più veloce per farlo? Qualche approssimazione economica e sporca di questa operazione?
Modificare: Ho trovato questa soluzione interessante https://stackoverflow.com/a/46518010/9173149
risposte:
4 per risposta № 1Il modo tipico per gestirlo è quello di non ridimensionare le matrici ossee. Se le trasformazioni ossee hanno solo rotazione e traslazione, non è necessario eseguire l'inverso / la trasposizione.