Lorsque j'allume mon modèle humain dans OpenGL en utilisant des normales de faces, il est très apparent où chaque face est sur le modèle. L'éclairage devient considérablement plus lisse en utilisant les normales vertex mais toujours perceptible. Existe-t-il une technique disponible pour lisser les modèles organiques sans ajouter de sommets supplémentaires (ex: subdivisions)?Techniques pour lisser les arêtes de face dans OpenGL
Répondre
Si vous voyez un seul visage avec par Normales de sommets que vous pourriez avoir oublié de permettre Parement 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 automatiquement par blender. Il est également possible que votre modèle comporte trop peu de polygones. Si c'est le cas, vous devez utiliser plus de polygones ou faire ce que dit Basszero. Create a normal map et l'utiliser avec un shader GLSL.
Si vous avez accès à un modèle de résolution supérieure/maillage ou peut-être un 3d modeling tool décent qui peut créer un modèle highres par subdivisions ou d'autres méthodes de fantaisie ...
GLSLper-pixel-lighting + normal maps
MISE À JOUR :
http://www.blender.org/development/release-logs/blender-246/render-baking/
Oui il y a beaucoup de techniques différentes. On doit d'abord calculer une normale pour chaque face (que vous utilisez probablement pour les sommets dans le visage) et utiliser ces normales pour calculer de nouvelles normales pour chaque sommet.
Voici one où vous calculez la moyenne de cinq triangles adjacents.
À la votre!
- 1. Techniques pour supprimer les dépendances?
- 2. arêtes de commande pour l'algorithme de balayage
- 3. Python TurtleGraphics - Lisser les marches aléatoires?
- 4. SQL 2005 Livre pour les techniques d'optimisation
- 5. Graphique Rails Arêtes
- 6. Techniques pour éviter DeadlineExceededException dans GAE/J?
- 7. De bonnes ressources pour apprendre les techniques d'adaptation mobiles
- 8. Techniques populaires pour déboguer .htaccess
- 9. Quelles sont les techniques pour limiter les dépendances de compilation dans les projets C++?
- 10. conseils/techniques/bestpractice pour résoudre les conflits avec svn
- 11. Techniques de distribution des contrôles utilisateur ASP.NET dans les projets
- 12. SQLite sur iPhone - techniques pour traquer les bugs liés multithreading-
- 13. Techniques de débogage multitraitement
- 14. Techniques d'optimisation de requêtes?
- 15. Créer les liens d'une chaîne dans OpenGL
- 16. Techniques de récursivité Perl?
- 17. Techniques pour surveiller/améliorer les performances dans les requêtes LINQ to SQL
- 18. Algorithme pour trouver des arêtes uniques à partir d'un maillage polygonal
- 19. graphe (noeud et arêtes) en accès
- 20. Informations sur les techniques d'exploration Web
- 21. OpenGL (pour les appareils mobiles) Didacticiels pour débutants
- 22. Techniques de catalogue de messages spécifiques pour une application web
- 23. Comment forcer la position des arêtes dans graphviz?
- 24. Techniques performantes pour trouver des valeurs similaires dans SQL?
- 25. Comment custmoize git.el diff face dans Emacs?
- 26. Techniques haies pour Win32 rsync port
- 27. Comment lisser glisser pour ajuster la hauteur du contenu après une glissade dans jQuery?
- 28. SASS et @ font-face
- 29. Techniques pour traiter le modèle de domaine anémique
- 30. Apprendre OpenGL dans Ubuntu
J'utilise Blender. Je garde mon modèle low-poly pour des raisons de performance. L'ombrage de Phong semble prometteur mais n'est pas supporté par OpenGL et l'avantage ne justifierait pas le coup de performance. – Kai
S'il ne s'agit pas d'une question OpenGL ES 1.1 (par exemple iPhone), votre matériel prend probablement en charge les shaders et vous pouvez écrire un shader qui implémente le mappage phong shading + normal. –
À droite, vous créez un modèle highres dans Blender et l'utilisez pour générer une carte normale. Créez une version basse résolution et utilisez les mappages map + normaux pour créer le détail de sommet manquant dans le rendu final. – basszero