Wie erstelle ich die UV-Rastertextur mit Python?
Aug 22 2020
Wie erstellt man die generierte „UV Grid“ Textur mit Hilfe der Blender Python API?
Antworten
2 brockmann Aug 22 2020 at 17:57
Entweder ein Schachbrett erzeugen und die Pixel einem neuen Bilddatenblock zuweisen oder einfach aufrufen bpy.ops.image.new()und übergeben UV_GRID:
Ein Nachteil bei der Verwendung des Operators ist, dass Sie einen zuverlässigen (eindeutigen) Namen für den Bilddatenblock angeben müssten, da er sonst automatisch in Untitled.001, Untitled.002... umbenannt wird, da Blender mit Daten umgeht:
import bpy
import secrets
# Generate "unique" name
image_name = secrets.token_hex(5)
# Call the operator
bpy.ops.image.new(
name=image_name,
width=1024,
height=1024,
color=(0.0, 0.0, 0.0, 1.0),
alpha=True,
generated_type='UV_GRID', # BLANK, COLOR_GRID
float=False,
use_stereo_3d=False,
tiled=False
)
# Get the image from data blocks
image = bpy.data.images.get(image_name)
# Display the result
if image:
bpy.ops.screen.userpref_show('INVOKE_DEFAULT')
# Change area type
area = bpy.context.window_manager.windows[-1].screen.areas[0]
area.type = 'IMAGE_EDITOR'
# Assign the image
bpy.context.area.spaces.active.image = image
Verwandt:
- Ist es möglich, Bilddaten zu erstellen und aus einem Skript in eine Datei zu speichern?
- Wie öffnet man ein Bildbearbeitungsfenster und zeigt eine Bilddatei darin an?