中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Blender?Python編程如何創建發光材質

發布時間:2022-08-08 10:59:42 來源:億速云 閱讀:182 作者:iii 欄目:開發技術

這篇文章主要介紹了Blender Python編程如何創建發光材質的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Blender Python編程如何創建發光材質文章都會有所收獲,下面我們一起來看看吧。

正文

在 Blender 中,著色器通常是通過基于節點的圖形編輯器(可以在 “Shading” 選項卡中找到)來編輯的,它可以讓你根據想要構建或多或少復雜的著色流程來鏈接和組合盡可能多的內置節點。然而,在本文中,我們將制作一個超級簡單的著色器,只有一個節點,所以我們將在 Python 腳本 ???? 中做所有的事情。

創建完材質之后會使用那些著色器,并應用到你的 3D 幾何物體上。一個物體可能有幾個 材質槽,例如,它可以為幾何的不同部分使用不同的著色器,但我們今天不會討論這種復雜的情況,我們將只考慮 每個物體一個材質槽 的情形。

發光材質 為例。你可以把它想象成一個有強度(strength 參數)和顏色的大燈泡。它將使你的 3D 對象發光(所以你的對象將成為你場景中的光源,將與其余的網格交互!) ????

PS: 選擇 Shader 類型對于這個項目,我使用的 EEVEE 引擎,其也可以與著色器節點工作,即使它與 Cycles 引擎并不是所有節點類型都相同。

在 Python 腳本中創建一個著色器

為了完全通過腳本創建和分配一個著色器,我們必須:

  • 使用 bpy.data 子模塊創建一個新的著色器資源

  • “編輯” 這個著色器,就像我們使用著色器節點編輯器一樣: 我們將刪除一些節點,添加其他節點,設置它們的屬性并將它們鏈接在一起

  • 對新創建材質的引用進行檢索

  • 最后,將其添加到我們對象的材質數據(即槽)中

讓我們一步一步來做這件事。我們將從創建一個名為 create_emission_shader() 的新函數開始

它將接收一些 強度Strength) 和 顏色Color) 參數,并使用這些參數來設置一個基本的 2 節點圖,其中有一個發光Emission)節點和一個輸出Output)節點。

我們的想法

  • 從基本節點模板開始,清除所有初始節點

  • 然后,可以添加我們的 發光 節點和 輸出 節點,通過更新其輸入字段的值來配置 發光 節點

  • 并在兩個節點之間創建一個鏈接

具體代碼與注釋

創建發光材質

def create_emission_shader(color, strength, mat_name):
    # create a new material resource (with its
    # associated shader)
    mat = bpy.data.materials.new(mat_name)
    # enable the node-graph edition mode
    mat.use_nodes = True
    # clear all starter nodes
    nodes = mat.node_tree.nodes
    nodes.clear()
    # add the Emission node
    node_emission = nodes.new(type="ShaderNodeEmission")
    # (input[0] is the color)
    node_emission.inputs[0].default_value = color
    # (input[1] is the strength)
    node_emission.inputs[1].default_value = strength
    # add the Output node
    node_output = nodes.new(type="ShaderNodeOutputMaterial")
    # link the two nodes
    links = mat.node_tree.links
    link = links.new(node_emission.outputs[0], node_output.inputs[0])
    # return the material reference
    return mat

現在很容易使用這個方法來創建我們的材質資源,并將它們應用到我們的對象上。

例如,我們將需要一個白色的發光材質為光環,一個黃色的發光材質為太陽,為每個行星創建一個隨機顏色的發光材質(盡管我將添加更多的藍色,以更好的整體顏色平衡 ????):

具體調用代碼

# ...
N_PLANETS = 6
ring_mat = create_emission_shader(
    (1, 1, 1, 1), 1, "RingMat"
)
for n in range(N_PLANETS):
    # ...
    planet = create_sphere(r, d, "Planet-{:02d}".format(n))
    planet.data.materials.append(
        create_emission_shader(
            (random(), random(), 1, 1),
            2,
            "PlanetMat-{:02d}".format(n)
        )
    )
    # add the radius ring display
    ring = create_torus(d, "Radius-{:02d}".format(n))
    ring.data.materials.append(ring_mat)
# add the sun sphere
sun = create_sphere(12, 0, "Sun")
sun.data.materials.append(
    create_emission_shader(
        (1, 0.66, 0.08, 1), 10, "SunMat"
    )
)

如果你在 3D 視圖中將陰影模式改為 “rendering”,并刪除當前場景中的所有對象,然后運行以上腳本,你會看到它們現在有了漂亮的發光材質!

  • 應用材質前

Blender?Python編程如何創建發光材質

  • 應用材質后

Blender?Python編程如何創建發光材質

注意,在運行腳本后,你甚至可以進入 “Shading” 選項卡,選擇一個帶有著色器的對象并查看其著色器圖。

它看起來像預期的那樣: 兩個節點,一個 Emission 和一個 Output,兩者之間的鏈接,以及一些StrengthColor 屬性的自定義值。

關于“Blender Python編程如何創建發光材質”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Blender Python編程如何創建發光材質”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

达孜县| 宜兰市| 邯郸市| 平阴县| 隆昌县| 随州市| 富裕县| 康保县| 若羌县| 蒙阴县| 屯留县| 大渡口区| 湖南省| 崇明县| 砚山县| 大同县| 潞西市| 华宁县| 海安县| 临朐县| 沭阳县| 蚌埠市| 高陵县| 邛崃市| 安陆市| 贵州省| 古丈县| 南雄市| 璧山县| 东山县| 麦盖提县| 文化| 泽普县| 河间市| 仪陇县| 奉化市| 基隆市| 林州市| 汪清县| 蓝山县| 大港区|