
Making
of Varga - Première Partie
2.Méthodes de travail en modélisation type jeu
vidéo
De
nos jours presque tous les jeux emploient les textures de normales pour
les personnages, et même les plus avares comme les MMOs, c'est pourquoi
une version détaillée du modèle 3D est employée
afin d'en tirer les informations de normal map que nous appliquons au
maillage léger ( = lpm = low def ). La création d'une normal
map n'est cependant pas obligatoirement réalisée depuis
un maillage haute def. Elle peut être réalisé depuis
une texture de bump ou bien directement peinte à la main sous Photoshop
( Je vous montrerais dans un second temps comment réaliser ceci
via Photoshop ), toutefois cela peut s'avérer moins agréable
comme technique.
Les ressources nécessaires pour la création d'un personnage
seront très probablement :
*
une version low poly (voir plusieurs en cas d'utilisation de LODs -niveau
de détails- )
* une version High poly pour calculer les textures
de normales appliquées au Low Poly ( vous pourrez également
utiliser la version haute déf
pour calculer l'occlusion ou autres textures que nous verrons via le paragraphe
Transfer Trace au paragraphe 4.3
* toute sorte de textures que le moteur de jeu
peut afficher (diffus, normal, spéculaire sont les plus utilisées)
Nous
partons de la supposition qu'un concept/dessin est déjà
à votre disposition et les étapes qui suivront sont dédiées
au modeling et texturing.
Il y a principalement deux approches que vous pouvez utiliser pour atteindre
le résultat final.
*
Low poly modèle - > texture couleur ( Diffuse) - > modèle
haut poly - > normalmap et d'autres textures
* high poly modèle - > création
du low poly - > normalmap - > couleur ( diffuse ) et d'autres textures
Les
deux méthodes donnent de bons résultats si elles sont réalisées
correctement et le choix dépendra principalement du pipeline auquel
vous êtes déjà peut-être soumis. J'avais personnellement
l'habitude de travailler avec les deux méthodes par le passé
mais j'y préfère la seconde.
Bien que la méthode "lowpoly/diffuse/highpoly" possède
plusieurs avantages (comme la possibilité aux animateurs d'avoir
de suite accès au modèle pour travaille sur les animations,
ou bien encore une rapidité accrue pour la création du high
poly depuis les détails de textures -comme une displace- ) elle
possède aussi un énorme désavantage que je vais vous
présenter avec un exemple en image !
Partons
du principe qu'il s'agit ici d'une partie de modèle ( d'une veste
et quelques boutons ) et qu'il s'agit de la version lowpoly et de sa texture.

L'étape suivante est de détailler mon modèle basse
définition. Pour ce faire, je l'importe dans Mudbox pour augmenter
le nombre de face et sculpter mes détails. J'importe aussi ma texture
de couleur afin de m'assurer que la correspondance modèle/texture
n'est pas altérée.

J'utiliserais
par la suite des "weights map" créées depuis ma
texture de diffuse pour faire un displace des détails les plus
fins. Cela accélère le processus de création et permet
aussi que le calcul de la normalmap corresponde avec précision
à ma texture de couleur puisque je modèle dessus.

Tout
fonctionne bien et j'exporterai le niveau final ( le modèle 3d
! ) pour calculer la carte normale avec Maya/3dsmax ou tout autre programme
qui emploieront le raytracing de proximité pour cette étape
et assureront un affichage correcte de la normalmap dans le moteur final.
Mais si je ne fais pas attention en détaillant mon modèle
3D je rencontrerais des soucis comme le mette en valeur (exagérée
pour l'occasion) les images ci dessous.

Comme vous pouvez l'apercevoir la texture de couleur (Diffuse) et de NormalMap
ne correspondent plus. Ceci est du au fait qu'au cours de mes déformations
de géométrie sur Mudbox j'ai étiré le maillage.
J'ai pourtant utilisé des textures de déplacement (sensé
assurer une élévation sans déplacement) lors de la
création du volume des boutons. Malheureusement, plus rien ne correspond
au moment de calculer la normale map !
Pour éviter ceci, il faut faire attention a ce que les déformations
soient bien faites ( c'est à dire des élévations
et non des déplacements de face ! ). Par ailleurs, les déformations
réalisées sur la version haute déf. doivent être
relativement proches de la cage "basse def".
Garder donc à l'esprit les deux conseils : travailler votre sculpting
en élévation ( comme le fait une texture de déplacement
) et prévoyez des déformations pas trop éloignées
du modèle basse définition ( LPM ).
Le
résultat sera moins éloquent si vous utilisez ZBrush. Ce
dernier calcule la texture de normale avec un algorithme interne prenant
en compte chacun des calques et non un raytracing de proximité
entre deux objets. Néanmoins, le résultat ne sera pas aussi
précis et correspondant à votre travail réalisé
sur ZBrush une fois la normal map affichée dans votre affichage
temps réel. Il s'agit d'un ancien problème lié aux
coutures d'UVS, et chaque logiciels ( et j'ai eu l'occasion d'en essayer
plus d'un ) possède sa propre façon d'afficher le résultat
d'une normale map en mode "Tangeant Space".
En conclusion la meilleure méthode pour calculer la Normal Map
est bien sur d'utiliser le logiciel qui nous assurera aucun défaut
visuel à la fin. Pour ce faire j'ai utilisé Maya pour le
calcule et aussi m'assurer d'une correspondance identique entre mes déformations
et leur transformation en texture.
J'ai donc utilisé la fonction Transfer de Maya en utilisant MentalRay
comme outil de calcul. Pour ce dernier détail veuillez vérifier
quel moteur est employé ici :
Render Settings dialog -> onglet mental ray >Translation->Performance,
cocher Maya Derivatives ( voir l'image ci-dessous, notez que l'option
est désactivée par défaut.) De cette façon,
Maya utilise son mode "Derivative" pour le calcul des bosselages
offrant une complète compatibilité avec MentalRay, notez
également que cette option est seulement disponible quand l'option
"Export Polygon Derivatives" est sur On.

La
seconde approche pour modéliser "haut poly/low poly/uvs/textures"
offre plus de liberté en début de sculpting et pour ajouter
les plus fins détails tout en vous débarrassant du souci
évoqué sur la première méthode.
Cependant, en modelisant la version haute définition il faut garder
à l'esprit que celle ci sera utilisé pour la création
des normales sur un modèle "low poly" et qu'il faudra
le modéliser en conséquence !
Vous aurez à estimer quels sont les détails intéressant
à modéliser et ceux qui seront uniquement visibles via la
normalmap.
Par exemple, avec le modèle "haute définition"
ci-dessous.

…
je pourrais utiliser une simple face à quatre cotés pour
le modèle basse définition mais le résultat ne représentera
pas la version haute définition de façon très correct.
Vue
de dessus le résultant semble identique...

Mais
une fois vu d'un angle incliné angle, le résultat ne correspond
plus du tout à l'original haute définition.

Une
meilleure approche serait budgétiser un petit nombre de polygones
supplémentaires pour s'approcher de la forme "high poly".

Cette
fois ci la version basse def correspond correctement à sa version
haute def. ( naturellement, encore plus de polygones enlèveront
le coté anguleux de la forme réalisée )

En
outre, vous devez éviter de modéliser des détails
trop compliqués qu'il serait difficile "d'encapsuler"
avec un modèle LPM ( low poly modeling ). Ces détails vous
obligerait à modéliser trop de détails comme vu au
dessus ce qui vampirisera votre budget de faces très rapidement.

Le
modèle haute déf semble idéal mais au moment de modéliser
la basse définition avec un budget de faces limités ( par
exemple de 5 à 10 000 faces) vous risquez rapidement de faire face
au dilemme entre niveau de détail modélisé et ceux
affichés en normalmap. Ce qui est aussi le début des aller-retour
sur le modèle haute définition pour rectifier formes et
détails... Pas d'inquiétude, après une certaine pratique
vous déterminerez avec aisance les détails à ne pas
manquer en modélisation sur la version basse def pour avoir un
résultat cohérent.
Un
autre grand avantage de cette méthode de travail et la création
aisée d'une texture d'occlusion ou d'autres textures ( passe de
couleur, ou bien même de spéculaire -brillance- pour donner
plus de matière à votre matériau ) depuis la version
haute définition et pouvant servir de base à la création
d'autre textures.
Par
ailleurs, il vous est possible d'essayer une combinaison des deux workflows
présentés au dessus, c'est même ce que j'ai réalisé
pour ma composition Varga que je vous présente dans les paragraphes
suivants. |