Nuages et dôme céleste: rendu du ciel sous ORTS

Vous avez des astuces pour rendre ORTS plus agréable. Venez les poster ici.

Modérateur : Modérateurs

Avatar du membre
BB25187
Administrateur
Messages : 15232
Enregistré le : 09 mai 2004 1:07
Localisation : Grenoble
Contact :

Nuages et dôme céleste: rendu du ciel sous ORTS

Messagepar BB25187 » 01 oct. 2017 12:08

Hello,

Il y a quelques temps, Nicober avait ouvert un fil "Cloud's illusions" sur le thème du rendu du ciel et des nuages dans ORTS. Les images du fil ont hélas disparu, mais le thème reste furieusement d'actualité.

Par ailleurs, les très belles images présentes dans les fils de présentation des nouvelles BR189 et des nouveaux wagons de NikolaS sur TSSF.eu m'ont mis la puce à l'oreille. Avec les informations et fichiers disponibles sur Elvas Tower, elles m'ont fait gagner pas mal de temps. Elles m'ont conforté dans une intuition laissée en suspens jusqu'ici: il y a bien un moyen de varier et d'améliorer le rendu du ciel sous OR, tout en évitant les effets de fausse perspectives qui arrachent la rétine que l'on obtient soit en utilisant des textures de nuages trop "orientées" ou trop "marquées", soit en utilisant les fichiers d'environnements hérité de MSTS...

Revenons aux fondamentaux.

Sous OR, le rendu du ciel résulte du cumul de trois effets:
- La texture du "dôme céleste" "SkyDome01.png" (présente dans le répertoire Program/Content), autrement dit le fond de ciel
- La texture de nuage "Clouds01.png" (présente elle aussi dans le répertoire Program/Content)
- L'effet de brouillard (directement encodé dans le simulateur)

On peut jouer sur l'opacité des nuages avec CTRL+/CTRL°.
On peut jouer sur l'opacité du brouillard avec MAJ+/MAJ°.

Regardons maintenant de plus près comment les deux textures importantes (le dôme et les nuages) sont configurées et comment elles interagissent.

Par défaut, le dôme céleste (Skydome01.png) est constitué d'un simple dégradé de bleu. Il est mappé de manière "unique" (sans répétition) sur la sphère céleste.
Image

L'usage de repères sur cette texture va nous permettre de vérifier la manière dont elle est projetée sur la sphère céleste. Pour cela, marquons les poins cardinaux et quelques méridiens... (dire ça comme ça, c'est déjà vous mettre, à vous aussi, la puce à l'oreille!).
Image

La texture de nuage doit permettre un tuilage régulier. Autrement dit, le bord droit doit se raccorder au bord gauche sans rupture de rendu. Idem pour les bords haut et bas. Par ailleurs, pour obtenir un rendu satisfaisant, on a un intérêt à choisir une texture pas trop "marquée". Par expérience, il faut éviter les formes de nuages qui ne seraient pas réalistes en cas de répétition ou d'inversion. Pourquoi? Vous allez comprendre...
Bref, sur cette texture de nuage qui n'est pas celle fournie avec OR par défaut, on ajoute des repères différents de ceux du dôme, qui marquent le haut, le bas, la droite et la gauche. La encore, vous allez piger un peu plus loin.
Image

Par défaut, avec ces deux textures, on obtient le rendu de l'image ci-dessous au lancement d'OR.

On observe:
- Que la texture du dôme (marques bleues) est mappée une seule fois sur la sphère. Par ailleurs, on observe que la positon des points cardinaux est respectée: le nord est au nord, le sud au sud, l'ouest à l'ouest, l'est à l'est. Les méridiens convergent vers le sommet du dôme. Cool.
- Que la texture des nuages (marques jaunes et rouges) est en revanche répétée plusieurs fois, à la fois de manière circulaire et en hauteur. Le côté haut n'est pas forcément orienté vers le haut... Moins cool. En effet si vous utilisez une texture représentant un cumulo-nimbus, il aura la tête en haut d'un côté du paysage, en bas de l'autre, voire même il sera orienté sur un côté. Très très moche! Cela explique pourquoi il faut éviter les textures de nuages trop "orientées" ou trop "marquées" sous OR!
Image

On peut observer l'effet de la combinaison des touches CTRL°, qui réduit l'opacité des nuages et rend le dôme prédominant dans le rendu.
Image

Idem dans l'autre sens avec CTRL+, qui fait disparaitre le dôme derrière les nuages.
Image

Comme les textures de ciel des fichiers d'environnement sont mappées comme la texture des nuages, cela explique pourquoi une texture qui fonctionnait bien sous MSTS donne un truc tout moche sous OR... (c'est moche, hein?!).
Image

Conclusion: il semble donc que ce n'est pas sur la texture des nuages qu'il faut joueur pour varier le rendu du ciel, mais plutôt sur la texture du dôme. Par ailleurs, la géométrie de cette texture correspond à un vue "polaire" d'un ciel. Autrement dit, elle doit représenter ce que vous verriez si vous vous allongiez sur le dos et que vous pouviez voir à 360 jusqu'à la ligne d'horizon.

Essai avec un fichier pioché sur Elwas Tower (j'y reviendrai), sur lequel on garde les repères précédents.
Image

Ce qui donne le rendu suivant sous OR, en vue "fisheye".
Image

Et la même chose en vue "normale": une jolie perspective sur un ciel vivant... Chouette, non?
Image

Bon, cela étant dit, il y a de bonnes nouvelles et de mauvaises nouvelles.

Commençons par les bonnes:
- Sur Elvas Tower, vous pourrez charger des textures SkyDome01.png et Clouds01.png qui correspondent au test ci-dessus. Cherchez dans "> Downloads > Scenery Items for the Route Editor > Miscellaneous (Everything Else)", puis "Another Openrails Skydome Texture" (4 archives). Précipitez-vous dessus et jouez avec!
- Dans un prochain fil, je vous expliquerai comment réaliser votre propre texture "SkyDome01.png".

Et les mauvaises maintenant:
- Contrairement à la sphère qui supporte la texture de nuages, la sphère qui supporte la texture du dôme est fixe. Elle n'est pas sensible au vent. Vos nuages ne bougeront donc pas!
- Même avec une texture de nuages particulière, il est difficile de mettre la luminosité en accord avec le ciel pour les dôme représentant des ciels très ennuagés. Pour y parvenir, il faudrait modifier l'effet de la touche MAJ+/MAJ° dans le code du simulateur.
- L'opacité et la forme des nuages de la texture de dôme ne peut pas varier avec le simulateur tel qu'il est aujourd'hui: ils peuvent seulement être masqués par la texture de nuage.

Mais enfin, même avec ces mauvaises nouvelles, vous avez moyen d'obtenir un rendu sympa et plus varié des ciels de votre simulateur préféré!
Fini les nuages la tête en bas, couchés sur le côté, ou qui ont l'air de se tenir tout debout à l'horizon!

A suivre...

Image

Image
"Er ist ein Unmensch, ein Tyrann!" - Tamino - Erster Akt - Die Zauberflöte.
____________________________________________________________

Image

Avatar du membre
damien2212
Messages : 1196
Enregistré le : 15 juin 2011 18:12
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS

Messagepar damien2212 » 01 oct. 2017 13:05

Hello,
Merci pour ces explications Vincent !
Le rendu est vraiment superbe ?+
Ça rajoute un vrai plus à notre simulateur préféré /nb
Damien
Membre de l'APSFI et des Compagnons du Rail
http://compagnonsdurail.wix.com/creations
Créateur polyvalent
Image
Image

Avatar du membre
CM63
Messages : 2008
Enregistré le : 13 août 2010 21:48
Localisation : Un peu au large de la faille de Limagne
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS

Messagepar CM63 » 01 oct. 2017 15:02

Bonjour,

Merci Vincent pour ces infos, c'est vraiment précieux. Il est vrai que j'avais résolu le problème en roulant toujours par beau temps et de jour jesors , mais à la réflexion l'idéal pour moi serait ce ciel avec des "nuages de beau temps" (comme ils disent à la météo) que tu as sur ta dernière photo.
Image

Avatar du membre
nounours1952
Expert
Messages : 4253
Enregistré le : 30 nov. 2007 22:18
Localisation : LFSB
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS

Messagepar nounours1952 » 01 oct. 2017 15:15

Hello, (.

merci Vincent pour ce cours magistral. Il est vrai que l'on s'y croirait.

Amicalement
L'homme ne se construit qu'en poursuivant ce qui le dépasse. (André Malraux)

Avatar du membre
BB25187
Administrateur
Messages : 15232
Enregistré le : 09 mai 2004 1:07
Localisation : Grenoble
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS: créer une image "SkyDome1.png"

Messagepar BB25187 » 01 oct. 2017 17:10

Hello,

J'étais sur que ça vous plairait! ?+

Et en plus, j'ai trouvé une autre bonne nouvelle.
Je vous en ferai part plus tard, quand vous aurez eu le temps de jouer un peu avec les fichiers pointés sur ET.

Bon en attendant, voyons comment créer une texture de dôme telle que celles présentées dans mon précédent message.
Il va vous falloir une texture de ciel, répétitive ou "tuilable en largeur", c'est à dire dont le bord droit se raccorder parfaitement avec le bord gauche. On trouve de telles textures par exemple sur les sites suivants:
    - Sketchup textures: textures gratuites
    - CGSkies: textures payantes, sauf échantillons gratuits au format JPEG, utilisables seulement sous conditions strictes
Pour illustrer mon propos, je vais utiliser une texture du site Sketchup textures provenant d'un pack de textures de ciel panoramiques "PANORAMIC SKY part 2". Dans ce pack, j'ai choisi l'image sky_photo33.jpg.

Je vais utiliser le logiciel PhotoshopElements, mais les fonctions nécessaires existent aussi sous la plupart des éditeurs graphiques (TheGimp, Paint.net notamment). Pour créer l'image SkyDome1.png à partir de sky_photo33.jpg, il faut suivre les étapes suivantes:
    - Ouvrir l'image avec PhotoshopElements
    - Redimensionner l'image pour la rendre carrée, soit une taille de 1800x1800 (on peut la réduire aussi)
    - Dans les menus "Filtres" choisir le sous-menu "Déformations" puis la fonction "Coordonnées polaires" - pas besoin de modifier les paramètres: ceux qui sont sélectionnés par défaut conviennent très bien
    - Sauvegarder au format PNG avec le nom "SkyDome1.png"
    - Installer en place dans ORTS

Image d'origine sky_photo33.jpg - Site Sketchup textures - "Pack PANORAMIC SKY part 2"
Image

Après redimensionnement
Image

Après mise en coordonnées polaires
Image

Résultat dans le jeu
Image

Voilà. A vous de joueur.
Idéalement, il vaut mieux utiliser des textures sur lesquelles le soleil et son halo ne sont pas trop visibles, sans quoi à certaines heures vous aller voir deux soleils: celui d'OR et celui de la texture!

Le prochain coup, je vous donne l'autre bonne nouvelle...

A suivre...
"Er ist ein Unmensch, ein Tyrann!" - Tamino - Erster Akt - Die Zauberflöte.
____________________________________________________________

Image

Avatar du membre
damien2212
Messages : 1196
Enregistré le : 15 juin 2011 18:12
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS

Messagepar damien2212 » 01 oct. 2017 18:58

Hello,
Merci pour cette technique ?+
Après quelques essais avec les ciels de Elvas Tower, le rendu est juste superbe confused19 Ogen01
On dirait que ça améliore même le rendu général de la lumière du jeu ?+
Je suis sous le charme !
Image
Image
Image
Damien
Membre de l'APSFI et des Compagnons du Rail
http://compagnonsdurail.wix.com/creations
Créateur polyvalent
Image
Image

Avatar du membre
BB25187
Administrateur
Messages : 15232
Enregistré le : 09 mai 2004 1:07
Localisation : Grenoble
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS

Messagepar BB25187 » 01 oct. 2017 19:13

Hello Damien,

Tu es rapide à la mise en œuvre! ?+ applaus001
En effet ça rend très bien sur les vues que tu présentes ici.
A noter qu'il ne faut pas hésiter à combiner avec un léger effet de brume (MAJ+/MAJ°) sur la ligne d'horizon pour éclaircir très légèrement les arrière-plans.

Pour la lumière je pense que c'est juste un effet d'optique: le changement de ces textures n'a aucun effet direct sur les paramètres d'éclairage. C'est probablement juste que l’œil et le cerveau s'y retrouvent mieux!

Je vous tiens au jus de mes essais actuels sur l'autre bonne nouvelle évoquée juste avant...

A pluche
"Er ist ein Unmensch, ein Tyrann!" - Tamino - Erster Akt - Die Zauberflöte.
____________________________________________________________

Image

Avatar du membre
nounours1952
Expert
Messages : 4253
Enregistré le : 30 nov. 2007 22:18
Localisation : LFSB
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS: créer une image "SkyDome1.png"

Messagepar nounours1952 » 02 oct. 2017 8:50

Hello,

BB25187 a écrit :Pour illustrer mon propos, je vais utiliser une texture du site Sketchup textures provenant d'un pack de textures de ciel panoramiques "PANORAMIC SKY part 2". Dans ce pack, j'ai choisi l'image sky_photo33.jpg.


Ton lien pointe vers la part 1. En faisant une recherche sur le site avec le nom de la part 2, on la trouve aisément.

Pour Elvas Tower, faudra s'armer de patience, car le nombre de téléchargement est restreint.

Amicalement
L'homme ne se construit qu'en poursuivant ce qui le dépasse. (André Malraux)

Avatar du membre
BB25187
Administrateur
Messages : 15232
Enregistré le : 09 mai 2004 1:07
Localisation : Grenoble
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS: "One step beyond"!

Messagepar BB25187 » 02 oct. 2017 12:00

Hello,

Merci Pascal: lien corrigé dans mon message.
Il est temps de vous parler plus avant de cette bonne nouvelle dont je vous ai parlé sans vous en dire bien plus...

Hier, j'ai donc écrit:
Et les mauvaises maintenant:
    - Contrairement à la sphère qui supporte la texture de nuages, la sphère qui supporte la texture du dôme est fixe. Elle n'est pas sensible au vent. Vos nuages ne bougeront donc pas!
    - Même avec une texture de nuages particulière, il est difficile de mettre la luminosité en accord avec le ciel pour les dôme représentant des ciels très ennuagés. Pour y parvenir, il faudrait modifier l'effet de la touche MAJ+/MAJ° dans le code du simulateur.
    - L'opacité et la forme des nuages de la texture de dôme ne peut pas varier avec le simulateur tel qu'il est aujourd'hui: ils peuvent seulement être masqués par la texture de nuage.


Et bien c'est là que se situent les bonnes nouvelles.
Résumons:
    - ORTS prévoit une texture "SkyDome1.png" en coordonnée polaires, projetée sur le "SkyDome" de manière unique et en respectant le placement et la perspective usuels d'un ciel. A l'origine c'est un dégradé de bleu, mais si on remplace cette texture par une autre plus vivante incluant des nuages et des variations de luminosité, alors on obtient un bien joli rendu.
    - En revanche, ORTS prévoit que le rendu des nuages se fait au moyen d'une texture "Clouds01.png" qui est "tuilée" sur une autre sphère céleste. Du fait du tuilage, la géométrie et le placement des nuages n'est pas respecté: ils peuvent se retrouver tête en bas ou couchés sur le côté si l'on utilise une texture trop orientée. L'effet de tuilage peut être catastrophique... On en est donc réduit à utiliser des textures neutres, ce qui appauvrit le rendu.

Idée: pourquoi ne pas modifier les éléments qui servent au rendu des nuages pour qu'ils se comportent comme ceux qui servent au "SkyDome"? On viserait un mapping unique d'une texture en coordonnées polaires.
On disposerait alors de deux textures en coordonnées polaires correctement mappées sur deux sphères distinctes, ouvrant la porte à un rendu bien plus riche de la météo dans le jeu:
    - Le SkyDome, sur lequel on pourrait mapper une texture de ciel de beau temps
    - La seconde sphère, sur laquelle on pourrait mapper une texture de ciel de mauvais temps
Par ce biais, non seulement on résout le problème de mapping des textures de nuages telles que prévu initialement dans ORTS, mais on ne perd pas le lien correct entre luminosité et ennuagement, comme c'est le cas avec les fichiers disponibles sur ET: la texture du SkyDome peut représenter un ciel de beau ou de mauvais temps, et la texture de nuage est uniforme.

Alors j'ai essayé, en prenant les deux textures ci-dessous: "SkyDome1.png" à gauche, "Clouds01.png" à droite (représentées en taille réduite ici):
ImageImage

Et là, bingo: en variant l'opacité des nuages (Ctrl+/Ctrl°) et de la brume (Maj+/Maj°), on obtient dans la même session de jeu un dégradé de rendus météorologies assez sympa:
Image
Image
Image
Image
Image
Image
Image
Image

Bon, vous allez me dire: tout ça c'est bien joli, mais comment on fait? Ça vient!

Il y a ceux choses à prévoir!
    - Préparer les deux textures nécessaires. Là vous pouvez partir des textures de fichiers disponibles sur ET, l'une de beau temps pour "SkyDome1.png", l'autre de mauvais temps pour "Clouds01.png". La seule chose un peu différente qu'il va falloir prévoir pour "Clouds01.png", c'est de la sauvegarder après avoir réglé l'opacité du calque principal à 60 ou 70%!
    - Modifier le comportement de la sphère qui supporte cette texture "Clouds01.png". Et là, vous allez me dire: ben oui mais s'il faut modifier le code d'ORTS et le recompiler, ce sera sans moi!. Et là pas de panique: avant de dire ça, lisez les explications ci-dessous...

Le rendu graphique dans ORTS est piloté par deux éléments principaux:
    - Le code du simulateur lui même, écrit en C#. Celui-ci lit les éléments de haut niveau tels que textures à utiliser, luminosité fournie par les options utilisateur, saison, ... Il en dérive des données de plus bas niveau utilisables par la carte graphique... Quand on le modifie, ce code doit être recompilé (avec VisualStudio C#) pour que les modifications prennent effet.
    - Les fichiers d'effets spéciaux graphiques "FX" (parfois aussi appelés fichiers de "Shader"), qui assurent l'interface entre le code ci-dessus et la carte graphique. Ceux-ci sont écrits dans un langage simple proche du C ou d'un langage de script. Quand on le modifie, ce code n'a pas besoin d'être recompilé pour que les modifications prennent effet. On dit qu'il est "interprété". Et ça c'est l'autre bonne nouvelle, car pour modifier le comportement de la sphère qui supporte la texture "Clouds01.png", ce sont ces seuls fichiers qu'il faut modifier!

Les lignes qui suivent s'adressent aux personnes qui souhaitent vivement effectuer les modifications décrites. Il est indispensable de sauvegarder les fichiers modifiés!

Pour cela, il suffit de suivre les étapes ci-dessous:
    - Rechercher le fichier SkyShader.fx dans votre installation d'OpenRails
    - Ouvrez le avec un éditeur tel que NotePad++
    - Remplacer les lignes 228 et 229:

    Code : Tout sélectionner

       float2 TexCoord = float2(In.TexCoord.x * 4 + WindDisplacement.x, In.TexCoord.y * 4 + WindDisplacement.y);
       float4 cloudColor = tex2D(CloudMapSampler, TexCoord);

    Par:

    Code : Tout sélectionner

       float4 cloudColor = tex2D(CloudMapSampler, In.TexCoord);
       float2 TexCoord = float2((1.0 - In.TexCoord.x) + Time, In.TexCoord.y);

    - Sauvegardez.

C'est tout.
Étonnant, non?

Et ce n'est pas tout, car sur ces bases il devient trivial de construire un Kosmos pour ORTS, qui installe les textures "SkyDome1.png" et "Clouds01.png" de votre choix avant le lancement du jeu. De plus, comme évoqué ci-dessus, si vous voulez modifier aussi l'un des fichiers "FX" ou de "Shader" par le même moyen, et bien c'est tout à fait possible!

Image

A pluche

PS: Petit résumé posté sur ET, des fois que ça leur donne des idées...
PSS: Sur les textures en coordonnées polaires utilisées dans ORTS, le haut se retrouve au sud et le bas au nord. Je recommande donc de placer systématiquement la zone la plus lumineuse de la texture vers le haut afin qu'elle se retrouve au sud, là où se situe majoritairement la course du soleil sous nos latitudes!
"Er ist ein Unmensch, ein Tyrann!" - Tamino - Erster Akt - Die Zauberflöte.
____________________________________________________________

Image

Avatar du membre
damien2212
Messages : 1196
Enregistré le : 15 juin 2011 18:12
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS

Messagepar damien2212 » 03 oct. 2017 7:55

Hello,
Ça rend super bien applaus001 Belle découverte !
Je vais tester ça dès que possible ?+
Bonne journée
Damien
Membre de l'APSFI et des Compagnons du Rail
http://compagnonsdurail.wix.com/creations
Créateur polyvalent
Image
Image

Nicolas-s
Messages : 31
Enregistré le : 02 oct. 2017 18:42
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS

Messagepar Nicolas-s » 03 oct. 2017 17:17

Bonjour,

Très bonne explication et bravo pour cet exposé.

Je voulais juste apporter une petite astuce à ceux qui utiliseront photoshop element ou dérivés adobe pour réaliser ces dômes. Avec certaines textures panoramique en appliquant l'outils coordonnée polaire on peut observer l'apparition de crénelage qui gâche le rendu final. Pour remédier à cela je fais un petit flou gaussien avec un rayon de 1.1 cela améliorera le rendu final du ciel.

Avatar du membre
BB25187
Administrateur
Messages : 15232
Enregistré le : 09 mai 2004 1:07
Localisation : Grenoble
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS

Messagepar BB25187 » 03 oct. 2017 20:58

Hello,

Merci du petit truc.
Jusqu'ici je n'ai pas eu ce problème avec les textures utilisées, mais il faut dire qu'elles sont assez "larges"!

A+
"Er ist ein Unmensch, ein Tyrann!" - Tamino - Erster Akt - Die Zauberflöte.
____________________________________________________________

Image

Avatar du membre
vassalfada
Messages : 55
Enregistré le : 31 déc. 2014 13:01
Localisation : Bezouce (30)
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS

Messagepar vassalfada » 04 oct. 2017 8:15

En effet, j'utilise cette technique des dômes depuis 2-3 ans déjà (un aperçu ici https://forum.activitysimulatorworld.net/viewtopic.php?f=126&t=26049) mais la modification du Skyshader de Vincent ouvre des possibilités inexplorées !

Un grand merci pour cela ! applaus001

Avatar du membre
damien2212
Messages : 1196
Enregistré le : 15 juin 2011 18:12
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS

Messagepar damien2212 » 05 oct. 2017 19:27

Hello,
Mise en application de ta méthode Vincent, applaus001
On est bien en Bretagne ?+ ?+
Image
Image
Damien
Membre de l'APSFI et des Compagnons du Rail
http://compagnonsdurail.wix.com/creations
Créateur polyvalent
Image
Image

Avatar du membre
Bernard56
Messages : 594
Enregistré le : 14 mai 2012 21:42
Localisation : (29) Fouesnant Les Glénan
Contact :

Re: Nuages et dôme céleste: rendu du ciel sous ORTS

Messagepar Bernard56 » 06 oct. 2017 13:51

Bonjour à tous,
Bonjour Vincent,
Tout d'abord, un grand merci pour ce cours magistral afin de nous donner cette nouvelle possibilité d'OR.
Mais,
Le ciel du Réseau Breton ne s'obscurcirait-il pas ... ! +=
Image
Image

Amicalement.
Bernard
Créateur des lignes Quimper - Savenay et de RBZH (Réseau Breton)
http://voies-ferrees-bretonnes.e-monsite.com
https://www.youtube.com/channel/UCQesLUQpkpfbZryRkQNJJ8w


Retourner vers « ORTS: Trucs et astuces »