Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
soya_3d [Le 16/06/2008, 17:33] 194.250.177.46, 213.95.41.13soya_3d [Le 01/10/2017, 14:13] (Version actuelle) – [2. Fonctionnalités] 176.142.244.167
Ligne 1: Ligne 1:
 +{{tag>jeu programmation BROUILLON}}
 +
 +----
 +
 +====== Soya 3D ======
 +
 +===== 1. Présentation =====
 +
 +Soya 3D est un moteur 'haut niveau' orienté objet pour Python. 
 +On pourrait dire que Soya est à la 3D, ce que python est à la programmation. Soya 3D a pour principale qualité de permettre un développement rapide de jeux ou d'application 3D, le tout en Python. 
 +
 +Soya 3D est simple à apprendre et donne de bonnes performances. Son principal avantage est de mettre à disposition une documentation relativement importante de tutoriaux et d'exemples, facilitant ainsi l'apprentissage. 
 +
 +Soya 3D offre les principales capacités que l'on peut attendre d'un moteur 3D comme la gestion basique de scène, cell-shading, système d'ombrage, système de particule, etc. Ainsi que certaines caractéristiques uniques visant à rendre le développement de jeux plus facile et plus rapide.
 +
 +Soya est un Logiciel libre sous licence GNU GPL et est écrit en Pyrex ( un mix de C et de Python) et Python.
 +
 +===== 2. Fonctionnalités =====
 +Fonctionnalités implémentées:
 +
 +    * Multi-plateform : Linux / Unix, MacOSX, Windows
 +    * Object model, including camera, light, world, volume,...
 +    * Cell-shading
 +    * Shadows
 +    * Particle systems
 +    * Fullscreen
 +    * Tutorials and demos included
 +    * Trees
 +    * Raypicking
 +    * Landscapes
 +    * 3D character animation (with Cal3D)
 +    * Exportation scripts for Blender, Obj/Mtl, Maya and 3DSmax
 +    * Event management (keyboard, mouse,...) 
 +    * Environment mapping
 +
 +Fonctionnalités spécifiques de Soya (habituellement non présentes dans la plupart des autres moteurs 3D):
 +
 +    * Soya takes care of coordinate system conversion automatically!
 +    * Soya imports Blender models automatically!
 +    * Soya automatically regulate the rendering speed by modifying the animation quality!
 +    * Soya is able to determine automatically which objects are static, and to optimize their rendering! (work in progress)
 +    * Soya's object, including the ones you may create using inheritance, can be saved without writing additional code, using serialization (Pickle or Cerealizer)!
 +
 +
 +===== 3. Exemple de code =====
 +{{basic-1.jpeg|}}
 +
 +   # Imports sys, os modules and the Soya module.
 +   import sys, os, os.path, soya
 +   
 +   # Initializes Soya (creates and displays the 3D window).
 +   soya.init()
 +   
 +   # Add the path "tutorial/data" to the list of soya data path. 
 +   soya.path.append(os.path.join(os.path.dirname(sys.argv[0]), "data"))
 +   
 +   # Creates a scene.
 +   scene = soya.World()
 +   
 +   # Loads the sword model (from file "tutorial/data/models/sword.data").
 +   sword_model = soya.Model.get("sword")
 +   
 +   # Create the model.
 +   sword = soya.Body(scene, sword_model)
 +   
 +   # To view it better, we moves the sword to the right.
 +   sword.x = 1.0
 +   
 +   # Rotates the sword on the Y axis, of 60.0 degrees.
 +   sword.rotate_y(90.0)
 +   
 +   # Creates a light in the scene.
 +   light = soya.Light(scene)
 +   light.set_xyz(0.5, 0.0, 2.0)
 +   
 +   # Creates a camera in the scene 
 +   camera = soya.Camera(scene)
 +   camera.z = 2.0
 +   
 +   # Say to Soya that the camera is what we want to be rendered.
 +   soya.set_root_widget(camera)
 +   
 +   # Creates an 'MainLoop' for the scene, and launch it.
 +   soya.MainLoop(scene).main_loop()
 +
 +===== 4. Jeux développé avec Soya 3D =====
 +Voir cette adresse : http://www.lesfleursdunormal.fr/static/informatique/soya3d/projects_using_soya_en.html
 +===== 5. Tutoriaux =====
 +Voir cette adresse : http://home.gna.org/oomadness/en/soya3d/tutorials/index.html
 +
 +===== 6. Site officiel (anglais) =====
 +http://www.lesfleursdunormal.fr/static/informatique/soya3d/index_en.html