Sweet Home 3D Forum
No member browsing this thread
Thread Status: Active
Total posts in this thread: 72
fma
Member
Joined: Mar 15, 2010
Post Count: 62
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
Ok, je vais essayer de trouver plus d'infos sur sunflow ; j'ai remarqué que le truc est sioux, car il tient compte de la position par rapport à l'horizon pour déterminer l'intensité lumineuse. Il joue en particulier sur la lumière diffuse du ciel (on le voit bien au halo au pied des fenêtres, dans la capture ci-dessous)... Mais dans mon cas, ça ne m'arrange pas trop, car lorsque le soleil est bas, je ne vois plus l'ombre projetée... Il faudrait que j'arrive à jouer sur le ratio des 2 types de lumière. J'ai commencé à bricoler dans le GUI (PhotoPanel), et ajouté 2 spinner, pour l'azimuth et l'élévation (pour l'instant, je calcule ça dans un petit programme python ; je l'intégrerai après dans SweetHome3D, avec, comme tu le suggères, quelque chose pour changer la date et l'heure). Par contre, j'ai des soucis avec le GUI : l'un des spinner ne fonctionne pas avec les petites flèches. Et aucun des 2 ne conserve sa valeur, ni même n'a la bonne valeur par défaut. J'ai pourtant en principe ajouté tout ce qu'il fallait dans les classes PhotoController et HomeEnvironment... Est-ce que je peux déposer les classes modifiées quelques part, pour que tu y jettes un oeil, et me dire où je me plante ?
----------------------------------------
Frédéric
[Mar 17, 2010, 7:26:27 PM]
[Link]
fma
Member
Joined: Mar 15, 2010
Post Count: 62
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
Voici les classes modifiées...
----------------------------------------
sh3d-sun-shadow.zip
(21990 bytes)
(Download count: 1853)
(Fichiers HomeEnvironment.java, PhotoRenderer.java, PhotoPanel.java, PhotoController.java)
----------------------------------------
Frédéric
[Mar 18, 2010, 8:37:15 AM]
[Link]
fma
Member
Joined: Mar 15, 2010
Post Count: 62
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
J'ai oublié de préciser que je suis parti des sources de la version 2.2, et non pas du dépôt. J'aurais peut-être dû récupérer la 2.3-béta...
----------------------------------------
Frédéric
[Mar 18, 2010, 9:38:31 AM]
[Link]
fma
Member
Joined: Mar 15, 2010
Post Count: 62
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
Ok, vu ! Ça marche mieux, effectivement... Bon, j'ai porté en java la classe python qui calcule les coordonnées azimutales du soleil en fonction de la date et de l'heure. Comment coderais-tu la récupération de la date et de l'heure ? Quel widget utiliser ? Existe-t-il quelque chose de haut niveau, ou faut-il passer par des spinner ?
----------------------------------------
Frédéric
[Mar 18, 2010, 7:46:00 PM]
[Link]
fma
Member
Joined: Mar 15, 2010
Post Count: 62
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
Bon, j'ai finalement mis 3 spinner : année/mois/jour/heure, et ça marche très bien ! Juste une petite question... Dans la béta 2.3, il y a un mode de prise de vue automatique, pour faire des vidéos :http://www.sweethome3d.eu/support/forum/viewthread_thread,1362#5314 Est-ce que l'orientation de la caméra est aussi mémorisée ? Si oui, ça va permettre de faire des visites virtuelles : il suffit de générer autant d'images qu'il faut pour couvrir la sphère complète, en tournant simplement la caméra autour d'un point fixe, puis d'utiliser un logiciel comme Autopano Pro (ou Hugin) pour assembler les images, et Pano2Vr pour générer le flash. Je coderai bien un truc pour générer automatiquement ces images, moi. Je vais transférer mes modifes vers la version 2.3...
----------------------------------------
Frédéric
[Mar 19, 2010, 10:28:24 PM]
[Link]
Puybaret
Expert
France
Joined: Nov 7, 2005
Post Count: 9420
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
Comme toi sûrement, j'ai un peu cherché sur Internet des composants Swing pour gérer la date et l'heure, mais n'ai rien trouvé de convaincant aussi. Le module de vidéo gère les 6 caractéristiques de la caméra (coordonnées + angles), et assemble les images avec JMF. Tu fais bien de passer sous la version 2.3, car j'ai corrigé un bug majeur dans la classe PhotoRenderer hier.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator
[Mar 20, 2010, 6:44:50 AM]
[Link]
fma
Member
Joined: Mar 15, 2010
Post Count: 62
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
Concernant le GUI, as-tu pensé à utiliser QtJambi (le binding Java pour Qt) ? Je développe en PyQt (Python Qt), et je peux t'assurer que c'est un vrai bonheur ! Entre le builder (Designer), et le haut niveau des Widgets et classes disponibles, faire le GUI est un jeu d'enfant. Concernant le module vidéo, je viens de me rendre compte que tu génères directement la vidéo ; ce n'est pas tout à fait ce que je pense faire : j'ai juste besoin de générer un certain nombre d'images à une position fixe, en faisant juste tourner la caméra... D'ailleurs, où donnes-tu le ratio pour le rendu final ? Je ne le vois pas dans la classe Camera.
----------------------------------------
Frédéric
[Mar 20, 2010, 8:06:58 AM]
[Link]
Puybaret
Expert
France
Joined: Nov 7, 2005
Post Count: 9420
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
Même si la séparation vue / contrôleur devrait faciliter grandement le passage d'un toolkit à l'autre, on va éviter de changer l'interface dans un avenir proche. De quel ratio parles-tu?
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator
[Mar 20, 2010, 9:07:22 AM]
[Link]
fma
Member
Joined: Mar 15, 2010
Post Count: 62
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
Même si la séparation vue / contrôleur devrait faciliter grandement le passage d'un toolkit à l'autre, on va éviter de changer l'interface dans un avenir proche.
C'est clair que ce ne serait pas trivial...De quel ratio parles-tu?
Du ratio de l'image finale calculée ; en fait, j'ai trouvé : c'est donné directement à SunFlow. Par contre, à quoi correspond la focale donnée ? Est-ce la diagonale ? La largeur ? La doc de SunFlow n'est vraiment pas terrible... J'ai fait des essais en générant des images pour couvrir toute la sphère, mais aucun des logiciels d'assemblage n'arrive à quoi que ce soit. Je ne sais pas si c'est dû à la mauvaise focale (que je force un peu au pif, pour avoir l'angle de champ utilisé), ou si c'est un problème plus sioux, dû au type de la caméra utilisée (pinhole) ? En sais-tu un peu plus, là dessus ? Je viens de relancer des calculs en utilisant la caméra fisheye... On va voir si c'est mieux. À vue de nez, est-ce que ce serait compliqué de faire un plugin qui générerait les images en se basant sur les réglages effectués dans le PhotoPanel ? Je n'aurais pas besoin de rendu en temps réel, mais juste savoir l'avancement (à quelle photo on en est), et quand c'est fini. Faudrait-il refaire une partie de ce qui est fait dans PhotoPanel (computePhoto, en fait) ? Ou peut-on juste partir sur l'utilisation de PhotoRenderer ? Je n'ai pas tout pigé à quoi servait OffScreenImage, et BufferedImage...
----------------------------------------
Frédéric
[Mar 20, 2010, 6:21:29 PM]
[Link]