HDRi 背景 20240619

 

 

【Blender】環境テクスチャの適用方法と操作を徹底解説 | Vook(ヴック)

 

 

2番

 

ambientcg.com

 

3番

 

ambientcg.com

 

 

 

ambientcg.com

 

 

 

 

 

 

 

 

import bpy

# 画像ファイルの番号(1から7の範囲で指定)
choice = 1  # 例: 1を選択するとRGBカラーが適用される

# 背景の強度を設定
background_strength = 2.0

# パラメータとして指定するRGB値
rgb_values = (133, 222, 56)

# RGB値を0.0から1.0の範囲に変換
rgb_color = tuple(value / 255.0 for value in rgb_values)

# RGBA形式(アルファは1.0)
rgba_color = (*rgb_color, 1.0)

# 2: 浜辺 https://ambientcg.com/view?id=DaySkyHDRI029A
# 3: 庭 https://ambientcg.com/view?id=DayEnvironmentHDRI004
# 4: 日の出 https://ambientcg.com/view?id=MorningSkyHDRI002A

 

 

# HDRIファイルのパスリスト
hdri_paths = [
    r"C:\2024_python\output\HDRi2024\DaySkyHDRI029A_4K-HDR.exr",
    r"C:\2024_python\output\HDRi2024\EveningHDRI030A_4K-HDR.exr",
    r"C:\2024_python\output\HDRi2024\NightSkyHDRI031A_4K-HDR.exr",
    r"C:\2024_python\output\HDRi2024\SunsetHDRI032A_4K-HDR.exr",
    r"C:\2024_python\output\HDRi2024\OvercastHDRI033A_4K-HDR.exr",
    r"C:\2024_python\output\HDRi2024\ForestHDRI034A_4K-HDR.exr",
]

# 現在のワールドを取得
world = bpy.context.scene.world

# ノードシステムを有効化
world.use_nodes = True

# ノードツリーを取得
node_tree = world.node_tree

# 既存の背景ノードを削除
for node in node_tree.nodes:
    if node.type == 'BACKGROUND' or node.type == 'TEX_ENVIRONMENT':
        node_tree.nodes.remove(node)

# ワールド出力ノードを取得または作成
output_node = None
for node in node_tree.nodes:
    if node.type == 'OUTPUT_WORLD':
        output_node = node
        break

if output_node is None:
    output_node = node_tree.nodes.new(type='ShaderNodeOutputWorld')

# 選択番号に基づいて処理を分岐
if choice == 1:
    # 番号が1の場合はRGBカラーを背景に設定
    bg_node = node_tree.nodes.new(type='ShaderNodeBackground')
    bg_node.inputs['Color'].default_value = rgba_color
    bg_node.inputs['Strength'].default_value = background_strength
    node_tree.links.new(bg_node.outputs['Background'], output_node.inputs['Surface'])
else:
    # 番号が2から7の場合はHDRI画像を背景に設定
    hdri_path = hdri_paths[choice - 2]  # 配列インデックスは0から始まるため、choice - 2
    env_node = node_tree.nodes.new(type='ShaderNodeTexEnvironment')
    env_node.image = bpy.data.images.load(hdri_path)
    bg_node = node_tree.nodes.new(type='ShaderNodeBackground')
    bg_node.inputs['Strength'].default_value = background_strength
    node_tree.links.new(env_node.outputs['Color'], bg_node.inputs['Color'])
    node_tree.links.new(bg_node.outputs['Background'], output_node.inputs['Surface'])

# ノードツリーを更新して3Dビューに反映
bpy.context.view_layer.update()

 

 

 

 

 

 

cad-kenkyujo.com