Table des matières

, ,

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:

Fonctionnalités spécifiques de Soya (habituellement non présentes dans la plupart des autres moteurs 3D):

3. Exemple de code

 # 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