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)?

È stato utile?

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!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top