IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Créer une voute céleste en WebGL


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 70
    Points
    70
    Par défaut Créer une voute céleste en WebGL
    Bonjour

    Je commence a travailler sur un projet qui necessite l'affichage d'une carte du ciel en HTML5.
    Je pensais faire ca en creant, d'abord, une sphere centree sur ma position (en WebGL), puis, en positionnant les differents objets celeste a l'interieur de cette sphere.
    Je voudrais aussi avoir un positionnement en 3D des objets. C'est a dire, tenant compte de l'eloignement.

    Etant plus ou moins novice en WebGL (mais plutot expert en tout autre techno Web), je sollicite votre aide pour cette partie.
    Pourriez-vous m'aiguiller sur un tutoriel permettant d'utiliser WebGL dans ce but ?
    Si l'un d'entre vous a une meilleure idee quant a l'approche a adopter, toute suggestion sera la bienvenue.

    Merci

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Salut !

    Qu’entends-tu par voute céleste ? Une cartographie des constellations ?
    Comment détermine-t-on la position d’une étoile dans l’espace ? Combien de dimension sont nécessaires pour déterminer cette position ?
    Par rapport à quel repère ? La Terre (qui n’est pas une position fixe)? Le Soleil ? Le centre de la galaxie ?

    Je ne connais pas grand-chose en Cosmologie, mais je peux, peut-être, t’aider à débuter dans la programmation graphique. Oublis les tutos WebGL, car ceux-ci t’apprendrons des techniques générales de rendus 3D pas forcement adaptés à tes besoins.

    Je te conseil de commencer par la modélisation du positionnement de tes objets, afin de structurer partiellement tes vertex (les attributs dans WebGL), par exemple 3 flottants (longitude, latitude, distance). D’où mes 1eres questions auquel il faut répondre.

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Par rapport à quel repère ?
    la voute céleste est une représentation des astres depuis la terre, ce que tu vois en levant les yeux la nuit

  4. #4
    Membre régulier Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 70
    Points
    70
    Par défaut
    La position d'un objet est definie par 2 valeurs par rapport a une ligne representant l'equateur :
    - l'ascension droite est un angle par rapport a un point de reference sur l'equateur ;
    la declinaison est l'angle par rapport au plan de l'equateur.

    Mettons qu'on regarde face au nord, la 1e coordonnee nous dis de combien de degres se tourner (gauche/droite), la 2e nous dis jusqu'a ou lever la tete (haut).
    Ces coordonnees permettent de positionner l'objet sur une sphere dont le centre est l'observateur.
    Un bon debut, pour moi serait deja de pouvoir construire cette sphere et positionner les objets dessus (a l'interieur).
    La 2e etape est de considerer une 3e information : la distance, pour avoir un affichage 3D.

    Est-ce clair ?

    Merci

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Est-ce clair ?
    Non pas vraiment !
    Je trouve cela très étrange car l’observateur n’est pas de position fixe dans l’espace, il se trouve quelque part sur la Terre , donc tourne autour du centre de la Terre , qui lui-même tourne autour du soleil , et si je me souviens bien le soleil tourne autour du centre de la galaxie… Mais Je n’étais pas loin 2 angles et une distance

    Quel sorte d’astre souhait tu rendre ?
    Si ceux ne sont que des étoiles et que l’observateur se trouve dans l’hémisphère nord, le model de positionnement peut ce simplifier a un system a 2 dimensions dans un repère orthonormé dont le centre serait très proche de l’étoile polaire ! Non ?
    Sinon il faut trouver un repère fixe et exprimer l’observateur dans ce repère, et ainsi se rapprocher d’un pipeline de rendu d’application 3D 3D avec camera, hiérarchisation de repère local (SceneTree) etc …

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    imagine que l'oeil est au centre de la terre ?

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Pour bien comprendre, la contrainte hardware est que les attributs d’un vertex doivent être des constantes, l’avantage est que la volumétrie ( 400 milliards d’étoiles dans la voie lactée … comme même) n’impacte pas les performances.

  8. #8
    Membre régulier Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 70
    Points
    70
    Par défaut
    En fait, les cartes du ciel sont construites de la maniere suivante : le ciel complet est represente, mais, pour voir ce qui est visible a une date precise, un masque se superpose par dessus.
    L'idee, dans mon cas, n'est pas de construire mon ciel uniquement avec les astres a une date donnee, mais de positionner tous les objets presents. Ensuite, dependamment de la date, je positionne la sphere correctement.

  9. #9
    Membre régulier Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 70
    Points
    70
    Par défaut
    Le systeme de coordonnees est assez bien explique ici :
    http://fr.wikipedia.org/wiki/Syst%C3...%A9quatoriales

  10. #10
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Je trouve ça toujours étrange car l’axe de rotation de la terre n’est certainement pas identique à l’axe de rotation de la terre autour du soleil, donc cet axe céleste du point de vue des étoiles varie au cours de l’année.

    Mais bon passons … Ces objets sont-ils fixes dans le repère de la sphère ? Leurs position est-elle une constante ? Et quel est la volumétrie de ces objets ?

    En fonction de tes réponses je peux te proposer de partir sur une solution proche d’un problème sur lequel je travaille : les images equirectangulaires, comme tu peux le constater c’est loin d’être au point

    Ta voute céleste peut-elle être une image equirectangulaire ?

  11. #11
    Membre régulier Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 70
    Points
    70
    Par défaut
    Les objets sont fixes dans le repere oui. Quand a leur volumetrie, elle peut varier, mais on peut considerer que tous les objets on la meme.
    Ca pourrait fonctionner avec une image equirectangulaire.

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    c'est pas la voute celeste mais la voie lactée centrée sur le système solaire:
    http://workshop.chromeexperiments.com/stars/

    mais c'est puissant :

  13. #13
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    c'est pas la voute celeste mais la voie lactée centrée sur le système solaire:
    http://workshop.chromeexperiments.com/stars/

    mais c'est puissant :
    J’ai regardé, un peu, comment ils ont fait.
    Ils utilisent différentes techniques selon le zoom :
    Dont une technique proche des systems de particules des moteurs 3D ou chaque étoile est un billboard (quadrilatère texturé orienté face camera) . Et la technique du Cube Mapping, qui utilise 6 textures au lieu d’une pour la technique equirectangulaire.

    Pour en revenir à mon exemple equirectangulaire, j’utilise une de mes librairies Javascript ShaderElement.js qui définit un nouvel balise <shader/> qui dérive de la balise <canvas/>, permettant de contrôler la rastérisation de la zone de rendu tous en bénéficient de l’accélération matériel, cela constiste à l’écriture d’un PixelShader en GLSL et a paramétrer les différentes entrées (les variables uniforms) soit, directement par des attributs de la balise <shader/>, soit par javascript. Le pipeline de rendu que j’utilise, élude totalement la partie "Géométrie Processing", donc pas de possibilité de paramétrer de VertexBuffer ni la possibilité de tracer des primitives.

    Dans mon exemple les entrées Uniforms sont :
    • image : une texture equirectangulaire 2D
    • Pan : l’angle (l’ascension droite) de l’axe de visé de l’observateur
    • Tilt : l’angle (déclinaison) de l’axe de visé de l’observateur
    • FOV : l’angle d’ouverture horizontal du champ de vision de l’utilisateur

    Le bug actuel se trouve dans le shader lorsque je calcule la coordonnée équatoriale (pan, tilt) à partir la position du pixel afin de requêter la texture equirectangulaire.

    Comme je ne dispose d’aucune documentation sur l’utilisation de ma lib, n’hésite pas à me poser des questions.
    Sache que je compte rajouter rapidement un bouton pour recompiler dynamiquement le code source du shader de la zone d’édition.

  14. #14
    Membre régulier Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 70
    Points
    70
    Par défaut
    Merci

    Je vais essayer de voir ca ce week-end.
    J'ai aussi pense a une autre idee. Je pourrais utiliser ce genre de representation :
    http://www.stelvision.com/carte-ciel/

    En zoomant sur la carte, le rendu devrait etre similaire a une structure spherique. L'avantage de cette vue serait d'autoriser l'impression de cartes.

    Je vais voir quelle est la meilleure solution. Je vouis tiendrai au courant.
    Merci

  15. #15
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Je ne connais pas le sujet, mais je viens de trouver une carte du ciel interactive : AstroViewer 3.1.

    Concernant les "svg map plugin", j'ai trouvé beaucoup de liens. Certains plugins sont payants, d'autres gratuits :


Discussions similaires

  1. [Crystal Report 8] créer une source de données oracle
    Par Lina dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 14/11/2002, 13h53
  2. [Réseau] Créer une connexion Internet
    Par Tranber dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 17/10/2002, 17h01
  3. créer une arborescence windows sous forme d'arbre java
    Par chupachoc dans le forum Composants
    Réponses: 3
    Dernier message: 01/10/2002, 16h48
  4. Créer une fenêtre flottante qui ne peut avoir le focus
    Par BestofMac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 10h46
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo