France
Joined: Nov 7, 2005
Post Count: 9426
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
Voilà la première version du plug-in reprenant le code de Frédéric et ses suggestions. Le plug-in est disponible à l'adresse http://www.sweethome3d.eu/plugins/AdvancedRendering-1.1.sh3p et ajoute un menu Outils > Créer une photo avancée... qui affiche la boîte de dialogue de création de photos avec de nouvelles options:
La saisie des angles de latitude et de longitude se fait pour l'instant en degrés mais pas en minutes et secondes (ce qui n'est pas très pratique). Les lampes que l'on peut allumer sont celles incluses dans les bibliothèques SH3F, mais attention certaines ne marchent pas bien.
Enfin, pour ceux que ça intéresse, le code source est inclus dans le plug-in.
[29/04/2010 : une erreur de décalage d'un mois a été corrigée dans la version 1.1, qui remplace donc la version 1.0] [09/05/2010 : la version 1.2 avec quelques options supplémentaires est disponible]
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator
----------------------------------------
[Edit 2 times,
last edit by Puybaret at May 13, 2010, 5:27:36 PM]
France
Joined: Nov 7, 2005
Post Count: 9426
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
Merci Frédéric
Je viens de faire une petite amélioration sur les angles de latitude et de longitude, en préfixant la latitude par N pour Nord et S pour Sud et la longitude par E pour Est et W pour Ouest (je n'ai pas changé la version du plug-in). C'est quand même plus clair comme ça...
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator
France
Joined: Nov 7, 2005
Post Count: 9426
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
J'ai généré une image équirectangulaire de 3000x15000 pixels en prise de vue sphérique mais je ne trouve aucun outil gratuit ou libre pour générer des panoramas SWF ou Quicktime VR. Est-ce que quelqu'un aurait ça dans ses liens ?
Frédéric, j'aurais du mettre une combo pour le choix de caméra comme tu le proposais. Ce sera peut-être pour la prochaine version...
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator
Sinon, sous linux, comment faire pour utiliser l'archive .sh3p ? Je n'ai pas réussi à installer le plugin, ni directement, ni au travers de eclipse (chuis pas doué)...
----------------------------------------
Frédéric
France
Joined: Nov 7, 2005
Post Count: 9426
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
J'ai essayé PanoSalado sans succès pour l'instant. Pourtant j'y ai mis du mien, et ce pendant plusieurs heures, mais si c'est trop compliqué pour moi, ça n'est même pas la peine de l'envisager pour les utilisateurs de Sweet Home 3D. J'ai soumis mes déconvenues à l'équipe de PanoSalado. Voyons voir ce qu'ils vont répondre...
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator
----------------------------------------
[Edit 1 times,
last edit by Puybaret at Apr 27, 2010, 12:14:49 PM]
Joined: Mar 15, 2010
Post Count: 62
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
Je t'avoue que je ne l'ai jamais vraiment essayé. C'est vrai qu'il faut mettre les mains dans le cambouis. Ça fait un moment que je n'ai pas regardé de près le projet, et j'aurais pensé qu'il avait évolué vers la simplicité...
Comme je génère pas mal de sphériques en photo, j'ai acheté la license de pano2vr, qui est assez simple d'utilisation (bien documenté, en tout cas), et pas trop cher. Il y aura aussi Autopano Tour qui va bientôt devenir un outil indépendant (pour l'instant, il faut l'acheter avec Autopano Giga).
Sinon, juste une petite remarque concernant ton rendu : lorsque tu fais un sphérique (projection équirectangulaire, en fait), il faut que tu mettes le pitch à 0 (c'est à dire regarder horizontalement, ou encore que tes verticales soient verticales). Sinon, il y a un problème lors de la visualisation.
Lorsqu'on sélectionne ce type de caméra, ce serait pas mal de forcer automatiquement le ratio à 2:1, et le pitch à 0...
----------------------------------------
Frédéric
Je suis une buse : j'avais bien suivi ces explications, mais je regardais dans le mauvais menu (comme j'avais fait des tests de plugins sans traduction, les miens sont dans Tools, alors que le vrai menu c'est Outils !).
Mais ça ne marche pas :
Make sure it is located in the same server and directory with the model file. the loader's base path is: jar:file:/tmp/open1374584905366604351.sweethome3d!/29/ Make sure it is located in the same server and directory with the model file. the loader's base path is: jar:file:/tmp/open1374584905366604351.sweethome3d!/29/ Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at com.eteks.sweethome3d.plugin.advancedrendering.AdvancedPhotoPanel.displayView(Unknown Source) at com.eteks.sweethome3d.plugin.advancedrendering.CreateAdvancedPhotoPlugin.createAdvancedPhotoPlugin(U nknown Source) at com.eteks.sweethome3d.plugin.advancedrendering.CreateAdvancedPhotoPlugin.access$000(Unknown Source) at com.eteks.sweethome3d.plugin.advancedrendering.CreateAdvancedPhotoPlugin$1.execute(Unknown Source) at com.eteks.sweethome3d.swing.HomePane$ActionAdapter.actionPerformed(Unknown Source) at com.eteks.sweethome3d.swing.ResourceAction$AbstractDecoratedAction.actionPerformed(Unknown Source) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(Unknown Source) at javax.swing.JMenuItem.fireMenuDragMouseReleased(Unknown Source) at javax.swing.JMenuItem.processMenuDragMouseEvent(Unknown Source) at javax.swing.JMenuItem.processMouseEvent(Unknown Source) at javax.swing.MenuSelectionManager.processMouseEvent(Unknown Source) at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(Unknown Source) at java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Unknown Source) at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.awt.Toolkit.notifyAWTEventListeners(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at com.eteks.sweethome3d.plugin.advancedrendering.AdvancedPhotoPanel.displayView(Unknown Source) at com.eteks.sweethome3d.plugin.advancedrendering.CreateAdvancedPhotoPlugin.createAdvancedPhotoPlugin(U nknown Source) at com.eteks.sweethome3d.plugin.advancedrendering.CreateAdvancedPhotoPlugin.access$000(Unknown Source) at com.eteks.sweethome3d.plugin.advancedrendering.CreateAdvancedPhotoPlugin$1.execute(Unknown Source) at com.eteks.sweethome3d.swing.HomePane$ActionAdapter.actionPerformed(Unknown Source) at com.eteks.sweethome3d.swing.ResourceAction$AbstractDecoratedAction.actionPerformed(Unknown Source) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(Unknown Source) at javax.swing.JMenuItem.fireMenuDragMouseReleased(Unknown Source) at javax.swing.JMenuItem.processMenuDragMouseEvent(Unknown Source) at javax.swing.JMenuItem.processMouseEvent(Unknown Source) at javax.swing.MenuSelectionManager.processMouseEvent(Unknown Source) at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(Unknown Source) at java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Unknown Source) at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.awt.Toolkit.notifyAWTEventListeners(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
France
Joined: Nov 7, 2005
Post Count: 9426
Status:
Offline
Re: Écrire un plugin pour simuler l'éclairage de la course du soleil
Hum, est-ce que tu voudrais bien recharger le plug-in STP ? J'ai fait plusieurs modifs sur la version 1.0 hier sans changer de numéro de version, dont une pour corriger ce type d'erreur.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator