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

溫馨提示×

溫馨提示×

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

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

Blender?Python編程如何實現批量導入網格并保存渲染圖像

發布時間:2022-08-08 11:01:41 來源:億速云 閱讀:186 作者:iii 欄目:開發技術

今天小編給大家分享一下Blender Python編程如何實現批量導入網格并保存渲染圖像的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

引言

Blender 并不是唯一一款允許你為場景編程和自動化任務的3D軟件; 隨著每一個新版本的推出,Blender 正逐漸成為一個可靠的 CG 制作一體化解決方案,從使用油脂鉛筆的故事板到基于節點的合成。

事實上,你可以使用 Python 腳本和一些額外的包來批處理你的對象實例化,程序化地生成東西,配置你的渲染設置,甚至獲得你當前項目的自定義統計數據,這是非常棒的功能! 這是一種減輕繁瑣任務負擔的方式,同時也能讓開發者參與到這個創造性工具社區中,而不僅僅是美術人員。

Blender?Python編程如何實現批量導入網格并保存渲染圖像

打開 Blender 中的文本編輯器,讓我們開始編碼。這個過程的主要步驟包括

  • 導入所有必需的庫

  • 刪除默認的立方體對象和相機

  • 編寫幾個 for 循環來導入多個 “猴頭” 網格

  • 創建相機

  • 最后保存渲染的圖像

Blender?Python編程如何實現批量導入網格并保存渲染圖像

導入庫

為了實現我們的項目,我們將進口三種主要必需品。首先,我們將導入 bpy 庫,它將允許用戶在 Blender 文本編輯器中訪問 Python 環境。我們將從這個庫中導入一些功能,以方便訪問。最后,我們還將導入用于執行不同類型計算的 math 庫。在這個特殊的場景中,數學庫主要用于計算用于測量旋轉角度的歐拉角。需要導入的庫如下:

import bpy
from bpy import context, data, ops
import math

移除默認對象和相機

我們的下一個目標是從 Blender 環境中刪除所有不必要的元素。可以通過兩種方式執行此操作。一種方法是使用 delete 函數并將 use_global 參數設置為 False 。另一種方法是創建一個 for 循環,并在默認屏幕中檢查所有對象,選擇正在尋找的特定類型的對象,并刪除適當(認為不必要的特定項目)的元素。下面是執行以下操作的代碼塊。

#  Remove The Default Cude Object
# bpy.ops.object.delete(use_global=False)
bpy.ops.object.delete(use_global=False, confirm=False)
for o in bpy.context.scene.objects:
    if o.name == "Cube":
        bpy.ops.object.delete(use_global=False)

添加多個 “猴頭” 網格

在下一步,我們將在各自的位置添加相應的多個 “猴頭” 網格。為了執行這個步驟,我們將把三個變量初始值設為零。這三個變量分別表示 x 軸y 軸z 軸。我們將相應地修改這些變量,以獲得 “猴頭” 網格的最佳位置。count 變量用于根據需要改變這些軸的位置。

# Create multiple monkey meshes
x = 0
y = 0 
z = 0
count1 = 0
count2 = -5
for i in range(3):
    # Import the monkey mesh
    bpy.ops.mesh.primitive_monkey_add(location = (x + count1, y + count1, z))
    count1 += 5
for i in range(2):
    # Import the monkey mesh
    bpy.ops.mesh.primitive_monkey_add(location = (x + count2, y - count2, z))
    count2 += -5

Blender?Python編程如何實現批量導入網格并保存渲染圖像

創建相機

一旦我們完成了創建多個 “猴頭” 網格,我們可以添加一個相機來查看我們的對象和它們的整體視圖。我們將設置場景和創建我們的相機,并將相機鏡頭設置為 30 mm。默認的相機尺寸通常是 50 mm 。但是,我們將使用這個特定的大小(30 mm),以便在 指定的范圍內所有對象都清晰可見 。然后,我們將創建相機對象,并設置相機的位置和旋轉角度。

位置(location) 將決定相機的位置,在那里我們將有最好的視角,所有對象呈現在屏幕的可見區域。旋轉角度(rotation_euler) 由角度轉換為弧度,這是在前面的編碼部分中引入的數學庫的幫助下完成的。

我們將指定沿所有三軸旋轉的角度(弧度),以便 位置 和 旋轉角度 都被正確放置。我們將場景的 collection 鏈接到當前的相機,并確保當前選擇的相機被設置為活動

### Creating A New Camera Angle
scn = bpy.context.scene
# create the second camera
cam = bpy.data.cameras.new("Camera")
cam.lens = 30
# create the second camera object
cam_obj = bpy.data.objects.new("Camera", cam)
# Locations
cam_obj.location.x = 16
cam_obj.location.y = -6
cam_obj.location.z = 8
# Rotations
cam_obj.rotation_euler[0] = math.radians(64)
cam_obj.rotation_euler[1] = math.radians(0)
cam_obj.rotation_euler[2] = math.radians(47)
scn.collection.objects.link(cam_obj)
# Set the Camera to active camera
bpy.context.scene.camera = bpy.data.objects["Camera"]

保存渲染的圖像

創建多個猴子網格和放置我們的相機在所需位置后的 最后一步 是保存圖像。在我們保存圖像之前,我們將渲染我們的圖像,并將其存儲為 “.png” 格式。渲染基本上是將 Blender 空間中的 3D 場景轉換為 2D 視圖,以便更容易以打印形式可視化。

為了執行這個步驟,我們將設置路徑,并將三維模型場景從相機的角度渲染成二維圖像,保存在指定路徑的目錄中。一旦我們的圖像被渲染和保存,我們可以恢復之前的路徑來執行進一步的計算和操作。

# Setting the path for the first image captured in the first camera
FILE_NAME = "1.png"
FILE_PATH = "D:\\Cool Projects\\Paperspace\\3-D Models\\1.png"
# Save Previous Path
previous_path = bpy.context.scene.render.filepath
# Render Image
bpy.context.scene.render.filepath = FILE_PATH
bpy.ops.render.render(write_still=True)
# Restore Previous Path
bpy.context.scene.render.filepath = previous_path

以上就是“Blender Python編程如何實現批量導入網格并保存渲染圖像”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

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

AI

台东市| 大同市| 甘孜县| 公主岭市| 哈巴河县| 淄博市| 曲阳县| 武穴市| 阿荣旗| 雷波县| 金阳县| 安西县| 汕尾市| 象山县| 石屏县| 宿州市| 弥勒县| 溧水县| 泗阳县| 贺州市| 尤溪县| 南乐县| 疏勒县| 高淳县| 祁阳县| 左云县| 阆中市| 兰坪| 江山市| 宝丰县| 龙里县| 凤翔县| 治多县| 离岛区| 甘德县| 绵竹市| 台山市| 通山县| 舒城县| 杂多县| 嵩明县|