mercredi 6 mai 2015

Modelisation : une Chemise sous Blender

Après avoir modéliser la base de notre personnage, nous avons besoin de lui ajouter des vêtements et des accessoires. Nous allons commencer par une chemise. Toujours en nous inspirant d'une vidéo de Darrin Lile. Cette dernière est moins détaillée que les précédentes ce qui nous laisse plus de liberté pour créer un personnage différent de son 'SteamPunk kid'.

Nous créons donc une chemise sur mesure pour notre petit bonhomme : Tous d'abord nous sélectionnons les faces de son corps correspondants à la surface recouverte par le vêtement. Nous les duplicons (Shift+d) puis les élargissons grâce à l'outil Shrink/fatten présent dans la boite a outil de gauche ("Tools tab"). L'objet est ensuite séparé grâce au menu du même nom ( raccourci 'p' ) pour créer un pull simple. Nous pouvons lui donner une épaisseur avec le modifier Solidify.




Nous pouvons ouvrir cette veste en sélectionnant la ligne vertical au milieu puis grâce au menu Edges (Ctrl+e) en sélectionnant Edge Split. La suite consiste à modéliser les détails du vêtement, par exemple le col et les manchettes sont créés en étendant (Extrude, 'e' en mode édition) les bords puis en les ramenant en arrière :




J'essaierais surement d'y ajouter des pochettes sur la poitrine et des boutons le long de l'ouverture...

mardi 28 avril 2015

Modélisation sous Blender : les yeux !

Avant dernière vidéos sur la modélisation d'un personnage par Darrin Lile, La modélisation des yeux qui viennent ainsi compléter la tête.

La modélisation des yeux en elle même n'est pas compliquée : à partir d'une sphère nous créons l'intérieur de l'oeil avec l'iris et la pupille, puis une deuxième sphère sensiblement plus grande est utilisée pour la partie externe de l'oeil, où est située la cornée. Ces étapes sont préparatoires pour le rendu final de l'oeil avec la couleur de l'iris ou la transparence de la cornée qui seront abordés plus tard.



La partie difficile est l'intégration de l’œil dans le visage existant. Le personnage n'étant pas réaliste, il a de très grand yeux et il est donc difficile de les placer correctement. Une fois placés, le contour des yeux est ajusté pour coller au mieux et ne laisser aucun espace entre l’œil et la peau. Pour compléter cet effet, on étend la peau autour de l’œil vers l’intérieur du visage. Un modifier en miroir est utilisé pour créer le deuxième œil automatiquement.

Actuellement il n'y a pas de paupière ce qui donne un effet un peu effrayant aux gros yeux de notre personnage :


mardi 21 avril 2015

Modélisation de la bouche : les Dents

Pour continuer sur la bouche nous allons y ajouter des dents. (7ème partie du tutoriel de Darrin Lile)

Pour simplifier le travail dans la bouche nous allons la séparer du reste du corps : En sélectionnant le edgeloop du fond de la gorge, le raccourcis 'Ctrl' + '+' nous permet de sélectionner le edgeloop suivant, plusieur fois jusqu’aux lèvres. Le menu 'Séparation' (touche 'P') nous permet de séparer la sélection dans un nouvel object. Ensuite le raccourcis Shift+H cache tout excepté notre objet sélectionné.

Nous créons d'abord les gencives de la même manière que nous avions créé la langue, en étendant les parties du palet correspondantes. Ces extensions sont aplatie vers l’intérieur de la bouche :





Nous créons ensuite chaque dent de la mâchoire supérieure à partir d'un cube. Incisive, canine, prémolaire, molaire, en les plaçant le long de la gencive.


Nous joignons cet ensemble de dents pour en faire un seul objet (Sélection puis Ctrl + j) puis nous appliquons un modifier de miroir pour l'autre coté.

Enfin pour la mâchoire inférieure, un autre miroir est appliqué mais cette fois l'objet résultant est disjoint (Menu séparation , raccourcis 'P' ) De cette manière les dents de la mâchoires inférieure peuvent être modifiées indépendamment. Elle seront plus petites et en retrait par rapport à la mâchoire supérieure.

Et voilà un joli sourire :



La vidéo suivante montre comment réintégrer la bouche au reste du corps en utilisant l'outil Bridge edge loop (Sélection des edgeloops pui Ctrl+E > bridge edge loop ). Et comment créer les oreilles a partir d'une extension du coté de la tête. Il ne manquera plus que les yeux !






jeudi 16 avril 2015

Modélisation de la bouche sous Blender



Suite du tutoriel de Darrin Lile sur la modélisation d'un personnage : l’intérieur de la bouche !

Le procédé est assez simple on étend le bord ouvert de la bouche vers l'intérieur jusqu'à la gorge pour créer la cavité de la bouche.




La langue est ensuite créée à partir des faces inférieur de cette cavité. Cela deviens un peu difficile de sélectionner les points de la langue à travers deux parois. Il faut penser à désactiver l'option "limit selection to visible" (un petit bouton avec deux carrés qui se chevauchent en bas de la visualisation dans Blender 2.73a).





La dernière étape consiste à élargir les lèvres pour avoir une épaisseur crédible.
Pour la prochaine étape, nous continuons sur la bouche en ajoutant des dents !



mardi 14 avril 2015

Modélisation d'une main sous Blender



Suite du tutoriel de Darrin Lile sur la modélisation d'un personnage : la modélisation d'une main !

Ce n'est pas beaucoup plus compliqué que les étapes précédentes. Nous partons d'un cylindre pour créer un doigt. Il y a une petite astuce pour modéliser l'ongle assez simplement. Et nous ajoutons des subdivision pour les articulations.


Le doigt est ensuite dupliqué quatre fois. Chaque copie est positionnée en lieu et place des doigts de la main. Nous joignons les objets ainsi créés en un seul (Ctrl + J) et nous fusionnons les bords entre les doigts (le pouce étant laissé de coté pour le moment). Nous sélectionnons le bords ouvert (Alt + clique) pour l'étendre jusqu'au poignet.  


J'ai recommencé cette partie plusieurs fois. Il y a une petite difficulté pour faire correspondre les subdivisions présentes sur la mains (assez nombreuses) aux subdivisions du poignet. Ensuite nous pouvons fusionner les bords ouverts pour attacher la main au reste du corps. Il nous reste à joindre le pouce :


Nous faisons une ouverture sur le coté de la main en supprimant quatre faces pour joindre les bords ouvert et attacher le pouce au reste de la main.



Voilà le résultat, loin d'être parfait : les doigts on encore l'air de cylindres et la jonction du pouce parait un peu étrange...

La prochaine étape concernera la bouche !

mercredi 1 avril 2015

Modélisation d'un personnage sous Blender : les jambes


Voilà la suite du tutorial de Darrin Lile : Nous allons ajouter des jambes à notre personnage.

La première partie consiste à créer l'entre jambe en étirant l'avant et l'arrière du tronc. Une fois ces deux partie rejointes, on les fusionne pour créer les deux trous qui serviront de bases pour les jambes :



Ces trous sont ensuite modelés point par point pour les arrondir et les faire sembler plus naturels. Puis la même technique que pour les bras est appliquée : on sélectionne le 'edge loop' ( Alt+clique ) que l'on étends ( Extrude, touche 'e' ) plusieurs fois pour former la jambe. Nous suivons le tracé en appliquant plusieurs Scale / Rotate successifs sur chacune des extensions. Nous formons ainsi un semblant de cuisse / genou / mollet pour arriver au chevilles :


Darrin insiste un peu sur les subdivisions sur les membres articulés, une articulation nécessitant 3 subdivisions, Nous en avons 3 autour des hanches, 3 autour des genoux comme nous en avions 3 autour des coudes.

La prochaine étape sera le travail sur les mains !

dimanche 29 mars 2015

Programmation : Un projet OpenGL (GLUT) sous Code::Blocks

J'avais déjà programmer un algorithme de Raytracing lors de ma formation, je voudrais le compiler et le relancer dans un environnement actuel. (ici Code::Blocks). Puisque ce programme était fait pour afficher le résultat dans une fenetre X11, en OpenGL avec la librairie GLUT, je recrée cet environnement dans CODE::Block.

Nouveau projet GLUT dans Code::Blocks

Pour compiler le code, je crée un nouveau projet 'Glut'. Il faut installer le paquet freeglut-dev3, et ensuite créer des liens symbolique pour que Code::Blocks trouve la librairie : (source)

$sudo apt-get install freeglut3-dev
$sudo ln -s /usr/lib/x86_64-linux-gnu/libglut.a /usr/lib/libglut.a
$sudo ln -s /usr/lib/x86_64-linux-gnu/libglut.so.3 /usr/lib/libglut.so.3
Le projet Glut d'origine ne compile pas sans lier la librairie X11 : Aller dans Project > Build Options > linker settings puis ajouter pthread et X11 à la liste des librairies liées. (source)

De même, nous avons besoin de l'extension de X11 libXi. Il faut installer le package libxi-dev et ajouter "xi" à la liste des librairies liées. (source)

Le projet Glut fonctionne et affiche différentes formes 3D animées :

L'environnement semble fonctionnel, j'inclue mon code source au projet, je peut donc retrouver mon premier algorithme de RayTracing fonctionner à nouveau :



Je parlerais de cet algorithme dans une prochaine note,  je vais réorganiser le code pour le rendre plus évolutif et pouvoir expérimenter de nouvelle fonctionnalités... 

vendredi 27 mars 2015

Modélisation d'un personnage sous Blender : le haut du corps


Troisième étape de  la modélisation d'un personnage : le haut du corps.

C'est la suite du tutoriel de Darrin Lile, partie 3/10.

Nous formons le cou à partir des bords ouverts sous la tête. Puis nous l'étirons pour former le tronc du personnage. La deuxième partie consiste à créer les bras en supprimant les faces correspondante au niveau des épaules puis, comme pour le cou, en étirant les bords ouverts le long des bras.



Raccourcis utiles ;

Alt + clique : sélection de tout un "edge loop", cliquer sur un bord de cette manière permet de sélectionner tout le contour correspondant : très utile pour la sélection du bord ouvert pour former le cou ou les bras.

jeudi 26 mars 2015

Moteur de rendu : Compilation de Aqsis.


Afin de comprendre et de tester un moteur de rendu Renderman, je me lance dans la compilation du code source d'un moteur de rendu : Aqsis.
Environnement : Ubuntu 14.04 64bits

prérequis :

installations :
ccmake, Boost, Qt, libtiff.lib, flex, bison, libzlib, libjpeg, libpng libilmbase, OpenEXR, nsis

$ sudo apt-get update
$ sudo apt-get install cmake
$sudo apt-get install cmake-curses-gui
$ sudo apt-get install libboost-all-dev
$ sudo apt-get install qt-sdk
$ sudo apt-get install libtiff-dev
$ sudo apt-get install flex
$ sudo apt-get install bison
$ sudo apt-get install zlibc
$ sudo apt-get install libjpeg8
$ sudo apt-get install libpng-dev
$ sudo apt-get install libilmbase6
$ sudo apt-get install openexr
$ sudo apt-get install nsis
Cela parait assez trivial mais, si un package n'existe pas assurez vous d'avoir le bon nom. Une recherche avec aptitude peut-être utile :
$sudo aptitude search libjpeg

Configuration :

créer un dossier build a coté du dossier aqsis :
$mkdir aqsis-build

lancer cmake depuis ce dossier :
$cd aqsis-build
$ccmake ../aqsis-1.8.1

ccmake est optionnel mais permet d'avoir une "interface graphique" (en mode console) afin de mieux voir les dépendances manquantes ou éditer la configuration
donc si ccmake n'est pas installé : 
$cmake ../aqsis-X.X.X 
devrais fonctionner en utilisant la configuration par défaut.

Compilation :


Aprés un 'cmake' réussi, le Makefile ayant été généré, lançons l'installation avec un simple :
$sudo make install

Test :

C'est là que commence le fun : Aqsis permet de générer une image à partir d'un fichier .rib décrivant une scene 3D. Plusieurs fichier RIB sont fournis à titre d'exemple dans le dossier :
/usr/local/share/aqsis/examples/

Nous pouvons donc tenter :

$aqsis -d /usr/local/share/aqsis/examples/scenes/vase/vase.rib

Cela fonctionne avec un résultat qui est loin d'être parfait : 
ERROR: Invalid texture file - Could not find file "shad2.shad" in path: ".:/usr/local:"

C'est pourquoi les objets affichés ont l'air de flotter sur une table irréaliste. ...il doit me manquer des fichiers de shader... (à suivre)

Image générée : 

Avec une scène plus simple et aucun de fichier de shader à charger, l'image est générée sans erreur :
(Exemple de fichier RIB donné sur  la page "your-first-steps-with-aqsis")




Références :

http://lab.aqsis.org/dev/index

http://www.aqsis.org/documentation/tutorials/your-first-steps-with-aqsis/


Pour aller plus loin :

Quelqu'un s'est amusé à rendre la même scène en ayant compilé Aqsis sur un raspberry Pi et étudie les performances : https://raspberryments.wordpress.com/2012/07/30/3d-rendering-on-raspberry-pi-using-aqsis-renderer/

mardi 24 mars 2015

Modélisation d'une tête sous Blender

Deuxième étape de  la modélisation d'un personnage : la modélisation de la tête.

C'est la suite directe du tutoriel de Darrin Lile, partie 2/10.

Dans cette partie, après avoir affiné le visage par rapport au rendu souhaité, on étend le front pour faire le tour de la tête par le haut jusque la nuque puis on complète le coté, au niveau de l'oreille.



Voilà le résultat :




Raccourcis utilisés :

TAB : mode objet / mode édition

Sélection :
A noter qu'il peut être intéressant de régler la sélection sur le clique gauche de la souris si comme moi cela vous semble naturel : User preference > inputs > Select  with : Left

Ctrl+TAB : mode de sélection Points / Edges / Faces
Shift + clique : Sélection de plusieurs éléments disjoints
Ctrl + clique : Sélection de plusieurs élément et des éléments les liants les uns aux autres.
a : Tout désélectionner / tout sélectionner
: Sélection rectangulaire
Ctrl + drag click droit : sélection avec un outil 'lasso'

Modifications :
(en mode édition, en ayant sélectionné des point(s) / edge(s) / face(s)

e : extrude
s : scale
r : rotation
f : création d'une face entre les éléments sélectionnés
Alt + m : menu de 'Merge' pour fusionner des éléments.
Shift + s : menu de 'Snap' pour aligner la sélection ou le curseur sur d'autres éléments.


Attention : J'ai du changer la position du point d'ancrage de la sélection ( pour faire un scale ou une rotation autour de ce point). Lorsqu'on se met en mode "point d'ancrage sur le curseur" ce réglage reste actif, ainsi, chaque déplacement du curseur déplacera à nouveau le point d'ancrage. Il faut penser à retirer ce réglage lorsqu'il n'est plus nécessaire.

vendredi 20 mars 2015

Modélisation d'un visage sous Blender

Petit projet de Modélisation sous Blender : la modélisation d'un personnage.

C'est un sujet que je connais peu, ma formation ayant mis l'accent sur l'animation, l'interactivité et le rendu,. Je n'ai modéliser que très peu d'objets organiques lors de quelques tests sous Autodesk Softimage.

N'ayant que quelques notions de Blender, j'ai d'abord visionné quelques vidéos de prise en main sur la chaine blenderLounge pour me remettre à niveau. Ces vidéos montrent aussi l'installation de Blender et ses options de configuration, même si cela n'est pas très compliqué, c'est assez intéressant.


j'ai ensuite suivi le tutoriel de Darrin Lile. pour la création du visage. 


Le résultat est assez satisfaisant et m'encourage à continuer avec la suite des vidéos de Darrin. Ses explications sont claires et cette vidéo n'est que la première d'une série de 10 sur la modélisation d'un personnage.

J’espère pouvoir montrer un personnage entier assez rapidement, prochaine étape : le reste de la tête !