[PYTHON] Créez un générateur de rideaux avec Blender

Aperçu

J'ai créé un programme pour générer une image de rideau avec Blender. L'histoire originale est [Comment faire de la 3D à partir de 2D - Une histoire qui était étonnamment cool quand j'ai essayé d'exécuter Blender sur le serveur --pixiv à l'intérieur](http://inside.pixiv.net/entry/2015/09 / 24/173447).

environnement

Version: 2.74, Moteur de rendu: cycles

Préparation

Commencez par démarrer le mixeur et blender1.png

Créez un paysage avec des rideaux. Cette fois, la pièce est simplement une pièce avec des rideaux, et les rideaux blancs sont des rideaux de dentelle qui laissent passer la lumière de l'extérieur. En passant, je me suis référé à Modélisation avec Simulation de Tissu dans Blender --YouTube pour savoir comment faire un rideau. Il est expliqué d'une manière très facile à comprendre. blender2.png

la mise en oeuvre

Les matériaux sont définis pour chacun des rideaux gauche et droit. Les noms des matériaux doivent être «Curtain.left» et «Curtain.right».

  1. Définir la texture
  2. Rendu
  3. Sortie au format png

Ce processus est effectué par programme. Ecrit en python, il ressemble à ceci:

import sys
import os
import bpy

# How to pass command line arguments to a Blender Python script? - Blender Stack Exchange
# http://blender.stackexchange.com/questions/6817/how-to-pass-command-line-arguments-to-a-blender-python-script
argv = sys.argv
[left, right, out] = argv[argv.index("--") + 1:]  # get all args after "--"

def update_filepath(material_name, filepath):
    t = bpy.data.materials[material_name].node_tree.nodes.get('Image Texture')
    t.image.filepath = filepath

update_filepath('curtain.left', os.path.abspath(left))
update_filepath('curtain.right', os.path.abspath(right))

bpy.ops.render.render()
bpy.data.images['Render Result'].save_render(filepath = os.path.abspath(out + '.png'))

Quand tu fais ça

$ blender --background path/to/file.blend --python path/to/script.py -- left.png right.png rendered

Voilà à quoi ça ressemble! J'ai un peu de bruit, mais je n'ai pas le temps pour l'instant. out.png

référence

Recommended Posts

Créez un générateur de rideaux avec Blender
Créer un bookmarklet en Python
[Blender] Comment créer un plug-in Blender
Faisons un calcul de combinaison avec Python
Créez un simple générateur d'images par points avec Flask
Copiez la liste en Python
Créez un jeu cocos2d avec une fenêtre à double angle de pixels
Créez un jeu Janken en une seule ligne (python)
Créez un tracé de R semblable à un joyplot avec python
Faisons un jeu de squash
Essayez de créer un module Python en langage C
Fonction générateur même en JavaScript
Créez un Slackbot simple avec un bouton interactif en python
Faire un décorateur de fonction
Faire une matrice de distance
dict in dict Transforme un dict en dict
Mettez le pip dans le mélangeur
Je vais créer un mot de passe!
Zundokokiyoshi (générateur) en Python
Créer un bouton Nyan
Créez un jeu à la Tetris!
Faisons un programme cron en Java! !! (Planificateur de tâches)
Créer un décodeur Base64
Boucle sur un générateur qui renvoie un itérateur de date en Python
Créez un plug-in tky2jgd sans praticité avec QGIS Partie 2
Créer un tableau de multiplication de chaque élément dans une feuille de calcul (Python)
Créer un plug-in tky2jgd sans praticité avec QGIS Partie 1
Faisons un service de vente au comptant 4 (en Python mini Hack-a-thon)
Combinez des listes dans un DataFrame avec des pandas
J'ai fait un chronomètre en utilisant tkinter avec python
Je veux ajouter un joli complément à input () en python
Je veux un générateur de mox
Prendre une capture d'écran en Python
Faisons un robot Discord.
Créer un backend Blueqat ~ Partie 1
Créer une fonction en Python
Créer un dictionnaire en Python
Créer un backend Blueqat ~ Partie 2
[Django] Créer un menu déroulant
Ne faites pas test.py en Python!
Créer un LINE BOT (chat)
Je veux un générateur mox (2)
Faites une loterie avec Python
Faire de Responder un démon (service)
Rendre Opencv disponible en Python
Segfo python en 2 lignes
API Blender Python dans Houdini (Python 3)
Générez 8 * 8 (64) cubes avec Blender Python
Faire un feu avec kdeplot
Faire une impression de forage de calcul
[Tutoriel] Créez un extracteur d'expressions unique en 30 minutes à l'aide de l'apprentissage automatique
Comment transformer une chaîne en tableau ou un tableau en chaîne en Python
Créez une Spinbox qui peut être affichée en binaire avec Tkinter
Créez une Spinbox pouvant être affichée dans HEX avec Tkinter