Imprimer

Aurora-Sim Materials Support

Categories Aurora-Sim Tags Aurora-Sim | Server 3D
OS Windows Linux Macintosh Compat OpenSim Aurora-Sim Diva Disto Second Life
Aurora-Sim Materials
Aurora-Sim Materials
  • Titre
    Aurora-Sim Materials Support
  • Createur
    dahlia
  • Modifié le
    26 Mai 2013
  • Page vues
    2368 fois
  • Version
    Alpha
  • Gratuit
    Oui
  • Favoris
    Ajouter aux favoris
  • J'aime
  • Voter
    (3 votes)

Nous somme heureux de vous annoncer que Aurora-Sim support les "Materials". Mais de quoi s'agit il exactement ... ? Et bien celà vous permet d'ajouter des textures supplémentaires sur vos prims, mesh et avatars afin de leur donner plus de relief et par la même occasion plus de réalisme.

Les textures possibles sont: Color Map, Normal Map, Height MapSpecular Map.

Color Map Normal Map Height Map Specular Map
Color Map Normal Map Height Map Specular Map

 Note: Il existe aussi un hack pour accepter les Parallax Textures et peut-être qu'un jour les Tessellations suivront ...

Texture (diffuse) Bumpiness (normal) Shininess (specular)

Texture (diffuse)

Bumpiness (normal)

Shininess (specular)

Comment activer les Materials dans Aurora-Sim ?

Pour activer les Matérials dans Aurora-Sim, vous devez mettre Enable sur true dans la section [MaterialsDemoModule] du fichier Startup.ini situé dans bin/Configuration/Modules.

[MaterialsDemoModule]
;; Change this to true to enable the new render materials module
Enabled = true
Les materials c'est quoi ?

Dans le model d'éclairage d'OpenGL, on peut spécifier à chaque vertex sa couleur ambiante, sa couleur diffuse, et sa couleur spéculaire, or maintenant, nous n'utilisons plus de l'éclairage par vertex mais par pixel. Il est dommage de devoir spécifier ces composantes par vertex alors que le reste des calculs d'éclairage va se faire par pixel. C'est pour cela que nous avons besoin de la même notion de materials qu'OpenGL, mais cette fois ci par pixel. Pour cela, nous allons utiliser plusieurs textures par materials.

La texture de diffuse:

La texture de diffuseElle représente la couleur du material à son éclairage maximum. Contrairement au textures qu'on aperçoit généralement dans les jeux, notre texture de diffuse ne doit par contenir d'information d'éclairage, c'est-à-dire, qu'elle ne doit pas être pré ombrée, sinon, ces informations d'éclairage vont entrer en conflit avec notre éclairage en temps réel (en étant mal orienté par exemple).

La normal map:

La normal mapBien qu'elle ne soit pas une des composante direct de l'éclairage, la normal map nous sert à calculer la composante diffuse et spéculaire. Elle représente le volume virtuel de notre surface comme nous l'avons vu dans le quatrième tutoriel. Pour réduire la place occupée sur le disque par les textures, on peut retirer la normal map de la height map, que nous verrons plus loin, mais je ne le fais pas dans ce tutoriel. Voici la normal map utilisée dans ce tutoriel.

La gloss map:

La gloss mapComme nous l'avons vu plus haut, la gloss map permet de spécifier par pixel l'intensité, mais aussi la couleur des reflets spéculaires. On peut par exemple faire une gloss map jaune pour l'utiliser sur un material représentant de l'or, ainsi, on s'assure que, quelque soit la couleur de la lumière qui éclaire notre surface, le reflet spéculaire sera toujours jaune. Voici la gloss map utilisée dans ce tutoriel.

La height map:

La height mapIci, la height map n'entre pas dans le calcul de la lumière (bien qu'on puisse l'utiliser pour calculer la normal map), mais elle va nous servir au calcul du parallax mapping. La height map est une texture représentant, comme son nom l'indique, la hauteur de chaque pixel. Il peut être préférable d'utiliser des height maps servant à générer des normal maps au lieu d'utiliser directement des normal maps pour plusieurs raisons. En effet, une height map en niveau de gris prend moins de place sur le disque, permet de générer la normal map et de parallax mapping, mais il y a aussi des considérations qualitatives que je ne présenterai pas ici. Voici la height map utilisée dans ce tutoriel.

Vous aurez peut être remarqué qu'il n'y a pas d'ambiante map... Cela est dû au fait que la lumière ambiante peut être obtenu à partir de la texture de diffuse.

Le parallax mapping c'est quoi ?

Bien qu'il ne soit pas directement lié à la gestion de la lumière, le parallax mapping n'est néanmoins utilisable qu'avec un système d'éclairage par pixel. En effet, le parallax mapping consiste à déformer les textures en fonction d'une height map pour obtenir un effet de volume plus prononcé qu'avec simplement du bump mapping. Il n'y a donc aucun intérêt à utiliser du parallax mapping avec du simple light mapping par exemple.

Un gros avantage du parallax mapping est qu'il est très peu consommateur en ressources et qu'il est facile à mettre en oeuvre. En effet, il suffit d'avoir une height map (on peut la stocker dans la composante alpha de la normal map) et un vecteur du pixel vers la camera pour calculer les nouvelles coordonnées de textures déformées.

Le parallax mapping consiste simplement à calculer un décalage dans les coordonnées de textures en fonction de la direction du pixel par rapport à la camera et de la hauteur du pixel dans la height map. Ceci se résume à trois lignes supplémentaires dans le fragment program.Encore une fois, pour bien voir la différence, rien ne vaut des images comparatives avec/sans.

Scène avec/sans parallax mapping.

On peut voir que les pierres on été déformées pour donner une meilleur impression de volume, mais surtout, cette déformation se fait par rapport à la position de la camera, donc si la camera bouge, la déformation va se modifier pour prendre en compte la nouvelle direction de la camera.