Question

Quand j'allume mon modèle humain en utilisant OpenGL visage Normales il est très apparent où chaque face est sur le modèle. L'éclairage devient considérablement plus lisse à l'aide Normales sommet mais toujours perceptible. Y at-il technique disponible pour les modèles organiques lisses sans ajouter des sommets supplémentaires (ex. Subdivisions)?

Était-ce utile?

La solution

Si vous voyez un seul visage avec par sommet Normales vous pourriez avoir oublié pour permettre face lisse:

glShadeModel(GL_SMOOTH);

Si cela n'aide assurez-vous que tous les sommets avec la même position ont également la même normale. Cela devrait être fait par un mélangeur automatiquement cependant. Il est également possible que votre modèle a trop peu de polygones. Si tel est le cas, vous devez soit utiliser plus de polygones ou faire ce que basszero dit. Créer une carte normale et de l'utilisation qui, avec un shader GLSL.

Autres conseils

Si vous avez accès à un modèle de résolution supérieure / maillage ou peut-être une vie décente outil de modélisation 3D qui peut créer un modèle highres par subdivisions ou d'autres méthodes de fantaisie ...

GLSL -éclairage par pixel + Cartes normales

Mise à jour:

http://www.blender.org/ développement / release-logs / mélangeur-246 / render-cuisson /

Oui il y a beaucoup de techniques différentes. La première est d'abord calculer une normale pour chaque face (que vous utilisez probablement pour les sommets du visage) et utiliser ces Normales pour calculer de nouveaux Normales pour chaque sommet.

Voici un où vous calculer la moyenne des cinq triangles adjacents.

Vive!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top