Modifier la taille d'une planète dans un script

Programmation soft

Moderator: Modérateur lunaire

Post Reply
Fred
Taikonaute
Posts: 5
Joined: Sun Mar 04, 2007 7:35 pm
Location: Paris

Modifier la taille d'une planète dans un script

Post by Fred »

Bonjour,
je viens ici chercher de l'aide après plusieurs tentatives personnelles hélas infructueuses. Par avance, merci aux bonnes âmes qui tenteront de m'aider.

J'essaie de réaliser un script qui illustre les éclipses de Soleil et de Lune, notamment les zones d'ombre et de pénombre. J'aurais souhaiter pouvoir modifier la taille de la Terre et/ou de la Lune dans ce script pour montrer l'influence sur la taille de l'ombre portée en exagérant le phénomène, avant de revenir à la situation réelle, pour accentuer son caractère exceptionnel.

J'ai trouvé comment changer le rayon de la Terre en modifiant le fichier solarsys.ssc du répertoire Data mais la modification est alors permanente et donc pénible à gérer.

Je cherche donc une commande pour modifier la taille de la Terre en cours de script sans "altérer" l'utilisation de celestia ensuite. Comment modifier le Radius de la terre ?

Est-il possible de créer temporairement une fausse Terre qui englobe la première avant de la faire disparaître ? C'est ce qui est fait me semble-t-il sur l'add-on du Soleil "rthorvalds_sun". Mais alors il faut créer un répertoire Model avec un fichier 3ds, ce qui est (beaucoup) trop pour moi je pense ;)

En espérant vos lumières...
"Seule l'ignorance s'apprend sans douleur..." Donjon Parade
User avatar
bluz
Conquérant stellaire
Posts: 221
Joined: Wed Aug 23, 2006 9:27 am
Location: Edinburgh, Scotland

Terre

Post by bluz »

salut,

j'ai crée une fausse Terre lorsque j'ai fait ma première version du script "hadéen" car j'avais besoin d'un astre avec un rayonnement rougeatre...

Plus d'infos ici :
http://www.cielespace.org//index.php?op ... 6&Itemid=2

cela te mènera vers un lien ou tu pourras télécharger l'addon. Regarde le fichier ssc qui correspond a la planète "hadéen" et tu devrais trouver ton bonheur ...


En esperant t'avoir aidé...
Fred
Taikonaute
Posts: 5
Joined: Sun Mar 04, 2007 7:35 pm
Location: Paris

Post by Fred »

Bonjour et merci beaucoup Bluz, je pense effectivement trouver là mon bonheur. Si j'ai bien compris le principe, il s'agira pour moi de :
- créer une "autre terre" de taille souhaitée, qui englobe la "vraie"
- de définir ses dates d'apparition et de disparition
- de jouer sur le paramètre temps lors de mon script pour que cette autre terre soit visible ou non

Et cela doit fonctionner car je cherche une terre plus grosse. Coup de bol, finalement, car pour en avoir une plus petite que l'originale, cela n'aurait pas fonctionné.

Une question en appelle une autre... :D
J'ai regardé l'écriture de ton script -avant de le voir en vrai, détendu et peinard- et j'ai découvert la commande seturl. Elle semble fort utile mais complexe et elle est peu développée sur le Wiki Celestia. Y'a-t-il un lien ou je peux en apprendre davantage sur cette commande ? Parce que bon une commande du type :
seturl { url "cel://Follow/Hadeen/0001-01-01T10:22:04.58685?x=oM4KgSUGP+vMDA&y=oRRC7ziCMA0&z=RTkz4h0ybQb9/////////w&ow=0.626655&ox=0.758327&oy=0.170923&oz=0.055035&select=Hadeen&fov=25.781925&ts=1.000000&ltd=0&rf=525463&lm=2560" }
ça ne s'invente pas ! :shock:

A +
"Seule l'ignorance s'apprend sans douleur..." Donjon Parade
Guest

Post by Guest »

Pour Seturl :

C'est comme un signet pour les scripts :

Choisis une position dans Celestie puis fais "ctrl"+"c" (ou ctrl+ins).

Dans un éditeur de texte quelconque, fais "ctrl"+"v" ou coller.

Si je ne me trompe, il suffit de rajouter devant "seturl { url" et les guillemets.
Fred
Taikonaute
Posts: 5
Joined: Sun Mar 04, 2007 7:35 pm
Location: Paris

Post by Fred »

Merci "Invité" ! Je pensais bien qu'il s'agissait de définir une position mais je ne savais comment faire. Un copier coller finalement, quoi de plus simple.

Par ailleurs j'ai testé la solution de bluz pour avoir une planète terre plus grande. Cela fonctionne mais -allô Houston- j'ai un problème : l'ombre de la lune n'apparait pas sur elle !
Toute idée est bien venue...
"Seule l'ignorance s'apprend sans douleur..." Donjon Parade
User avatar
Péji
Modérateur lunaire
Posts: 547
Joined: Sat Jan 29, 2005 11:42 am
Location: Metz, France

Post by Péji »

l'ombre de la lune n'apparait pas sur elle !
Question bête... L'option "Eclipse shadows" est-elle activée ? (Menu "Render" puis "View options").

PJ
Celestia 1.6 sur AMD64 X2 4200+ ; GeForce 8800 GTX ; 2 Go RAM ; WinXP SP3
Fred
Taikonaute
Posts: 5
Joined: Sun Mar 04, 2007 7:35 pm
Location: Paris

Post by Fred »

Salut PJ,
merci pour l'idée mais l'option est bien activée.

Ce qui se passe, c'est que j'obtiens bien l'ombre sur la vraie terre mais pas sur la plus grosse qui l'enveloppe. La grosse terre semble être transparente à la lumière alors qu'on la voit à l'écran sans voir à travers.
Voici le fichier que j'ai créé pour créer la terre en 10 fois plus large:

"BigEarth" "Sol"
{
Class "planet"
Texture "RealisticEarth-v4-8kDDS.dds"
NightTexture "land_ocean_ice_lights_aurora_8k.dds"
# Beginning "1 1 1 00:00"
# Ending "1 2 1 00:00"
SpecularTexture "8kEarthSpecular.dds"
Color [ 0.85 0.85 1.0 ]
SpecularColor [ 0.5 0.5 0.55 ]
SpecularPower 25.0
HazeColor [ 1 1 1 ]
HazeDensity 0.3
Radius 63781.40 # equatorial
# Oblateness 0.0034

# BumpMap "earthbump.*"
# BumpHeight 4.5

Atmosphere {
Height 60
Lower [ 0.43 0.52 0.65 ]
Upper [ 0.26 0.47 0.84 ]
Sky [ 0.40 0.6 1.0 ]
Sunset [ 1.0 0.6 0.2 ]
# Sunset [ 0.3 1.0 0.5 ]
CloudHeight 7
CloudSpeed 0
#CloudMap "clouds-121303-8k.dds"
}

CustomOrbit "vsop87-earth"
EllipticalOrbit {
Period 1.0000
SemiMajorAxis 1.0000
Eccentricity 0.0167
Inclination 0.0001
AscendingNode 348.739
LongOfPericenter 102.947
MeanLongitude 100.464
}

RotationPeriod 23.9344694 # 23.93419
Obliquity -23.45
RotationOffset 280.5 # offset at default epoch J2000

Albedo 0.30
}

Ceci dit le mieux pour moi serait de trouver une commande qui modifie le rayon de la vraie terre ou de la vraie lune pendant le script qui sont fixés par le fichier solarsys dans le répertoire data.
"Seule l'ignorance s'apprend sans douleur..." Donjon Parade
Guest

Post by Guest »

Et si tu recréais, à partir d'une autre étoile du même type que le soleil, une terre et une lune en copiant leurs caractéristiques ? Comme un add-on en fait.
Pour le script, il suffit alors d'utiliser seturl pour sauter d'une planète à une autre; de plus elle pourront peut-être garder le même nom ?
Fred
Taikonaute
Posts: 5
Joined: Sun Mar 04, 2007 7:35 pm
Location: Paris

Post by Fred »

Disons que j'ai l'impression que Celestia ne gère pas les ombres de toutes les planètes.... ex ISS côté nuit de la terre n'est pas éclipsée. Donc même pour un nouveau système solaire je suis pas sûr du résultat...
"Seule l'ignorance s'apprend sans douleur..." Donjon Parade
User avatar
vincent
Modérateur lunaire
Posts: 222
Joined: Wed Feb 09, 2005 11:27 pm
Location: Nancy, France

Post by vincent »

Fred wrote:Ce qui se passe, c'est que j'obtiens bien l'ombre sur la vraie terre mais pas sur la plus grosse qui l'enveloppe. La grosse terre semble être transparente à la lumière alors qu'on la voit à l'écran sans voir à travers.
Salut Fred,

Projeter une ombre sur 2 objets dont l'un est inclus dans l'autre est une situation un peu dure à avaler pour Celestia. :wink:
Du coup, Celestia projette l'ombre de la Lune sur le premier objet chargé, i.e., la Terre par défaut du fichier solarsys.scc.

Essaie simplement d'utiliser la fonction Modify plutôt que de créer un autre objet Terre, en remplaçant tout simplement ta première ligne :

Code: Select all

"BigEarth" "Sol" 
par:

Code: Select all

Modify "Earth" "Sol" 
Par contre, il ne te sera plus possible de définir des dates de début et de fin sans voir la Terre d'origine disparaître également.

Une autre option serait de définir une nouveau système Soleil-Terre-Lune en dehors de notre système solaire...
Fred wrote:Ceci dit le mieux pour moi serait de trouver une commande qui modifie le rayon de la vraie terre ou de la vraie lune pendant le script qui sont fixés par le fichier solarsys dans le répertoire data.
C'est malheureusement impossible à réaliser au cours d'un script, Celestia ne pouvant recharger toute sa base d'objets sans redémarrer...
@+
Vincent

Celestia SVN (v1.6.1 en cours de développement) + Lua Edu Tools
GeForce 8600 GT 1024MB / AMD Athlon 64 Dual Core 5200+ / 4Go Ram DDR2 / XP SP3
Post Reply