Ligne directrice et principes de base (RWW)

De wiki.railsim-fr.com
Aller à : navigation, rechercher

Ligne directrice générale

Ce document décrit la ligne directrice pour la création de modélisations pour le jeu. Egalement décrit dans ce document les principes de base que le créateur de modélisation devrait prendre en compte avant toute création.

Un mot à propos des exemples dans ce document:

Le logiciel de modélisation 3D Studio Max a été employé pour créer RailWorks, ainsi ce logiciel apparait dans les exemples proposés. Vous pouvez, bien sûr, utiliser un autre logiciel tel que Blender ou 3D Canvas. Le logiciel utilisé pour composer les textures est Adobe Photoshop; vous pouvez employer un des nombreux autres logiciels disponibles.

Indépendamment des logiciels que vous employez, ce document devrait être utilisé comme guide général des processus à suivre pour construire des modélisations pour RailWorks.

Remarque importante : Pour votre choix de logiciel, vous pouvez avoir besoin de modules additionnels pour exporter les modélisations dans RailWorks. Ces outils sont finalisés mais les modules additionnels pour quelques logiciels peuvent ne pas être disponibles immédiatement.

Orientation et origine

Toutes les formes devraient initialement être créées dans la vue de dessus de Max, avec l'objet faisant face à l'écran.

Sauf indication contraire, l'origine d'une forme ou le point de pivot doit être placée au centre de la base de l'objet. Une manière simple de faire cela est d'employer une possibilité de Max pour centrer le point de pivot de la forme, et puis de déplacer le point de pivot verticalement vers le bas, en fait sur le sol (le centre à la base de l'objet). Voir ci-dessous.

IMAGE ICI

Échelle

Pour une échelle correcte, toutes les formes devraient être construites en mètres. Il ne devrait jamais avoir d'échelle différente appliquée à une forme à tout moment.

Si c'est possible, il est conseillé de procéder à une remise à zéro d'une modélisation dans Max juste avant d'exporter une forme.

Matériaux

Il est important d'utiliser autant que possible pour la plupart des matériaux une convention logique pour les noms de ces matériaux indépendamment du fait qu'ils soient exigés par le jeu ou pas. Plusieurs matériaux ont besoin de noms spécifiques qui sont imposés dans une convention de noms de sorte que le jeu puisse par exemple modifier ou remplacer le matériau. Cependant, la plupart des matériaux ne seront pas employés spécifiquement par le jeu et il incombera à l'artiste de nommer ceux-ci. Dans ce cas, ces matériaux doivent garder des noms logiques de sorte que les modèles ou les scènes soient facilement compréhensibles par d'autres artistes qui les voient pour la première fois.

Principe de construction

En règle générale, un petit détail sur les modélisations NE DEVRAIT PAS être inclus dans la forme principale. Mais simplement, les modèles devraient être construits en plaçant les éléments sur la forme principale (voir l'image ci-dessous). Ceci présente un certain nombre d'avantages :

Ceci tend à réduire le nombre de polygone

Ceci facilitera par la suite l'écriture des LODs

IMAGE ICI

Textures

En règle générale, les textures pour un objet devraient se placer en-dessous de l'objet dans un dossier appelé " Textures ". Les objets peuvent partager des textures avec d'autres objets dans la même classe.

Par exemple, un bâtiment peut partager des textures avec un autre bâtiment et un véhicule routier peut partager des textures avec un autre véhicule routier.

Il est important que nous essayions de garder une taille cohérente entre les textures voisines. Si une incohérence dans la taille des textures est adoptée, cela peut être une texture à très basse résolution adjacente avec une texture à très haute résolution, à cause des méthodes de filtrage, une des textures sera nette et l'autre sera très brouillée. C'est un effet visuel indésirable. Essayer de garder le nombre de textures utilisées pour une forme à un minimum. Il est préférable de placer toutes les textures pour une forme simple sur une seule page de texture.

Groupes de textures

Comme le jeu gère l'heure et les saisons dynamiques, différents groupes de texture pour certains modèles dans l'environnement sont fournis. Jusqu'à 4 groupes de texture par modèle sont supportés :

Printemps - les arbres peuvent avoir un feuillage différent

Eté - conditions d'éclairage normale en été (par défaut)

Automne - les arbres peuvent avoir un feuillage différent

Hiver - Neige présente dans la texture

Les textures seront identifiées à l'aide d'une convention de noms avec suffixe. Les textures normales (par défaut) pour un objet auront des noms de texture sans suffixe. Les autres textures nécessaires pour les différentes saisons auront les suffixes suivants :

_sp ( Printemps )

_au ( Automne )

_wi ( Hiver )

Par exemple, prenons une texture appellée "house_city_1". Cette texture a seulement une variante pour l'hiver appelée "house_city_1_wi".

Transparence et couche Alpha

Si une transparence est exigée sur une texture :

- Un NON-alpha shader (par exemple TexDiff, TrainLightMapWithDiffuse.fx) doit être employé.

- L'image doit être sauvée comme une image à 32 bits (non palettisée)

- Le choix TRANS doit être validé sur le matériel. Pour les meilleurs résultats, employez seulement le blanc ou le noir pour le canal 'alpha (pas les habituels 256 dégradés de gris); noir complet pour les zones transparentes et blanc pour les zones opaques.

Il n'y a AUCUNE véritable gestion des canaux alpha dans le jeu. Par conséquent il N'EST PAS recommandé d'employer des shaders avec canal alpha. Si des shaders avec l'alpha sont employés, les polygones utilisant l'alpha peuvent ressortir incorrectement dans le jeu.

NOTE : une image 256 couleurs avec canal alpha N'EST PAS supportée dans le jeu et ne sera pas visualisée correctement.

Compression de texture DX

La compression DX se produit sur toutes les textures par défaut. Dans la plupart des cas, ceci restreint l'espace mémoire utilisé pour la texture et la perte de qualité n'est pas apparente. Cependant certains types de texture (peut-être textures avec des nuances très subtiles) peuvent apparaître déformée et 'en bandes' une fois comprimée.

NOTE : Si le fichier a _nm comme suffixe, la texture ne sera pas comprimée, MAIS une texture non comprimée prendra plus de ressource.

Pré-ombrage des objets de décor

Les plus grands modèles seront pré-éclairés avec une lumière globale sur eux comme une deuxième passe dans le matériau. L'éclairage n'aura pas de direction prédominante, parce que ces objets seront également illuminés dans le jeu par l'éclairage dynamique. Le pré-éclairage permettra aux bâtiments d'avoir les ombres diffuses sous des surplombs et autour des détails. Ceci permettra un aspect plus riche et aidera à accentuer le détail polygonal sur les modèles.

NOTE : Voyez le document "Rétro-modification de l'éclairage" pour une description détaillée.

Hiérarchisation

Une forme avec une hiérarchie complexe de nœuds (sous éléments) est plus exigeante pour obtenir un rendu qu'une forme avec une hiérarchie simple de nœuds. Les hiérarchies devraient donc être employées seulement en cas de besoin et devraient être aussi simple que possible. De plus, les noms des nœuds devraient suivre une convention de noms.

Niveaux de détail (LOD)

Les LODs peuvent être créés facilement et rapidement si les modèles sont construits conformément à ce document. Si l'approche correcte de construction est adoptée, des éléments peuvent simplement être supprimés par le LODs. Cette approche maintiendra la forme globale des modèles tout en permettant aux éléments insignifiants plus petits de disparaître grâce aux LODs.

Avantages de cette technique:

- Méthode plus rapide et plus simple pour la création des LODs

- Il n'y aura aucune anomalie d'éclairage de la forme au travers des LODs

- Il n'y aura aucun changement évident à la forme globale

Gardez à l'esprit que LOD 2 (2éme niveau de lod) pourrait encore être visualisable près de la caméra, ainsi le temps restant doit être utilisé pour s'assurer que cela tiendra jusqu'au rapprochement extrême de la visualisation.

Employez le MAXScript fourni (KRS_LOD_Viewer.ms) pour faciliter votre création de LOD.


Animation Pour les modèles animés, les LODs doivent être lies à leur top-LOD respectifs. Puisqu'ils hériteront de l'animation du top-LOD, vous devez enlever toutes les clefs d'animation du LOD 2 et suivants.

Pour rendre ce processus plus facile, employez le MAXScript (KRS_LOD_Maker.ms) qui fait tout cela pour vous. Démarrer le script, sélectionner l'objet ou les objets que vous voulez créer dans le prochain niveau de LOD, indiquez la distance de visualisation, et exécutez.

Nomination (convention de noms) Tous les objets devraient utiliser des conventions de nom strictes. Chaque nom commence par un chiffre simple représentant le niveau de LOD, suivi d'une distance de visualisation à 4 chiffres entre les soulignages. Après ceci, un nom d'objet logiquement choisi suit et le nom complet est limité à un maximum de 31 caractères.

Tous les noms devraient être en minuscules partout.

n_dddd_name

n niveau de Lod avec 1 pour le "top LOD"

dddd nombre à 4 chiffres pour la distance de visualisation (précéder d'un zéro si nécessaire)

name un nom d'objet logiquement choisi


Si vous écrivez 0000 dans le champ distance dddd cela entrainera que le LOD sera toujours actif.

Exemple : Les noms de LOD pour un modèle appelé building01 peuvent être :

1_0050_building01

2_0100_building01

3_1000_building01

Le premier LOD (le plus de détail) pour Building01 sera visible de 0m à 50m, le deuxième LOD étant visible de 50m à 100m et le LOD final visiblet de 100m à 1000m. Cette forme ne sera plus visible au delà de 1000m.

Exemple : Les noms de LOD pour un modèle appelé tunnel04 peuvent être :

1_0100_tunnel04

2_0500_tunnel04

3_0000_tunnel04

Le premier LOD (le plus de détail) pour tunnel04 sera visible de 0m à 100m, le deuxième LOD étant visible de 100m à 500m et le LOD final sera visible à compter de 500m. Cette forme ne disparaîtra pas au delà de 500m et sera toujours dessinée.

Principes de base

Cette section couvrira les approches et les considérations générales qui aideront les artistes à comprendre comment obtenir les meilleurs résultats de leur création. Elle expliquera pourquoi certaines choses doivent être considérées et aide les artistes à comprendre pourquoi parfois ils n'obtiennent pas les résultats désirés en regardant leur création dans le jeu.

Scintillement

Le problème principal se pose quand il y a de fins détails verticaux. Ce problème est le plus évident si vous avez, pour une épaisseur d'un pixel, une ligne blanche horizontale sur un fond noir. Le problème se pose quand vous avez une grande zone lumineuse avec une grande zone foncée en dessous d'elle et ce avec une transition soudaine. La solution est d'éviter ces transitions soudaines.

Par exemple, essayez de montrer les lignes électriques aériennes dans un jeu. En raison de leur forme, ces objets quand ils seront vu à distance produiront le pire scénario des traits horizontaux d'une largeur d'un pixel à l'écran. Ceci produira la plupart des scintillements vu dans le jeu.

Il y a une solution facile à ceci - employez une texture avec canal alpha sur l'objet, et faite disparaître l'alpha au travers des MIPs de la texture. Il sera possible de faire les lignes électriques translucides (changement progressif au travers des MIPs) jusqu'au point où elles se réduisent à une largeur d'un pixel, et donc de ce fait réduisant le problème de scintillation.

Effet de moiré

L'effet de moiré est une perception visuelle qui se produit en regardant un ensemble de lignes ou de points qui est superposé à un autre ensemble de lignes ou de points, où les ensembles diffèrent dans la taille, l'angle, ou l'espacement relatif. En termes de jeu, l'effet de moiré peut être produit délibérément ou accidentellement, dans la plupart des cas accidentellement.

L'illustration ci-dessous montre deux ensembles de lignes d'épaisseur égale et d'espacement égal, mais un ensemble à un angle de quelques degrés tandis que l'autre ensemble est vertical. L'effet de Moiré apparaît dans ce cas-ci comme ensemble trouble, des barres presque horizontales mal définies.

IMAGE ICI

En termes de jeu, l'effet de moiré tend à être vu sur des textures contrastées troubles ou des textures avec de la transparence mais à distance. Dans ce cas-ci, l'effet est dû au manque de résolution d'écran en relation avec la résolution du détail sur la texture.

L'effet de moiré sur des textures normales peut être minimisé en réduisant le contraste des pixels adjacents dans la texture source.

Essayez d'éviter des textures trop chargées en élaborant des textures détaillées mais adoucies.

L'effet de moiré peut également être réduit au minimum par la prise en main des textures MIPs, mais c'est long pour n'importe quel artiste.

Tri-stripping

Une "tri bande" peut être définie comme groupe de triangles ordonnés contenant tous les mêmes propriétés matérielles. le "Tri-stripping" est une manière efficace de stocker des mailles étant donné qu'elle tire profit des sommets partagés.

Le rapport de dépouillement (de stripping) est calculé comme suit: le nombre de sommets est divisé par le nombre de triangles.

Ce rapport peut être employé comme mesure d'efficacité - si deux formes ont été construites en utilisant le même nombre de polygones mais l'une avec un rapport de dépouillement inférieur, on peut en déduire que la forme avec le rapport de dépouillement inférieur est la plus efficace.

Généralement, l'artiste devrait essayer de garder le rapport pour une forme texturée à moins de 1.5. Plus le rapport de dépouillement se rapproche de 1.0, plus la forme devient efficace, la valeur la plus faible est la meilleure.

Sous sa forme la plus fondamentale, un simple "tri-stripping" peut simplement être créé avec des polygones dont leurs bords « cachés » sont alignés dans la même direction. Dans la figure ci-dessous, les polygones du côté gauche formeront une bande simple (très efficace) et les polygones du côté droit formeront les bandes multiples (très inefficaces).

IMAGE ICI

Réaligner simplement des bords de polygone peut parfois augmenter l'efficacité d'un modèle en diminuant la valeur du rapport de dépouillement globale. Les manipulations suivantes créeront des sommets « double », ayant pour résultat des coupures au tri-stripping et devraient donc être évitées.

- Groupe de lissage avec des polygones voisins.

- Différentes applications de texture sur des polygones voisins.

- Changements de matériels au-dessus des polygones voisins.

- Sommets non soudés sur les bords communs.


Groupe de lissage L'attribution de groupes de lissage permet à un artiste de déterminé quels polygones devraient être groupés ensemble et traités comme surface continue simple et adoucie, et quels polygones devraient être isolés par des bords abruptes et être traités en tant que facettes séparées (par exemple un cube). Le processus d'assignation des groupes de lissage affectera la façon dont les sommets sont stockés pour l'objet.

Si un bord abrupt est requis entre deux polygones, l'artiste doit affecter deux groupes de lissage différents. Ce processus en fait doublera les sommets communs au bord pour créer l'aspect « de bord abrupte ». Ce 'doublage' se produit parce que le programme de modélisation génére deux nouveaux sommets pour le bord abrupte (tranchant ou franc).

Dans l'exemple ci-dessous, l' objet A à un seul groupe de lissage et a 6 sommets avec les bords. Pour l' objet B un bord abrupte est requis et donc deux groupes de lissage ont été affectés. Cette assignation de groupe de lissage a maintenant produit de deux nouveaux sommet sur le coin ayant pour résultat que l'objet B a maintenant 8 sommets.

L'objet A peut être stocké en tant que 1 tri-stripping mais l'objet B peut seulement être stocké en tant que 2 tri-stripping. L'objet a est par conséquent plus efficace que l'objet B

IMAGE ICI

Il est bon de préciser que ce n'est pas seulement le fait de garder tout le nombre de groupe de lissage à un minimum. Il est plus important de garder les changements de groupe de lissage entre les polygones voisins à un minimum. Fondamentalement, essayer d'utiliser les bords tranchants au minimum, réduisant ainsi les sommets doubles et donc inefficaces.

Texturage Les coordonnées de texturage sont stockées au niveau des sommets. Par conséquent, si deux polygones voisins ont des textures séparées ce processus entraînera encore un doublement des sommets, et cassera donc le tri-stripping à ce bord. Partant de cela, on peut dire que le texturage individuelle de face produira un nombre élevés de sommets doubles et devrait donc être évité si possible.

Changement de matériel Les changements de matériels casseront encore le tri-stripping, étant donné que chaque morceau du tri-stripping contiendra par définition seulement un matériel unique.

Sommets non soudés Les sommets non soudés d'un bord casseront évidemment le tri-stripping, car il n'y a aucun sommet partagé sur ce bord.


Guide de création (traduction du RailWorks Wiki)
Bases Développer une création Progression 75 % environ
Lignes directrices Principes de base Progression 75 % environCréation de contenu Progression 25 % environ
Création Voies ferrées Non démarréExtrusions Non démarréMatériel roulant Progression 50 % environCabines de conduite Non démarréAttelages Non démarré
Graphismes Shaders Progression 75 % environÉclairage et ombrage Non démarré
Terrain Application des textures Non démarré