Python으로 UV 그리드 텍스처를 만드는 방법은 무엇입니까?

Aug 22 2020

Blender Python API를 사용하여 생성 된 "UV Grid"텍스처를 만드는 방법은 무엇입니까?

답변

2 brockmann Aug 22 2020 at 17:57

어느 바둑판를 생성 하고 새 이미지 데이터 블록에 대한 화소를 할당 하거나 호출 bpy.ops.image.new()및 전달 UV_GRID:

연산자 사용의 한 가지 단점은 이미지 데이터 블록에 대해 신뢰할 수있는 (고유 한) 이름을 제공해야한다는 것입니다. 그렇지 않으면 블렌더의 데이터 처리 특성으로 인해 자동으로 Untitled.001, Untitled.002...로 이름이 변경됩니다 .

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

관련 :

  • 이미지 데이터를 생성하고 스크립트에서 파일로 저장할 수 있습니까?
  • 이미지 편집기 창을 열고 그 안에 이미지 파일을 표시하는 방법은 무엇입니까?