Gmax Ambient Occlusion for Gmax using...

12
Gmax . ___________________________________________________________________________________________________________________ __________________________________________________________________________________________________________ ©2014 par Lagaffe Page 1 sur 12

Transcript of Gmax Ambient Occlusion for Gmax using...

Page 1: Gmax Ambient Occlusion for Gmax using xNormalfrenchvfr.free.fr/file/_KB/gmax/[Gmax]_utilisation_Ambient...Gmax Ambient Occlusion for Gmax using xNormal . _____ _____ ©2014 par Lagaffe

Gmax Ambient Occlusion for Gmax using xNormal . ___________________________________________________________________________________________________________________

__________________________________________________________________________________________________________

©2014 par Lagaffe Page 1 sur 12

Page 2: Gmax Ambient Occlusion for Gmax using xNormalfrenchvfr.free.fr/file/_KB/gmax/[Gmax]_utilisation_Ambient...Gmax Ambient Occlusion for Gmax using xNormal . _____ _____ ©2014 par Lagaffe

Gmax Ambient Occlusion for Gmax using xNormal . ___________________________________________________________________________________________________________________

__________________________________________________________________________________________________________

©2014 par Lagaffe Page 2 sur 12

Introduction Dès qu l'on commence à réaliser des objets sous GMax, on est vite confronté au problème: faire les ombres réalistes sur ses créations. Bien entendu, 3DS Max peut faire ce genre de chose, mais qui a les moyens pour un hobby d'investir dans un logiciel si cher ... Le logiciel Blender est aussi capable de le faire mais nécessite un apprentissage de ce nouveau logiciel. Néanmoins, il existe un logiciel qui fonctionne en tant que programme annexe pour accomplir cette tâche. il s'agit de xNormal ... essayez le et vous verrez! Après quelques tentatives on se rend compte que les ombres et les occlusions sont deux complètement choses différentes. xNormal n'apporte pas beaucoup d'aide pour les ombres, mais permet de calculer des "Ambient Occlusion" (nldr: désolé pour l'anglicisme mais c'est plus parlant). On peut faire des ombres manuellement dans PhotoShop , mais xNormal est capable de réaliser de très belles "Ambient Occlusion" qui non seulement ressemblent beaucoup à des ombres, mais qui permettent aussi d'économiser beaucoup de temps surtout si vous les faîtes manuellement ! Nota: Ce n'est pas la peine d'essayer de rendre des "Ambient Occlusion" à partir de Sketchup car vous devrez repassez par GMax pour appliquer correctement vos textures sur votre modèles donc gain de temps nul si ce n'est pas le contraire ...

Pré-requis :

La première chose que vous devez faire est évidemment télécharger et installer xNormal . C'est gratuit pour des productions "freeware" et le coût n'est pas prohibitif pour des projets commerciaux. Le logiciel existait en 2013 en version 32 bits ou 64 bits mais pour mes essais j'ai téléchargé et installé la v3.18.6 (x64) qui était la dernière version disponible pour mon architecture matérielle. xNormal est disponible sur le site ci-dessous : http://www.xNormal.net/Downloads.aspx. Depuis une version 3.18.7 est sorti corrigeant certains problèmes de mémoire.

Génération d'un maillage approprié : Le plus gros problème avec xNormal est qu'il ne supporte pas plusieurs fichiers de texture. Il existe néanmoins des moyens de contourner cette limitation, moyens qui seront abordés ultérieurement. Pour l'instant , nous allons calculer un rendu d'un modèle simple qui utilise juste un fichier de texture unique, ce qui nous permettra ensuite de comprendre les étapes nécessaires pour plusieurs fichiers.

Page 3: Gmax Ambient Occlusion for Gmax using xNormalfrenchvfr.free.fr/file/_KB/gmax/[Gmax]_utilisation_Ambient...Gmax Ambient Occlusion for Gmax using xNormal . _____ _____ ©2014 par Lagaffe

Gmax Ambient Occlusion for Gmax using xNormal . ___________________________________________________________________________________________________________________

__________________________________________________________________________________________________________

©2014 par Lagaffe Page 3 sur 12

En résumé, le processus va se dérouler de cette façon: 1) exporter un *.mdl à partir de votre logiciel GMax, 2) utiliser ModelConverterX pour ensuite générer un fichier *.x 3) importer le fichier *.x dans xNormal et calculer le rendu de la carte d'occlusion 4) appliquer le plan d'occlusion par dessus de votre fichier de texture.

Une bizarrerie que j'ai trouvé avec xNormal est que sur les objets de taille normale les "rayons" peuvent être empêchés de se réfléchir sur des parties du modèle en raisons d'éléments saillants; juste sous les combles d'un hangar par exemple, vous verrez probablement une bande blanche le long de la partie haute du mûr. Pour cette raison, vous aurez besoin de jouer sur l'échelle de votre modèle de manière à le grossir exagérément et d'exporter un modèle spécifiquement pour le rendu. Un autre problème que vous aurez est le besoin d'une très grande surface plate en bas du hangar pour que les rayons puissent rebondir, sinon vous vous retrouverez avec très peu ou pas du tout d'occlusion sur les murs. Encore une fois, cela nécessitera une modèle spécial qui sera exporté uniquement pour l'opération de rendu de l' "Ambient Occlusion". L'utilisation du logiciel xNormal nécesitera toujours une étape supplémentaire de consistant à exporter une variation de votre modèle spécialement pour le processus de rendu. Quelques notes sur le "mapping" (opération d'application sur le modèle 3D d'une texture) : Le consensus général lorsque on utilise des "occlusion maps" (les textures d'occlusion ambiante que l'on applique sur le modèle 3D), c'est que toutes les parties de votre modèle doit être appliquées sur une partie unique de la feuille de texture. Si cela est vrai dans une certaine mesure, j'ai trouvé des contre-exemples dans de nombreux cas. Si les parois latérales gauche et droite de votre hangar sont exactement les mêmes, il n'y a aucun problème de "doubler les UVW" de sorte que chaque mur utilise la même texture. Mais si votre mur de gauche a une porte modélisée ou une autre caractéristique qui n'était pas présente sur le mur de droite chaque mur aura bien entendu besoin de sa propre empreinte sur la texture. Vous devrez faire par contre très attention au "mapping" des petites pièces où il est souvent de pratique courante de placer toutes les UVW relatives à ces petites pièces sur une partie lambda de la texture pour juste leur donner une couleur ambiante (sans jeux de mots ;-)).

Par exemple si vous aviez des balustrades blanches à texturer ou quelque chose de similaire, vous pourriez regrouper tous les UVW en un petit groupe et les "mapper" sur une porte blanche à l'arrière de l'immeuble. Ceci est une pratique courante et vous vous dîtes que la porte se moquera si une partie de celle-ci a été appliquée aux poteaux de la rampe, mais quand vous réalisez le rendu de l'occlusion, la balustrade le prendra en compte dans son rendu et vous vous retrouverez avec un tas de curieux ombrages noir sur la porte elle-même. Dans un cas comme ça, il est conseiller de "peindre" juste un petit carré blanc ou quelque chose d'approchant sur votre texture et de "mapper" vos pièces sur cette zone.

Page 4: Gmax Ambient Occlusion for Gmax using xNormalfrenchvfr.free.fr/file/_KB/gmax/[Gmax]_utilisation_Ambient...Gmax Ambient Occlusion for Gmax using xNormal . _____ _____ ©2014 par Lagaffe

Gmax Ambient Occlusion for Gmax using xNormal . ___________________________________________________________________________________________________________________

__________________________________________________________________________________________________________

©2014 par Lagaffe Page 4 sur 12

Vous pourrez ensuite sélectionner et supprimer une partie de la carte d'occlusion sur le carré blanc après que l'occlusion soit en place pour se débarrasser des artéfacts noirs du rendu ou si vous sentez que cela sera particulièrement difficile ou/et les balustrades soient très grandes, vous pouvez étaler les UVW de sorte que le rendu de l'occlusion rendu soit réellement bénéfique. J'irais plus en détail sur ce point à la fin de l'article en détaillant comment ont été traités le petit surplomb et les supports au-dessus de la porte sur le côté arrière du modèle de démonstration .

Page 5: Gmax Ambient Occlusion for Gmax using xNormalfrenchvfr.free.fr/file/_KB/gmax/[Gmax]_utilisation_Ambient...Gmax Ambient Occlusion for Gmax using xNormal . _____ _____ ©2014 par Lagaffe

Gmax Ambient Occlusion for Gmax using xNormal . ___________________________________________________________________________________________________________________

__________________________________________________________________________________________________________

©2014 par Lagaffe Page 5 sur 12

Exporter le mdl pour le rendu : Le fichier ZIP allant avec ce document contient un hangar simple fait sous GMax que nous allons utiliser dans le but de la démonstration . Lancez GMax et ouvrez le fichier Normal_tut_01.gmax. Le modèle est "mappé" et le fichier de texture xNormal_tut01.psd est appliqué sur ce modèle 3D, mais cette texture est une simple fond de gris. Vous verrez bientôt un autre avantage de l'utilisation de xNormal en ce qu'il peut vous faire économiser beaucoup de temps. Basiquement quand "mappez" votre modèle , vous pouvez simplement appliquer les UVW où vous voulez et quand vous appliquerez le rendu du plan d'occlusion vous disposerez d'un guide bien pratique pour vous aider à placer les éléments lorsque vous commencerez à ajouter des détails de texture plus tard. Sélectionnez tout les éléments dans la scène et utilisez l'outil "scale transform" de manière à appliquer un facteur d'échelle de 1000% .

Page 6: Gmax Ambient Occlusion for Gmax using xNormalfrenchvfr.free.fr/file/_KB/gmax/[Gmax]_utilisation_Ambient...Gmax Ambient Occlusion for Gmax using xNormal . _____ _____ ©2014 par Lagaffe

Gmax Ambient Occlusion for Gmax using xNormal . ___________________________________________________________________________________________________________________

__________________________________________________________________________________________________________

©2014 par Lagaffe Page 6 sur 12

Exporter le fichier *.mdl dans un dossier où vous exportez normalement vos modèles, et nommer le en tant que "xNormal_mesh.mdl " ou utiliser un autre nom unique qui permettra de différencier du reste de vos modèles. Ce fichier sera un fichier semi-permanent dans votre dossier contenant vos modèles et à chaque fois vous exportez un modèle pour le rendu d'occlusion, vous écraserez ce fichier avec votre export en cours. Fermer GMax sans sauvegarder sinon vous allez écrasez votre réalisation avec cette version modifiée du hangar ce qui n'est pas désiré! Ouvrez le fichier. mdl avec MCX (ModelConvectorX d'Arno Gerretssen) et exporter le en tant que "xNormal_mesh.x ", ce fichier x . deviendra aussi un fichier semi-permanent dans votre dossier et vous allez l'écraser chaque fois que vous exportez un . x via le logiciel MCX . La raison pour laquelle vous faites cela est que de cette façon vous aurez seulement à configurer le programme xNormal une seule fois et il ira toujours rechercher le fichier "xNormal_mesh.x " pour réaliser la carte d'occlusion selon ce qu'il trouve dans le fichier *.x.

Un très bon tutorial vidéo : Il existe une très bonne vidéo pouvant vous aider dans la compréhension de ce tutorial, cette vidéo est à cette adresse URL: http://www.youtube.com/watch?v=0IS0BxcJs2M Il existe une multitude de différences entre le didacticiel vidéo et ce qui est décrit dans cet article, mais la vidéo éclaircira beaucoup de zones d'ombres et de questions de manière à vous donner une idée générale de l'utilisation de ce logiciel.

Page 7: Gmax Ambient Occlusion for Gmax using xNormalfrenchvfr.free.fr/file/_KB/gmax/[Gmax]_utilisation_Ambient...Gmax Ambient Occlusion for Gmax using xNormal . _____ _____ ©2014 par Lagaffe

Gmax Ambient Occlusion for Gmax using xNormal . ___________________________________________________________________________________________________________________

__________________________________________________________________________________________________________

©2014 par Lagaffe Page 7 sur 12

Chargement des meshs en xNormal : Lancer le programme xNormal et cliquez sur le bouton "Hight definition meshes" sur le côté en haut à droite de l'interface. Cliquez droit sur la barre comme indiqué dans le tutorial vidéo puis sélectionnez "Add meshes", recherchez le fichier *.x que vous avez exporté depuis MCX à l'étape précédente. Cliquez sur le bouton "Low definition meshes" et charger votre fichier *.x exporté. dans le slot "Low definition" comme vous l'avez fait ci-dessus pour le maillage haute définition.

Pas d'autres paramètres ne doivent être ajustés sur ces deux onglets et c'est un gain de temps aussi longtemps que vous continuerez à écraser votre fichier "xNormal_mesh.x" à chaque fois que vous exportez un modèle pour rendu avec MCX.

Page 8: Gmax Ambient Occlusion for Gmax using xNormalfrenchvfr.free.fr/file/_KB/gmax/[Gmax]_utilisation_Ambient...Gmax Ambient Occlusion for Gmax using xNormal . _____ _____ ©2014 par Lagaffe

Gmax Ambient Occlusion for Gmax using xNormal . ___________________________________________________________________________________________________________________

__________________________________________________________________________________________________________

©2014 par Lagaffe Page 8 sur 12

Définissez les options de rendu : Cliquez sur le bouton marqué "Baking options" (sur la droite de l'interface le 3ièeme à partir du haut), choisissez d'abord un dossier, puis un nom de fichier de sortie, et le type de fichier pour la carte AO que xNormal va générer. Personnellement, j'utilise "xNormal_mesh " comme nom de fichier, et le programme xNormal va rajouter le suffixe "_occlusion " à ce nom de fichier quand il aura finit son travail. Comme le modèle exporté à partir de GMax et le fichier *.x exportés de MCX, cette carte d'occlusion deviendra également un fichier semi-permanent sur votre PC et il sera aussi écrasé à chaque fois que vous ferez un rendu d'occlusion avec xNormal.

Dans ce cas, je vous suggère de re-diriger la sortie dans le même dossier où vous stockez tous vos fichiers texture *.psd pour vos modèles . À mon avis, il est préférable de réaliser les "maps" et de les sauvegarder au format *.png parce que PhotoShop considère les fichiers png comme des fichiers où sont définies des calques ("layers") donc vous pouvez simplement faire glisser le fichier d'occlusion au format *.png sur votre fichier de texture via PhotoShop sans opérations de Copier/Coller ou de pénibles procédures d'alignement .

Page 9: Gmax Ambient Occlusion for Gmax using xNormalfrenchvfr.free.fr/file/_KB/gmax/[Gmax]_utilisation_Ambient...Gmax Ambient Occlusion for Gmax using xNormal . _____ _____ ©2014 par Lagaffe

Gmax Ambient Occlusion for Gmax using xNormal . ___________________________________________________________________________________________________________________

__________________________________________________________________________________________________________

©2014 par Lagaffe Page 9 sur 12

Terminez la configuration de la page "Baking options", comme indiqué ur l'image de gauche, Définissez la taille du rendu à 1024 x 1024, Réglez le paramètre "Edge padding" à 2, Cochez la case de l'"Ambient Occlusion", Décochez "Normal map" et positionnez l'anti-aliasing à 1x. Vérifiez que la case fichier écrasement n'est pas cochée . Toutes les autres options peuvent être à gauche à leurs paramètres par défaut.

Page 10: Gmax Ambient Occlusion for Gmax using xNormalfrenchvfr.free.fr/file/_KB/gmax/[Gmax]_utilisation_Ambient...Gmax Ambient Occlusion for Gmax using xNormal . _____ _____ ©2014 par Lagaffe

Gmax Ambient Occlusion for Gmax using xNormal . ___________________________________________________________________________________________________________________

__________________________________________________________________________________________________________

©2014 par Lagaffe Page 10 sur 12

Cliquez sur la case verte en regard de " l'Ambient Occlusion" pour faire apparaître la fenêtre "Occlusion map".

Contrairement au didacticiel vidéo, il n'y a pas besoin de changer quoi que ce soit ici, sauf le nombre de "rays". Les modifications de couleur indiquées dans le tutorial vidéo n'apportent rien avec la sortie de notre rendu , elles sont liés à l'écran de prévisualisation de rendu qui affiche la progression au cours.

Pour ce premier rendu, nous allons d'abord faire un passe rapide pour s'assurer que nous n'avons pas de chevauchement d'UVW ou d'autres anomalies qui gâcheraient le fini de la "map" d'occlusion, donc laissez la valeur par défaut de 128 pour le moment. Nous rechercherons la qualité plus tard, mais ces paramètres assez bas en qualité font la différence au niveau temps de rendu car ils ne prennent que quelques secondes là où des paramètres plus poussés consommeraient jusqu'à plusieurs minutes. Prenez l'habitude de passer par cet étape pour vérifier, ce rendu succinct vous alertera de tout problème potentiel avec votre "mapping" et ce très rapidement.

Un avertissement en ce qui concerne les températures CPU :

xNormal utilise très FORTEMENT le CPU: il va utiliser 100 % des 4 cores et il le fera sur toute la durée de son traitement qui peut aller jusqu'à 20 minutes en fonction de la taille et de la qualité de votre "map" donc il est conseillé d'enlever la poussière qui encrasse les boîtiers et les radiateurs pour éviter une surchauffe à votre système. Prendre des mesures appropriées pour assurer que votre système de refroidissement est en bon état est un conseil avant de passer par les étapes qui suivent !

Page 11: Gmax Ambient Occlusion for Gmax using xNormalfrenchvfr.free.fr/file/_KB/gmax/[Gmax]_utilisation_Ambient...Gmax Ambient Occlusion for Gmax using xNormal . _____ _____ ©2014 par Lagaffe

Gmax Ambient Occlusion for Gmax using xNormal . ___________________________________________________________________________________________________________________

__________________________________________________________________________________________________________

©2014 par Lagaffe Page 11 sur 12

Rendre la carte d'occlusion : Cliquez sur le X rouge pour fermer la fenêtre "Occlusion map" et vous devriez être prêts à faire votre premier rendu d'occlusion. Cliquez sur le gros bouton rond "Generate maps " et le processus commence. Un aperçu écran s'ouvre montrant le rendu dans l'action , cliquer sur le menu où il est dit " Do NOT notify tile updates" et changer pour "Notify tile updates" si vous voulez regarder la progression du rendu. Une fois le rendu est terminée, vous verrez dans la fenêtre de prévisualisation " Map finished in: xx.xxx seconds" dans le coin inférieur gauche À ce stade , vous devriez avoir un fichier "xNormal_mesh_occlusion.png " dans votre répertoire de texture. Ouvrez la "map" d'occlusion dans Windows Photo Viewer ou faites-le glisser dans PhotoShop pour le visualiser. Si vous trouvez des zones noires étranges cela signifie que vous devez probablement avoir des chevauchement d'UVWs ou un problème qui est à l'origine de ces artéfacts. Cela peut se produire d'ailleurs si vous utilisez des "Groups" dans GMax et si votre modèle utilise plusieurs fichiers de texture.

Accroître la qualité et rendre à nouveau : Si la "maps" semble bonne, passez à l'étape suivante et augmentez la qualité de votre rendu. Cliquez sur le carré vert associé à l'"Ambient Occlusion" et réglez le nombre de "rays" à 1024. Réglez l'anti-aliasing à 2x et il suffit de cliquer sur le bouton "Generate maps". Il faudra un peu plus longtemps cette fois (généralement 2 à 3 minutes) et lorsque vous avez terminé xNormal écrasera votre "xNormal_mesh_occlusion.png " en cours avec une version de meilleure qualité .

Appliquer le plan d'occlusion à la feuille de texture : Ouvrez " xNormal_tut01.psd " dans Photoshop et sélectionnez le calque en haut de la pile, faites glisser le rendu *.png dans PhotoShop. Dans la palette des calques, faites glisser le calque d'occlusion de l'*. png sur la texture, maintenez la touche Maj lorsque vous déposez le calque. Cela devrait positionner l'occlusion là où elle doit être sans avoir d'alignement nécessaire. Réglez le mode de fusion de la couche d'occlusion sur "multiply" et enregistrez. Maintenant lancez GMax et ouvrez "xNormal_tut_01.gmax " de nouveau: vous devriez voir l'effet de l'occlusion .

Page 12: Gmax Ambient Occlusion for Gmax using xNormalfrenchvfr.free.fr/file/_KB/gmax/[Gmax]_utilisation_Ambient...Gmax Ambient Occlusion for Gmax using xNormal . _____ _____ ©2014 par Lagaffe

Gmax Ambient Occlusion for Gmax using xNormal . ___________________________________________________________________________________________________________________

__________________________________________________________________________________________________________

©2014 par Lagaffe Page 12 sur 12

Notes:

a) Vous pouvez enregistrer vos paramètres de rendu dans xNormal , cliquez sur " Settings and examples" 2ième bouton du bas, vous trouverez 3 boutons en haut de l'écran à partir desquels vous pouvez enregistrer ou charger les paramètres de/vers un fichier XML ou réinitialiser toutes les options à leurs valeurs par défaut.

b) Vous pouvez jouer avec le "Padding Edge" mise sur la page "Backing options". xNormal va ajouter une petite marge autour de vos UVW qui vous donne un peu de marge de manœuvre sur les bords, des valeurs plus élevées vous donneront plus de place. Théoriquement, une marge de 0 devrait être suffisante, mais j'ai constaté que vous verrez parfois bizarrerie sur les coins de vos modèles lorsque les "mipmaps" commencent à faire leur effet , personnellement j'utilise donc une marge de 2 (pixels). L'inconvénient est que vous devez laisser un peu plus d'espace entre vos UVW dans l'éditeur UVW espace que vous auriez aimé utiliser mais qui réduit bien sûr la surface utile de la feuille de texture. Si vous êtes contraint au niveau de l'espace sur votre feuille de texture, vous pouvez essayer abaisser la marge à 1.

c) Sur la page "Backing options", vous pouvez également trouver l'option "Bake base texture" très utile, essayez en décochant "Ambient Occlusion " et en validant "Bake base de texture". Ceci réalisera très rapidement une empreinte essentiellement de vos UVW qui pourrait être utile à certains moments pour arranger les divers éléments sur votre feuille de texture. Cliquez sur la case verte en regard de "Bake base texture" et vous pourrez définir la couleur de premier plan de la "maps" calculée, la couleur de fond n'a aucun effet lorsque vous calculez le rendu . png autres que dans la fenêtre de prévisualisation du rendu. xNormal va afficher un fichier dans le même dossier que celui contenant la "map" d'occlusion, mais cette fois il va ajouter "_baseTexBaked " au nom de fichier de sorte qu'il n'y a pas de danger d'écrasement de votre "map" d'occlusion.

___________________________________________________________________________________________________________

Voilà ce tutorial est terminé ... en espérant qu'il vous serve dans vos futures créations.