jeudi 8 avril 2010

USS Nimitz (CVN-68) WIP - X-Plane (2)

Nimitz - Blender specular map - X-Plane

Un premier test ingame avec une specular map sous la forme d'une animation GIF. Pourquoi une animation ? Parce que l'apparence de cette specular map est fonction de la position de l'observateur par rapport à la source de lumière. Il est donc difficile de visualiser son intérêt sur une image fixe.

Depuis la version 9.40 de X-Plane, il est possible d'utiliser une normal map sur les objets. Cette carte des normales utilisent les canaux R, V et B de la texture pour définir l'orientation de la normale de la face. Reste donc un canal alpha où il est possible de placer une specular map. Mais comment la réaliser ?

Cette specular map est une image en niveau de gris, du noir (absence de reflets) au blanc (reflets à l'intensité maximale). Pour ce test, je me suis contenté de reprendre la texture couleur du pont d'envol de l'USS Nimitz. Cette texture a été convertie en noir et blanc et intégrée dans le canal Alpha de ma normal map. J'ai également rajouté un texte pour accentuer la lisibilité de cette petite expérience.

Tout ça a été réalisé grâce au Node Editor de Blender !
Comme toujours ! :)

Lien vers  image en haute definition (1920 X 1080 pixels)

mercredi 7 avril 2010

USS Nimitz (CVN-68) WIP - X-Plane

Nimitz WIP - X-Plane

EDIT (03/09/2010) : l'image originale de cet article a été remplacé par une image de mon projet "Nimitz" en cours de réalisation.

A mes yeux, la plus grande qualité du simulateur de vol X-Plane est la liberté d'agir sur ses ressources. Je vous présente aujourd'hui une petite modification que j'ai réalisé sur le porte-avion USS Nimitz de la version 9 de X-Plane. N'appréciant pas l'apparence du pont d'envol de la version originale, j'ai importé ce fichier dans Blender pour l'étudier dans un premier temps. Le Nimitz est un objet unique "nimitz.obj" avec sa texture associée "Navy.png" de 1024 pixels de côté. L'examen du dépliage du pont fait apparaître que les faces ont été dépliées les unes sur les autres et partagent donc la même portion de la carte de diffusion.

Pour réaliser ce que j'avais en tête, il m'a fallu déplié à nouveau les faces du pont avec le mode "Project from View" en vue de dessus et exporter un gabarit de dépliage. Après une petite visite sur le site www.cgtextures.com pour récupérer deux ou trois textures de routes et quelques manipulations assez simples avec un éditeur 2D, l'objet et la nouvelle texture ont été testés ingame. Vous avez une idée du résultat avec la capture d'écran proposé dans ce billet.

Si l'apparence du pont lors d'un survol a basse altitude est crédible, il n'en est pas de même quand le point de vue de l'utilisateur est plus proche, par exemple lors des phases d'atterrissage et de décollage. C'était d'ailleurs tout à fait prévisible car la surface du pont d'envol du Nimitz est de 18000 mètres carrés (source Wikipedia) !... Alors représenter une telle surface avec une petite portion d'une texture de 2048 pixels de côté, c'est tout simplement impossible.

L'amélioration est donc minime... mais il est possible maintenant de dessiner par exemple les ombres des appareils statiques sur le pont. Ce qui n'était pas envisageable dans la version originale.

Le modèle 3D original du Nimitz manque singulièrement de... rigueur dans sa conception (ou est-ce le résultat d'une exportation au format .obj un peu chaotique ?...). Je n'ai, par exemple, découvert aucune logique dans les centaines !!! de sous objets présents. Pour les débutants sur Blender, je vous invite à réaliser vos essais sur des modèles beaucoup plus simples dans un premier temps.

De plus, je viens de découvrir que la texture associée au Nimitz "Navy.png" est également utilisée par la frégate ! Vous êtes prévenus !

PS : www.cgtextures.com est une ressource incontournable pour nos travaux sur X-Plane. Des milliers de textures vous sont proposées en téléchargement. Une fois inscrit, il vous sera possible de télécharger 15Mo/24h. Vous êtes réticent à vous inscrire ?... Pour ma part, je ne le regrette pas. C'est rapide, simple et efficace !

dimanche 4 avril 2010

Grumman E2C Hawkeye - Textures

E2C Hawkeye for X-Plane - WIP

J'ai passé une bonne heure à m'entrainer à l'appontage sur le porte-avion Nimitz avec le Grumman E2C Hawkeye en cours de réalisation. Malgré un modèle de vol pas très piègeux, l'exercice n'est pas facile. Mais je crois m'être poser à peu près correctement... une fois !
A cette occasion, je n'ai pas manqué de faire un screenshot pour immortaliser cette étape ! :)

Bref, coté texture, c'est encore très basique. Encore un simple fond gris clair, quelques lignes de panneaux, les marquages. Tout ça fait encore très plastique mais l'important est d'avoir constaté que la résolution de cette unique texture de 2048 pixels est suffisante pour un rendu convaincant ingame en 1920X1080 pixels. A une distance d'observation d'une vingtaine de mètres, c'est correct. Plus près... c'est moins bien ! :) L'ensemble fuselage, les nacelles moteur et les ailes ont été dépliées à la même résolution. Le radôme est d'une résolution inférieure pour se ménager un peu de place. C'est à peine visible alors quand c'est possible, il ne faut pas s'en priver.

Un petit "truc" qui fonctionne assez bien : tenter des petites zones très détaillées à des endroits stratégiques. Par exemples les pâles d'hélices sont à une résolution double. Quelques petites inscriptions même illisibles et le tour est joué. Je reconnais que ce n'est pas très visible sur cette image ramenée à 900 px de large mais en plein écran HD, ça marche.

Jusqu'à présent, la texture a été réalisée avec Blender. Tous les éléments ont été dessiné en 2D sur le plan XY et rendu avec une caméra orthographique. Une image du dépliage UV en background me sert de guide. Tout les matériaux utilisés sont "shadeless". De cette facon, je n'ai pas besoin de lumière... et la présence éventuelle d'ombres parasites disparaît. N'ayant pas à passer constamment de Blender à un éditeur graphique, la session de travail se déroule sans heurt. Il suffit de basculer entre les deux scènes "modèle 3d" et "texture 2D" du même fichier blend. J'ai eu recours également à l'éditeur de nœuds pour appliquer la passe d'occlusion ambiante après le rendu de la texture et sauvegarder le résultat.

Ainsi, après une modification, il suffit de lancer un rendu, de repasser dans la scène "modèle 3D", de recharger la texture pour visualiser le résultat. Je reconnais que cela semble un peu compliqué, mais c'est très efficace.

Une petite vidéo est peut-être nécessaire là ! :)

Légende de l'image : l'espace de travail de Blender. A gauche, le modèle 2D et à droite le rendu en mode orthographique avec application de la passe d'illumination globale obtenu par l'éditeur de nœuds.

jeudi 1 avril 2010

Photoshop ou Gimp - Dialogue de sourds

- Alors, t'en es oû ?
- Ca y est ! J'ai fini la modélisation et le dépliage UV de mon avion.
- Bien ! Tu as fait un tour avec ton bébé dans X-Plane ?
- Oui !
- Et alors ?
- ...
- Alors ?
- Eh bien, c'est cool ! Tu vois ton modèle 3D évoluer en temps réel à la moindre sollicitation de ton joystick...
- Super !
- ...
- Bon ! Alors, tu attaques les textures ?
- ...
- Je croyais que tu aimais ça ! Dessiner les textures !
- ...
- Alors ? Photoshop ou Gimp ?
- ...
- PHOTOSHOP OU GIMP ?
- ...
- PHOTOSHOP OU GIMP ?
- ...
- C'est quand même pas si difficile de choisir, non ? Photoshop ou Gimp ?
- ...
- Ben, c'est Blender...
- ...
- Pardon ?
- Blender...
- T'es dingue ?
- Si, si... Blender
- Ah oui ? Et pourquoi ?
- Pour les rivets !
- Quels rivets ?
- Ceux qui sont sur l'avion !
- Tu parles des rivets sur la surface de l'avion ?
- Oui...
- Tu veux dessiner tout les rivets ?
- Oui..
- Sur une texture de 2048 pixels de coté ?
- Oui...
- Pfff... Réfléchis ! As-tu une idée de la taille de ton rivet sur une texture de 2048 pixels de coté ?
- ...
- Alors ?
- Oui... je sais...
- Mais encore ?
- Je veux juste les deviner...
- Et tu veux faire ca avec Blender ?
- Oui, en fait, c'est assez simple. Dans blender, une nouvelle scène avec une camera en mode orthographique perpendiculaire au plan xy...
- Arrête ! Je sens que je vais avoir mal à la tête !
- Mais si ! C'est simple !
- ...
- Un statif de reproduction ! Tu poses ton document, l'appareil photo au dessus pointant vers le document.
- Et alors ?
- Et bien, tu dessines le tout en 2D sur le plan XY !
- ...
- En glissant dessous en background une image de ton dépliage UV pour guide !
- ...
- Tu comprends ?
- Oui... Mais tu peux faire ça avec Photoshop ou Gimp ?... Oui ?
- Oui !
- Mais alors pourquoi avec Blender ?
- Avec les calques et la position relative sur l'axe Z de mes objets, je peux contrôler des centaines d'objets !
- C'est tout ?
- Non ! je peux utiliser mon rivet en tant qu'objet dynamique...
- ...
- Simple ! Je modifie mon rivet, tous les rivets sont modifiés... taille, couleur, forme... ce que tu veux !
- Mais on peux faire ça aussi avec Photoshop ou Gimp n'est ce pas ?
- Exact ! Mais je peux aussi faire un modèle 3D de mon rivet ! Et hop... tout les rivets en 3D !
- Mais je ne vois pas le rapport. Tu dis dessiner en 2D !
- Oui ! Mais avec les infos sur le canal Z de ton rendu 2D, tu peux te récupérer une carte d'altitude en noir et blanc de la surface de ton modèle !
- ...
- Que tu convertis en normal maps et appliques sur ton modèle 3D !
- Et ca fonctionne ?
- Oui !
- Mais alors ???
- Oui ?
- Pourquoi tu boudes ?
- Je ne me suis pas encore décidé !
- A quel propos ?
- Les finitions !
- Oui ?
- Photoshop ou Gimp ?
- ...


Quel jour on est ?

lundi 29 mars 2010

Baking Global Illumination avec Blender

  • En haut, vue du modèle 3D ingame. Une texture basique est appliquée avec un gris clair en aplat en guise de fond, dessin des principaux panneaux et marques d'identification.
  • En bas, la même chose mais avec une passe Global Illumination

A l'examen, peu de différences notables. On peut remarquer cependant une interaction lumineuse entre le radôme (le grand disque au dessus de l'avion) et la partie supérieure du fuselage qui apparaît plus sombre. L'aspect est un peu amélioré...

E2C Hawkeye - Global illumination
  • En haut, vue du modèle 3D ingame coté ombre avec la texture basique.
  • En bas, la même chose mais avec une passe d'illumination globale.

Le rendu est totalement plat pour toutes les surfaces à l'ombre avec la texture basique. Il est impossible de différencier les différentes parties de l'avion, particulièrement le fuselage et les nacelles moteur. Bref, le résultat est confus. C'est ici que l'on voit l'intérêt de la passe d'illumination globale. les volumes sont plus convaincants.

L'utilité de la chose (l'illumination globale) étant démontrée, reste maintenant à produire cette passe d'illumination globale. En fait, c'est assez simple.

  • Passez en vue de dessus,
  • Positionner votre curseur au centre géométrique de l'avion,
  • Ajoutez une icosphere,
  • Redimensionnez l'icosphere. Elle doit totalement englober votre avion. Un rayon de 30 mètres pour ce Grumman E2-C Hauwkeye en test,
  • Ajoutez une lumière de type Spot et parentez cette lumière à la sphère,
  • Activez l'option duplivert pour l'icosphere : le spot est dupliqué sur tous les vertices de la sphère,
  • Inversez la direction des spots,
  • Ajuster l'intensité de la source lumineuse. 0.1 est une bonne valeur de départ pour une icosphere subdivision 2,
  • Activez les ombres,
  • Lancez un baking des ombres,
  • Appliquez ce baking sur un nouveau calque en mode multiply sur votre texture de diffusion dans votre éditeur 2D.

C'est fini ! Enregistrez votre nouvelle texture. Lancez X-plane, rechargez votre et vérifier l'apparence de votre modèle... à l'ombre ! :)

- page 79 de 84 -