Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen

Um die Fortsetzung drei Jahre später zu schreiben ...

Ich habe vor drei Jahren die Python-Konsole von Blender berührt und hatte die Gelegenheit, sie zum ersten Mal seit drei Jahren wieder zu berühren. Deshalb möchte ich weiter schreiben.

Mixer-Version

Blender 2.8.1a: Es sieht so aus, als ob es wichtige Änderungen an der Benutzeroberfläche und der API gegeben hat.

Debug-Umgebung auf Blender

Das Layout ist wie folgt.

無題.png

Ich habe "Texteditor" unten links in der Figurenanzeige und "Python-Editor" unten rechts platziert.

Versuchen Sie, die Mindestpunktdaten anzuzeigen.

Das Skript basiert auf dem Referenzartikel Punktwolke mit Blender + Python visualisieren.

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

Lassen Sie uns ungefähr 1000 Daten visualisieren.

Datenerstellungsskript

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

nächstes Mal

Ich möchte die Zusammenarbeit von Jupyter Notebook untersuchen.

Referenz

Recommended Posts

Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
Ich habe versucht, mit Hy anzufangen
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Link, um mit Python zu beginnen
Erste Schritte mit Python
Beginnen Sie mit Python mit Blender
Ich habe versucht, mit Hy ・ Define a class zu beginnen
[Blender x Python] Beginnen wir mit Blender Python !!
Ich habe am Wochenende versucht, mit Bitcoin Systre zu beginnen
Ich habe versucht, LLVM IR mit Python auszugeben
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
Zubu Amateur will Python starten
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Beginnen Sie mit Python! ~ ② Grammatik ~
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
[Python] Ich habe versucht, Json von Tintenfischring 2 zu bekommen
Ich habe versucht, AOJs Integer-Theorie mit Python zu lösen
Ich habe versucht, Python zu berühren (Installation)
Wie fange ich mit Scrapy an?
Wie fange ich mit Django an?
Ich möchte mit Python debuggen
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe die SMTP-Kommunikation mit Python versucht
Ich habe versucht, mit Python faker verschiedene "Dummy-Daten" zu erstellen
Ich habe verschiedene Methoden ausprobiert, um japanische Post mit Python zu senden
Mindestkenntnisse, um mit dem Python-Protokollierungsmodul zu beginnen
Ich habe versucht "Wie man eine Methode in Python dekoriert"
[Python] Ich habe versucht, Tweets über Corona mit WordCloud zu visualisieren
Mayungos Python Learning Episode 3: Ich habe versucht, Zahlen zu drucken
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Schritt Notizen, um mit Django zu beginnen
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ein Memorandum beim automatischen Erwerb mit Selen
Ich habe Python gestartet
Ich habe versucht, PLSA in Python 2 zu implementieren
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich habe ein Skript geschrieben, mit dem Sie mit hoher Geschwindigkeit mit AtCoder beginnen können!
Ich wollte ABC160 mit Python lösen