Features

Download

Online

Gallery

Blog

  Index  | Recent Threads  | List Attachments  | Help  | Search
 Welcome Guest  |  Register  |  Login
Login Name  Password
 

Sweet Home 3D Forum



No member browsing this thread
Thread Status: Active
Total posts in this thread: 72
Posts: 72   Pages: 8   [ 1 2 3 4 5 6 7 8 | Next Page ]
[ Jump to Last Post ]
Post new Thread
Author
Previous Thread This topic has been viewed 42698 times and has 71 replies Next Thread
fma
Member




Joined: Mar 15, 2010
Post Count: 62
Status: Offline
Reply to this Post  Reply with Quote 
Écrire un plugin pour simuler l'éclairage de la course du soleil

Pour faire suite à la réponse d'Emmanuel à propos de mon problème de simulation de course du soleil, je bascule sur la partie française du forum, pour mieux piger les tenants et aboutissants...

Quand tu dis "écrire un plugin basé sur les classes PhotoPanel and PhotoRenderer", cela veut-il dire qu'il est possible de modifier le comportement par défaut de SH3D, et faire en sorte qu'il n'utilise pas les 5 éclairages standards ?

Dans les exemples de plugin que j'ai vu, on ajoute des fonctionnalités, ou on modifie des propriétés des objets, mais je ne vois pas comment remplacer une partie des fonctionnalités du code (les classes que tu as citées). Pourrais-tu m'en dire plus ?

Déjà, comment sont-elles utilisées dans le modèle ? Je ne les vois pas dans le diagramme de classes donné sur la page développeurs...

Merci d'avance pour ton aide.
----------------------------------------
Frédéric
[Mar 15, 2010 8:19:29 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
fma
Member




Joined: Mar 15, 2010
Post Count: 62
Status: Offline
Reply to this Post  Reply with Quote 
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil

Déjà, j'ai réussi à créer un plugin en suivant le tutoriel smile Au moins, je sais que la chaîne de développement est opérationnelle !

Reste à voir comment intégrer les modifications proposées...
----------------------------------------
Frédéric
[Mar 16, 2010 3:07:01 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
Puybaret
Expert
Member's Avatar

France
Joined: Nov 7, 2005
Post Count: 5837
Status: Offline
Reply to this Post  Reply with Quote 
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil

C'est un premier pas encourageant. smile

Si j'ai bien suivi, ce qui t'intéresse c'est de voir comment le soleil va rentrer dans le logement et comment s'y projettera le soleil au sol et éventuellement aux murs, non ?

Java 3D ne calcule aucune ombre, donc toucher aux 5 lumières que tu as trouvées dans le code source ne t'avancera à rien. C'est pour ça que tu es obligé de recourir à SunFlow (renderer utilisé par les deux meilleures qualités du module de création de photo). C'est (beaucoup) plus lent, mais c'est le seul moyen sans tout reprogrammer (ou alors tu te rabats sur Blender mais ça n'ira pas beaucoup plus vite).

Pour ajouter les fonctionnalités manquantes que je t'ai indiquées, tu copies-colles simplement le code des classes puis tu les modifies. Côté programmation, je t'accorde que ça n'est pas le plus propre, mais je préfère de très loin cette façon de faire à celle qui consisterait à rendre public tous les champs et les méthodes de Sweet Home 3D.

Je te propose de démarrer sur la base du plug-in Photo que j'avais développé l'an dernier avant de l'intégrer dans Sweet Home 3D. Si tu as tout bien suivi, ce plug-in est un fichier zip dans lequel tu y trouveras le code source. Ne prends pas en compte les classes SunFlow situées dans le répertoire org de ce plug-in car maintenant ces classes sont disponibles dans Sweet Home 3D.

J'espère que tout ceci te permettra de faire tes premiers tests. N'hésite pas à poser plus de questions si tu bloques.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D developer
[Mar 16, 2010 6:42:01 PM] Show Printable Version of Post    View Member Profile    Send Private Message    Hidden to Guest    http://www.eteks.com [Link] Report threatening or abusive post: please login first  Go to top 
fma
Member




Joined: Mar 15, 2010
Post Count: 62
Status: Offline
Reply to this Post  Reply with Quote 
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil

C'est un premier pas encourageant. smile

Je trouve aussi, pour quelqu'un qui n'a jamais développé en java tongue Faut dire que ton tutoriel est très bien fait (et sans te jeter des fleurs, ton code est vraiment très bien présenté).

Si j'ai bien suivi, ce qui t'intéresse c'est de voir comment le soleil va rentrer dans le logement et comment s'y projettera le soleil au sol et éventuellement aux murs, non ?

C'est exactement ça.

Java 3D ne calcule aucune ombre, donc toucher aux 5 lumières que tu as trouvées dans le code source ne t'avancera à rien. C'est pour ça que tu es obligé de recourir à SunFlow (renderer utilisé par les deux meilleures qualités du module de création de photo). C'est (beaucoup) plus lent, mais c'est le seul moyen sans tout reprogrammer

Ok. Mais le SunFlow utilise bien aussi les 5 mêmes lumières ? Il va bien falloir que je les modifie, non ?

Au passage, j'ai l'impression qu'avec un ciel texturé, ça change la donne... Me goure-je ? Je dois commencer sans ?

(ou alors tu te rabats sur Blender mais ça n'ira pas beaucoup plus vite).

C'est clair ! Rien qu'apprendre les raccourcis claviers, j'en ai pour 1 mois ! Et je voudrais être opérationnel d'ici 2 semaines, quand on va recevoir les premières esquisses de l'archi...

Pour ajouter les fonctionnalités manquantes que je t'ai indiquées, tu copies-colles simplement le code des classes puis tu les modifies. Côté programmation, je t'accorde que ça n'est pas le plus propre, mais je préfère de très loin cette façon de faire à celle qui consisterait à rendre public tous les champs et les méthodes de Sweet Home 3D.

Je te propose de démarrer sur la base du plug-in Photo que j'avais développé l'an dernier avant de l'intégrer dans Sweet Home 3D. Si tu as tout bien suivi, ce plug-in est un fichier zip dans lequel tu y trouveras le code source. Ne prends pas en compte les classes SunFlow situées dans le répertoire org de ce plug-in car maintenant ces classes sont disponibles dans Sweet Home 3D.

C'est donc dans la classe HomeImageRenderer que je dois faire les modifes ? C'est cette classe qui s'appelle maintenant PhotoRenderer, c'est bien ça ?

J'espère que tout ceci te permettra de faire tes premiers tests. N'hésite pas à poser plus de questions si tu bloques.

Je n'ai pas hésité biggrin
----------------------------------------
Frédéric
[Mar 16, 2010 7:56:32 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
fma
Member




Joined: Mar 15, 2010
Post Count: 62
Status: Offline
Reply to this Post  Reply with Quote 
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil

Bon, j'avance tout doucement. J'ai donc créé un nouveau plugin, et copié le code des fichiers HomeImageRenderer.java et CreatePhotoPlugin.java.

J'ai omis le package org.SunFlow, comme tu m'a indiqué, mais ça gueule sur les import relatifs à ce package. De même, ça gueule sur les import javax.xxx.

J'ai pourtant bien mis le jar de SweetHome3D...

Pour info, j'ai chargé le source de SweetHome3D dans eclipse, et j'arrive à le lancer correctement. Je me demande si je n'irais pas plus vite en modifiant directement le source... Il sera toujours temps de faire un plugin propre après, non ? Qu'en penses-tu ?
----------------------------------------
Frédéric
[Mar 16, 2010 9:00:31 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
Puybaret
Expert
Member's Avatar

France
Joined: Nov 7, 2005
Post Count: 5837
Status: Offline
Reply to this Post  Reply with Quote 
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil

Tes erreurs sont simplement dues au fait qu'il faille ajouter aussi les bibliothèques utilisées par Sweet Home 3D à ton projet de plug-in (SweetHome3D.jar ne contient pas les classes de ces bibliothèques mais leur fichier jar).

Mais tu as probablement raison (j'y ai pensé après mon message) : si tu arrives à reprendre le projet Sweet Home 3D dans son ensemble dans Eclipse, autant modifier directement le code source du projet lui-même.
La création d'un plug-in te permettra ensuite de partager tes trouvailles avec d'autres utilisateurs.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D developer
[Mar 16, 2010 9:11:58 PM] Show Printable Version of Post    View Member Profile    Send Private Message    Hidden to Guest    http://www.eteks.com [Link] Report threatening or abusive post: please login first  Go to top 
fma
Member




Joined: Mar 15, 2010
Post Count: 62
Status: Offline
Reply to this Post  Reply with Quote 
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil

Bon, ben c'est bon pour les modifes dans le code source : ça tourne ! Je vois bien que les fenêtres sont maintenant transparentes...

Reste à voir les éclairages :

- que représente exactement 'sundir' ? Est-ce la position du soleil ? Quel est le référentiel ? À quoi correspond une unité dans le code, par rapport aux distances sur le plan ?

- comment donner les coordonnées du soleil, dans un premier temps via un GUI (on verra plus tard pour un truc automatique) ?

- comment supprimer (ou modifier le niveau) des éclairages intérieur (plafond et aux 4 coins) ? Là, je vois surtout les ombres des fenêtres projetées sur la pelouse, mais quasiment pas les ombres des fenêtres projetées sur les murs intérieurs...

En tout cas, bien content d'avancer aussi vite smile C'est top ! J'ai bien fait de ne pas m'embarquer dans blender, un peu overkill pour ce que je veux faire...
----------------------------------------
Frédéric
[Mar 16, 2010 9:45:31 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
fma
Member




Joined: Mar 15, 2010
Post Count: 62
Status: Offline
Reply to this Post  Reply with Quote 
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil

Bon, effectivement, mettre une texture pour le ciel empèche le calcul des ombres en mode visite virtuelle (mais pas en mode aérien).

Par contre, dans tous les cas, je n'ai pas le calcul des ombres dans le meilleur rendu : uniquement au niveau 3 ('illumination globale rapide...').
----------------------------------------
Frédéric
[Mar 16, 2010 9:58:09 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
fma
Member




Joined: Mar 15, 2010
Post Count: 62
Status: Offline
Reply to this Post  Reply with Quote 
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil

Voici le rendu, en qualité 3, d'une pièce comportant 4 fenêtres (une sur chaque mur), en mode virtuel, en se mettant au plafond et en regardant vers le bas :



Voici le même rendu, dans la qualité la plus haute :



Y'a plein de choses qui disparaissent ! Visiblement, la gestion des éclairages n'est pas du tout la même... Tu peux m'en dire plus ?

Merci d'avance.
----------------------------------------
Frédéric
[Mar 17, 2010 2:15:02 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
Puybaret
Expert
Member's Avatar

France
Joined: Nov 7, 2005
Post Count: 5837
Status: Offline
Reply to this Post  Reply with Quote 
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil

Je ne peux pas t'en dire bien plus sur la qualité 3 car je ne suis pas le programmeur de SunFlow.
J'ai mis la qualité 3 surtout parce qu'elle est plus rapide et donne un aperçu de ce que pourrait donner la qualité 4.

"sundir" spécifie les coordonnées du vecteur représentant la direction des rayons du soleil. En jouant sur les valeurs des 3 coordonnées tu changeras la direction des rayons, sachant que la seconde valeur représente la verticale. Tu comprendras vite en essayant, à moins que toi et la trigo soyez des ennemis jurés. wink

Dans le GUI, je mettrai un slider pour l'heure de la journée et un spinner pour la latitude.
Il doit bien y avoir sur Internet une formule qui te donnera la direction ou les angles du soleil en fonction de ces valeurs.

Les lumières aux plafonds sont calculées aux lignes 176 à 217 de PhotoRenderer. En diminuant la valeur de power à la ligne 207, tu auras des lumières moins puissantes.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D developer
[Mar 17, 2010 7:00:35 PM] Show Printable Version of Post    View Member Profile    Send Private Message    Hidden to Guest    http://www.eteks.com [Link] Report threatening or abusive post: please login first  Go to top 
Posts: 72   Pages: 8   [ 1 2 3 4 5 6 7 8 | Next Page ]
[ Jump to Last Post ]
Show Printable Version of Thread  Post new Thread

    Get Sweet Home 3D at SourceForge.net. Fast, secure and Free Open Source software downloads
   
© Copyright 2006-2017 eTeks - All rights reserved