J'ai essayé de démarrer avec le script python de blender_Partie 02

Pour écrire la suite trois ans plus tard ...

J'ai touché à la console Python de Blender il y a trois ans, et j'ai eu l'occasion de la toucher pour la première fois en trois ans, alors j'aimerais continuer à écrire.

Version Blender

Blender 2.8.1a: Il semble qu'il y ait eu des changements majeurs d'interface utilisateur et d'API.

Environnement de débogage sur Blender

La disposition est la suivante.

無題.png

J'ai placé «Text Editor» en bas à gauche de l'affichage de la figure et «Python Editor» en bas à droite.

Essayez d'afficher les données de point minimum.

Le script est basé sur l'article de référence Visualize Point Cloud with Blender + Python.

import bpy
import numpy as np

def render(points):
    bpy.ops.object.select_all(action="SELECT")
    bpy.ops.object.delete(True)

    mat = bpy.data.materials.new("BLUE")
    mat.diffuse_color = (.33, .43, .95, 1)

    bpy.ops.mesh.primitive_plane_add(location=(0, 0, -1))
    plane = bpy.context.object
    plane.scale = (100, 100, 1)

    for x, y, z in points:
        bpy.ops.mesh.primitive_uv_sphere_add(location=(x, y, z))
        sphere = bpy.context.object
        sphere.scale = (0.02, 0.02, 0.02)
        sphere.data.materials.append(mat)

    for loc, rot in [[(0, -5, 5), (-np.pi * 1 / 4, 0, np.pi)],
                     [(0, 5, 5), (np.pi * 1 / 4, 0, -np.pi)],
                     [(-5, 0, 5), (-np.pi * 1 / 4, 0, np.pi / 2)],
                     [(5, 0, 5), (-np.pi * 1 / 4, 0, -np.pi / 2)]]:
        light_data = bpy.data.lights.new(name="light", type="AREA")
        light_data.energy = 500
        light_object = bpy.data.objects.new(name="light", object_data=light_data)
        bpy.context.collection.objects.link(light_object)
        bpy.context.view_layer.objects.active = light_object
        light_object.location = loc
        light_object.rotation_euler = rot

    bpy.ops.object.camera_add(location=(3.25, -2.48, 0.745))
    camera_rotations = (np.pi * 78 / 180, 0, 52.5 * np.pi / 180)
    bpy.data.objects["Camera"].rotation_euler = camera_rotations

    bpy.context.scene.render.resolution_x = 500
    bpy.context.scene.render.resolution_y = 500
    bpy.context.scene.render.resolution_percentage = 100
    bpy.context.scene.camera = bpy.context.object
    # bpy.context.scene.render.image_settings.file_format = "PNG"
    bpy.ops.render.render(write_still=True)

if __name__ == "__main__":
    points = np.loadtxt("C:\\Blender_works\\min_sample.csv", delimiter=",")
    render(points)

display2.png

Visualisons environ 1000 données.

Script de création de données

import numpy as np
import pandas as pd
N = 1000
df =pd.DataFrame({
    "x": np.random.uniform(0.0, 10., N),
    "y": np.random.uniform(0.0, 10., N),
    "z": np.random.uniform(0.0, 10., N)
})
df.to_csv("./random_data.csv", header=False, index=False)

display3.png

la prochaine fois

Je voudrais étudier la coopération de Jupyter notebook.

référence

Recommended Posts

J'ai essayé de démarrer avec le script python de blender_Part 01
J'ai essayé de démarrer avec le script python de blender_Partie 02
J'ai essayé de commencer avec Hy
J'ai essayé d'obtenir des données CloudWatch avec Python
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
Lien pour commencer avec python
Comment démarrer avec Python
Démarrez avec Python avec Blender
J'ai essayé de commencer avec Hy ・ Définir une classe
[Blender x Python] Commençons avec Blender Python !!
J'ai essayé de démarrer avec Bitcoin Systre le week-end
J'ai essayé de sortir LLVM IR avec Python
J'ai essayé d'automatiser la fabrication des sushis avec python
Zubu amateur veut démarrer Python
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Commencez avec Python! ~ ② Grammaire ~
J'ai essayé gRPC avec Python
J'ai essayé de gratter avec du python
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé d'implémenter le perceptron artificiel avec python
J'ai essayé de résoudre le problème avec Python Vol.1
[Python] J'ai essayé d'obtenir Json de squid ring 2
J'ai essayé de résoudre la théorie des nombres entiers d'AOJ avec Python
J'ai essayé de toucher Python (installation)
Comment démarrer avec Scrapy
Comment démarrer avec Django
Je veux déboguer avec Python
J'ai essayé d'exécuter prolog avec python 3.8.2.
J'ai essayé la communication SMTP avec Python
J'ai essayé de créer diverses "données factices" avec Python faker
J'ai essayé différentes méthodes pour envoyer du courrier japonais avec Python
Connaissances minimales pour démarrer avec le module de journalisation Python
J'ai essayé "Comment obtenir une méthode décorée en Python"
[Python] J'ai essayé de visualiser des tweets sur Corona avec WordCloud
Mayungo's Python Learning Episode 3: J'ai essayé d'imprimer des nombres
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
J'ai essayé de résumer la gestion des exceptions Python
J'ai essayé d'implémenter PLSA en Python
Notes d'étape pour démarrer avec django
J'ai essayé de résoudre l'édition du débutant du livre des fourmis avec python
J'ai essayé d'implémenter Autoencoder avec TensorFlow
J'ai essayé d'implémenter la permutation en Python
J'ai essayé de visualiser AutoEncoder avec TensorFlow
Un mémorandum lors de l'acquisition automatique avec du sélénium
J'ai commencé Python
J'ai essayé d'implémenter PLSA dans Python 2
[3ème] J'ai essayé de créer un certain outil de type Authenticator avec python
Entrée standard Python3 que j'ai essayé de résumer
J'ai écrit un script pour vous aider à démarrer avec AtCoder à grande vitesse!
Je voulais résoudre ABC160 avec Python