2013-02-28 2 views
6

Je souhaite visualiser des données scientifiques, qui ne sont pour le moment qu'une animation de certaines sphères de couleurs et de tailles différentes.Exécution d'un script python Blender en dehors du mélangeur

J'ai déjà créé un script dans Mathematica qui crée l'entrée pour POV-Ray. Mon problème est, que je ne suis pas satisfait de la qualité des résultats de POV-Ray et que je voulais écrire un script Python, qui pourrait mettre en place les scènes Blender correspondantes et les rendre. Une contrainte importante est, que je veux rendre sur une machine sans tête, donc je ne peux pas utiliser la console interne de Blender.

Ma question: est-il possible d'utiliser l'API de Blender à partir d'une console externe pour obtenir un comportement de type POV-Ray?


Après avoir lu la réponse de George Profenza je l'ai fait d'autres recherches et trouvé Don’t Use Blender! dans la documentation de Blender. Contrairement à ce que je pense, il faut créer un script python qui est exécuté par Blender en mode arrière-plan.

./blender --background --python myscript.py 

Répondre

4

Pour autant que je me rappelle que vous pouvez exécuter Blender à partir de la ligne de commande sans ouvrir le système d'interface/fenêtrage, qui je l'espère fonctionne pour votre installation. Non seulement vous pouvez demander à Blender de rendre un document, mais vous pouvez également exécuter un script qui génère ce document/remplit la scène avec la géométrie, les lumières, etc.

Vous pouvez également générer du contenu directement pour un moteur de rendu (et ignorer) un éditeur 3D/Blender complètement).Il y a là-bas pas mal de équarrisseurs libres comme:

  1. Yafaray
  2. Sunflow
  3. Mitsuba
  4. LuxRender
  5. Pixie

YafaRay

YAFARAY

sunflow

SUNFLOW

LuxRender LUX

Pixie

PIXIE

+0

Je sais que c'est un ancien sujet, mais avez-vous des recommandations pour générer le contenu directement? En ce moment je suis en train d'essayer cgkit (une librairie python pour générer des fichiers RenderMan), mais je me demandais s'il y aurait une meilleure approche. Merci – sheridp

+0

Parlez-vous de la création de modèles génératifs? Si c'est le cas, il faudrait utiliser [l'API de Blender Python] (http://www.blender.org/documentation/blender_python_api_2_70_5/bpy.ops.mesh.html) pour ajouter des sommets aux visages/faces aux maillages et/ou modifier ces mailles. Je ne savais pas à propos de cgkit, merci pour les heads-up, cela semble intéressant. En jetant un coup d'œil sur les documents, vous pouvez générer un [triangle mesh] personnalisé (http://cgkit.sourceforge.net/doc2/trimesh.html) avec cgkit. Il est difficile de dire quelle serait la meilleure approche dans votre scénario ... –

+0

... vous pouvez utiliser cgkit et Blender pour générer des maillages. Vous avez encore quelques modificateurs et outils dans Blender, mais à la fin j'irais avec la solution la plus simple (pas nécessairement la plus riche en fonctionnalités): ce qui génère votre sortie désirée la plus simple et supporte toujours les entrées dont vous avez besoin (paramètres pour générer la géométrie je suppose). HTH –

5

Il y a deux options,

  • La première que vous avez rencontré est ce qui est de lancer Blender en arrière-plan,
  • Le second, qui est très expérimental, en utilisant Blender comme un module python - BlenderAsPyModule

Dans les deux cas cela devrait être une opération simple pour importer la scène Mathematica - bpy.ops.import_scene.* Puis rendre la scène bpy.ops.render.render

+0

Je vais rester avec la première option. Mais merci de signaler l'opérateur 'import_scene'. Cela pourrait être très utile. – Stefan

Questions connexes