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

3D Java Discussion :

Insérer un objet 3DS Max


Sujet :

3D Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Insérer un objet 3DS Max
    bjn . je trouve un problème d’insérer un objet 3DSMAX dans une scène Java 3D

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par abdopfe123456789 Voir le message
    bjn . je trouve un problème d’insérer un objet 3DSMAX dans une scène Java 3D
    ça veut dire quoi "bjn"?

    Quel problème?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Surement bonjour

    Sache que le format 3DSMax est inutilisable en tant que tel. (je pense pas que le format soit très ouvert en gros).

    Il faudra donc veiller à utiliser des formats un peu plus standards comme l'ancien format 3DS, ou OBJ (wavefront).

    Cherche en ce sens, ainsi qu'après des libraires ou alors en écrire une toi même (OBJ sera le plus facile à implémenter) permettant d'être intégrée avec opengl, Java3D ou autres...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut java3D
    Merci.

    Je charge un objet .obj dans ma scène mais il y a un problème au niveau des textures. Voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    import java.applet.Applet;
    import java.awt.BorderLayout;
    import java.awt.GraphicsConfiguration;
    import java.io.FileNotFoundException;
    import java.net.MalformedURLException;
    import java.net.URL;
    import javax.media.j3d.Alpha;
    import javax.media.j3d.AmbientLight;
    import javax.media.j3d.Background;
    import javax.media.j3d.BoundingSphere;
    import javax.media.j3d.BranchGroup;
    import javax.media.j3d.Canvas3D;
    import javax.media.j3d.DirectionalLight;
    import javax.media.j3d.RotationInterpolator;
    import javax.media.j3d.Transform3D;
    import javax.media.j3d.TransformGroup;
    import javax.vecmath.Color3f;
    import javax.vecmath.Point3d;
    import javax.vecmath.Vector3f;
    import com.sun.j3d.loaders.IncorrectFormatException;
    import com.sun.j3d.loaders.ParsingErrorException;
    import com.sun.j3d.loaders.Scene;
    import com.sun.j3d.loaders.objectfile.ObjectFile;
    import com.sun.j3d.utils.applet.MainFrame;
    import com.sun.j3d.utils.behaviors.vp.OrbitBehavior;
    import com.sun.j3d.utils.universe.PlatformGeometry;
    import com.sun.j3d.utils.universe.SimpleUniverse;
    import com.sun.j3d.utils.universe.ViewingPlatform;
    public class ObjLoad extends Applet {
      private boolean spin = false;
      private boolean noTriangulate = false;
      private boolean noStripify = false;
      private double creaseAngle = 60.0;
      private URL filename = null;
      private SimpleUniverse u;
      private BoundingSphere bounds;
      public BranchGroup createSceneGraph() {
        // Create the root of the branch graph
        BranchGroup objRoot = new BranchGroup();
        // Create a Transformgroup to scale all objects so they
        // appear in the scene.
        TransformGroup objScale = new TransformGroup();
        Transform3D t3d = new Transform3D();
        t3d.setScale(0.7);
        objScale.setTransform(t3d);
        objRoot.addChild(objScale);
        // Create the transform group node and initialize it to the
        // identity. Enable the TRANSFORM_WRITE capability so that
        // our behavior code can modify it at runtime. Add it to the
        // root of the subgraph.
        TransformGroup objTrans = new TransformGroup();
        objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
        objScale.addChild(objTrans);
        int flags = ObjectFile.RESIZE;
        if (!noTriangulate)
          flags |= ObjectFile.TRIANGULATE;
        if (!noStripify)
          flags |= ObjectFile.STRIPIFY;
        ObjectFile f = new ObjectFile(flags,
            (float) (creaseAngle * Math.PI / 180.0));
        Scene s = null;
        try {
          s = f.load(filename);
        } catch (FileNotFoundException | ParsingErrorException | IncorrectFormatException e) {
          System.err.println(e);
          System.exit(1);
        }
        objTrans.addChild(s.getSceneGroup());
        bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0);
        if (spin) {
          Transform3D yAxis = new Transform3D();
          Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, 0, 0,
              4000, 0, 0, 0, 0, 0);
          RotationInterpolator rotator = new RotationInterpolator(
              rotationAlpha, objTrans, yAxis, 0.0f,
              (float) Math.PI * 2.0f);
          rotator.setSchedulingBounds(bounds);
          objTrans.addChild(rotator);
        }
        // Set up the background
        Color3f bgColor = new Color3f(0.05f, 0.05f, 0.5f);
        Background bgNode = new Background(bgColor);
        bgNode.setApplicationBounds(bounds);
        objRoot.addChild(bgNode);
        return objRoot;
      }
      private void usage() {
        System.out
            .println("Usage: java ObjLoad [-s] [-n] [-t] [-c degrees] <.obj file>");
        System.out.println("  -s Spin (no user interaction)");
        System.out.println("  -n No triangulation");
        System.out.println("  -t No stripification");
        System.out
            .println("  -c Set crease angle for normal generation (default is 60 without");
        System.out
            .println("     smoothing group info, otherwise 180 within smoothing groups)");
        System.exit(0);
      } // End of usage
      public void init() {
        if (filename == null) {
          // Applet
          try {
            URL path = getCodeBase();
            filename = new URL(path.toString() + "./galleon.obj");
          } catch (MalformedURLException e) {
            System.err.println(e);
            System.exit(1);
          }
        }
        setLayout(new BorderLayout());
        GraphicsConfiguration config = SimpleUniverse
            .getPreferredConfiguration();
        Canvas3D c = new Canvas3D(config);
        add("Center", c);
        // Create a simple scene and attach it to the virtual universe
        BranchGroup scene = createSceneGraph();
        u = new SimpleUniverse(c);
        // add mouse behaviors to the ViewingPlatform
        ViewingPlatform viewingPlatform = u.getViewingPlatform();
        PlatformGeometry pg = new PlatformGeometry();
        // Set up the ambient light
        Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f);
        AmbientLight ambientLightNode = new AmbientLight(ambientColor);
        ambientLightNode.setInfluencingBounds(bounds);
        pg.addChild(ambientLightNode);
        // Set up the directional lights
        Color3f light1Color = new Color3f(1.0f, 1.0f, 0.9f);
        Vector3f light1Direction = new Vector3f(1.0f, 1.0f, 1.0f);
        Color3f light2Color = new Color3f(1.0f, 1.0f, 1.0f);
        Vector3f light2Direction = new Vector3f(-1.0f, -1.0f, -1.0f);
        DirectionalLight light1 = new DirectionalLight(light1Color,
            light1Direction);
        light1.setInfluencingBounds(bounds);
        pg.addChild(light1);
        DirectionalLight light2 = new DirectionalLight(light2Color,
            light2Direction);
        light2.setInfluencingBounds(bounds);
        pg.addChild(light2);
        viewingPlatform.setPlatformGeometry(pg);
        // This will move the ViewPlatform back a bit so the
        // objects in the scene can be viewed.
        viewingPlatform.setNominalViewingTransform();
        if (!spin) {
          OrbitBehavior orbit = new OrbitBehavior(c,
              OrbitBehavior.REVERSE_ALL);
          BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0,
              0.0), 100.0);
          orbit.setSchedulingBounds(bounds);
          viewingPlatform.setViewPlatformBehavior(orbit);
        }
        u.addBranchGraph(scene);
      }
      // Caled if running as a program
      public ObjLoad(String[] args) {
        if (args.length != 0) {
          for (int i = 0; i < args.length; i++) {
            if (args[i].startsWith("-")) {
              if (args[i].equals("-s")) {
                spin = true;
              } else if (args[i].equals("-n")) {
                noTriangulate = true;
              } else if (args[i].equals("-t")) {
                noStripify = true;
              } else if (args[i].equals("-c")) {
                if (i < args.length - 1) {
                  creaseAngle = (new Double(args[++i])).doubleValue();
                } else
                  usage();
              } else {
                usage();
              }
            } else {
              try {
                if ((args[i].indexOf("file:") == 0)
                    || (args[i].indexOf("http") == 0)) {
                  filename = new URL(args[i]);
                }  else {
                  filename = new URL("file:" + args[i]);
                }
              } catch (MalformedURLException e) {
                System.err.println(e);
                System.exit(1);
              }
            }
          }
        }
      }
      // Running as an applet
      public ObjLoad() {
      }
      public void destroy() {
        u.cleanup();
      }
      //
      // The following allows ObjLoad to be run as an application
      // as well as an applet
      //
      public static void main(String[] args) {
        new MainFrame(new ObjLoad(args), 700, 700);
      }
    }

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Quel genre de problème ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut objet 3DS max
    les textures et les matériaux se n'affiche pas .

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    A première vue tu ne charges pas le fichier MTL qui va avec le fichier OBJ (peut être que la librairie le fait indirectement, je n'en sais rien).

    Mais si cela n'est pas chargé, alors tu n'aurais aucune informations sur les materiaux et donc ni couleur ni textures.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [3DS Max] Exportation (objet + texture)
    Par Ekinoks dans le forum OpenGL
    Réponses: 3
    Dernier message: 27/08/2005, 09h43
  2. Objets 3Ds Max dans OpenGL
    Par Deedier dans le forum OpenGL
    Réponses: 5
    Dernier message: 24/03/2005, 14h21
  3. charger animation 3ds max
    Par moldavi dans le forum DirectX
    Réponses: 8
    Dernier message: 11/03/2005, 00h55
  4. [Plugin] 3DS MAX
    Par Pedro dans le forum MFC
    Réponses: 3
    Dernier message: 03/03/2005, 13h40

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