Cel shading utilisant les shaders (glsl)

Soyez le premier à donner votre avis sur cette source.

Vue 12 136 fois - Téléchargée 1 012 fois

Description

L'application présente un rendu cel-shading en OpenGL.
L'éclairage (diffus et spéculaire) est géré grâce aux shaders
J'ai utilisé la GLSL pour les shaders
Pour comprendre le code des shaders (fichiers .vert et .frag), il faut d'une part connaître la GLSL,
d'autre part être initié aux principes de l'illumination.

Les contours de l'objet sont faits en OpenGL (sans les shaders).

Conclusion :


Il est possible de naviguer autour de l'objet à l'aide de la souris (clic + déplacement)

Tutoriel pour le modèle d'éclairage (à la fin du pdf) :
http://www.typhoonlabs.com/tutorials/glsl/Chapter_3.pdf

Tutoriel pour la GLSL :
http://www.lighthouse3d.com/opengl/glsl/

Merci à Youri pour son Loader ASE !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

shenron666
Messages postés
231
Date d'inscription
dimanche 14 septembre 2003
Statut
Membre
Dernière intervention
20 août 2014
-
great !! merci !!!
Q8eur
Messages postés
3
Date d'inscription
mardi 24 août 2004
Statut
Membre
Dernière intervention
19 avril 2007
-
Voilà c'est corrigé.
Content que mon code puisse t'aider :-)
shenron666
Messages postés
231
Date d'inscription
dimanche 14 septembre 2003
Statut
Membre
Dernière intervention
20 août 2014
-
Compilé avec Code::Block + Mingw sans problème après quelques modifs pour les inclusions

je m'inspirerai de ton code lorsque je me mettrai sérieusement aux shaders GLSL ;-)
Q8eur
Messages postés
3
Date d'inscription
mardi 24 août 2004
Statut
Membre
Dernière intervention
19 avril 2007
-
Merci shenron666 pour tes deux commentaires.
Je prends note de tes remarques et je modifierai mon code dès que possible pour que ça soit plus "propre".

Et merci pour la note ! :-)
shenron666
Messages postés
231
Date d'inscription
dimanche 14 septembre 2003
Statut
Membre
Dernière intervention
20 août 2014
-
parlons un peu du code, histoire de faire quelques améliorations :
- si tu fais du C++ (main.cpp = c++) tu n'utilises pas malloc et free mais new et delete
- en plus dans setShaders tu fais un delete d'un pointeur alloué avec malloc :pasbien: :taper: ^^
- de même pour printf, c'est pas du c++, tu mélanges du std::cout avec :pasbienbis:
- tant qu'à utiliser la std, laisses tomber FILE et stdio, la stdlib et les fstream les remplaceront

bon courage ;-)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.