Tecniche per smussare gli angoli viso in OpenGL
Domanda
Quando accendo il mio modello umano in OpenGL utilizzando normali delle facce è molto evidente in cui ogni faccia è sul modello. L'illuminazione diventa notevolmente più agevole utilizzando normali ai vertici ma comunque avvertibile. C'è qualche tecnica a disposizione dei modelli organici lisce senza l'aggiunta di ulteriori vertici (ex. Suddivisioni)?
Soluzione
Se state vedendo le facce singole con normali per vertice potreste aver dimenticato di attivare rivestimento liscio:
glShadeModel(GL_SMOOTH);
Se questo non sta aiutando assicurarsi che tutti i vertici con la stessa posizione hanno anche la stessa normale. Questo dovrebbe essere fatto dal frullatore automaticamente comunque. E 'anche possibile che il modello ha semplicemente troppo pochi poligoni. Se questo è il caso si sia necessario utilizzare più poligoni o fare quello che basszero detto. Creare una mappa normale e l'uso che, insieme con uno shader GLSL.
Altri suggerimenti
Se hai accesso a un modello di risoluzione più alta / mesh o forse un modellazione 3d strumento che può creare un modello highres tramite suddivisioni o altri metodi di fantasia ...
GLSL per-pixel-illuminazione + mappe normali
UPDATE:
http://www.blender.org/ sviluppo / release-logs / frullatore-246 / render-cottura /
Sì, ci sono molte tecniche diverse. Uno è quello di calcolare la prima di una normale per ogni faccia (che probabilmente sta utilizzando per i vertici in faccia) e utilizzare queste normali per calcolare nuovi normali per ogni vertice.
Ecco uno in cui si calcola la media di cinque triangoli adiacenti.
Cheers!