最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Blender?Python編程實(shí)現(xiàn)批量導(dǎo)入網(wǎng)格并保存渲染圖像

 更新時(shí)間:2022年08月07日 16:09:09   作者:ShaderJoy  
這篇文章主要為大家介紹了Blender?Python?編程實(shí)現(xiàn)批量導(dǎo)入網(wǎng)格并保存渲染圖像示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

繼上一篇 《Blender Python 編程:快速入門(mén)》 我們已經(jīng)了解了 Blender Python 腳本的基本概念。接下來(lái)讓我們了解如何用 Python 編程實(shí)現(xiàn)一些 有意思的功能(減輕部分工作量)。

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

事實(shí)上,你可以使用 Python 腳本和一些額外的包來(lái)批處理你的對(duì)象實(shí)例化,程序化地生成東西,配置你的渲染設(shè)置,甚至獲得你當(dāng)前項(xiàng)目的自定義統(tǒng)計(jì)數(shù)據(jù),這是非常棒的功能! 這是一種減輕繁瑣任務(wù)負(fù)擔(dān)的方式,同時(shí)也能讓開(kāi)發(fā)者參與到這個(gè)創(chuàng)造性工具社區(qū)中,而不僅僅是美術(shù)人員。

打開(kāi) Blender 中的文本編輯器,讓我們開(kāi)始編碼。這個(gè)過(guò)程的主要步驟包括

  • 導(dǎo)入所有必需的庫(kù)
  • 刪除默認(rèn)的立方體對(duì)象和相機(jī)
  • 編寫(xiě)幾個(gè) for 循環(huán)來(lái)導(dǎo)入多個(gè) “猴頭” 網(wǎng)格
  • 創(chuàng)建相機(jī)
  • 最后保存渲染的圖像

導(dǎo)入庫(kù)

為了實(shí)現(xiàn)我們的項(xiàng)目,我們將進(jìn)口三種主要必需品。首先,我們將導(dǎo)入 bpy 庫(kù),它將允許用戶在 Blender 文本編輯器中訪問(wèn) Python 環(huán)境。我們將從這個(gè)庫(kù)中導(dǎo)入一些功能,以方便訪問(wèn)。最后,我們還將導(dǎo)入用于執(zhí)行不同類型計(jì)算的 math 庫(kù)。在這個(gè)特殊的場(chǎng)景中,數(shù)學(xué)庫(kù)主要用于計(jì)算用于測(cè)量旋轉(zhuǎn)角度的歐拉角。需要導(dǎo)入的庫(kù)如下:

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

移除默認(rèn)對(duì)象和相機(jī)

我們的下一個(gè)目標(biāo)是從 Blender 環(huán)境中刪除所有不必要的元素??梢酝ㄟ^(guò)兩種方式執(zhí)行此操作。一種方法是使用 delete 函數(shù)并將 use_global 參數(shù)設(shè)置為 False 。另一種方法是創(chuàng)建一個(gè) for 循環(huán),并在默認(rèn)屏幕中檢查所有對(duì)象,選擇正在尋找的特定類型的對(duì)象,并刪除適當(dāng)(認(rèn)為不必要的特定項(xiàng)目)的元素。下面是執(zhí)行以下操作的代碼塊。

#  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)

添加多個(gè) “猴頭” 網(wǎng)格

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

# 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

創(chuàng)建相機(jī)

一旦我們完成了創(chuàng)建多個(gè) “猴頭” 網(wǎng)格,我們可以添加一個(gè)相機(jī)來(lái)查看我們的對(duì)象和它們的整體視圖。我們將設(shè)置場(chǎng)景和創(chuàng)建我們的相機(jī),并將相機(jī)鏡頭設(shè)置為 30 mm。默認(rèn)的相機(jī)尺寸通常是 50 mm 。但是,我們將使用這個(gè)特定的大?。?0 mm),以便在 指定的范圍內(nèi)所有對(duì)象都清晰可見(jiàn) 。然后,我們將創(chuàng)建相機(jī)對(duì)象,并設(shè)置相機(jī)的位置和旋轉(zhuǎn)角度。

位置(location) 將決定相機(jī)的位置,在那里我們將有最好的視角,所有對(duì)象呈現(xiàn)在屏幕的可見(jiàn)區(qū)域。旋轉(zhuǎn)角度(rotation_euler) 由角度轉(zhuǎn)換為弧度,這是在前面的編碼部分中引入的數(shù)學(xué)庫(kù)的幫助下完成的。

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

### 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"]

保存渲染的圖像

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

為了執(zhí)行這個(gè)步驟,我們將設(shè)置路徑,并將三維模型場(chǎng)景從相機(jī)的角度渲染成二維圖像,保存在指定路徑的目錄中。一旦我們的圖像被渲染和保存,我們可以恢復(fù)之前的路徑來(lái)執(zhí)行進(jìn)一步的計(jì)算和操作。

# 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編程實(shí)現(xiàn)批量導(dǎo)入網(wǎng)格并保存渲染圖像的詳細(xì)內(nèi)容,更多關(guān)于Blender Python導(dǎo)入渲染圖像的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python3爬蟲(chóng)學(xué)習(xí)之將爬取的信息保存到本地的方法詳解

    Python3爬蟲(chóng)學(xué)習(xí)之將爬取的信息保存到本地的方法詳解

    這篇文章主要介紹了Python3爬蟲(chóng)學(xué)習(xí)之將爬取的信息保存到本地的方法,結(jié)合實(shí)例形式詳細(xì)分析了Python3信息爬取、文件讀寫(xiě)、圖片存儲(chǔ)等相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • Python+Matplotlib繪制重疊柱狀圖

    Python+Matplotlib繪制重疊柱狀圖

    重疊柱狀圖?(Overlapped?Bar)?是一種比較圖,可以將兩個(gè)柱狀圖疊加在一起,顯示兩個(gè)相關(guān)變量之間的差異,所以本文就來(lái)用Matplotlib繪制一個(gè)簡(jiǎn)單的重疊柱狀圖吧
    2023-06-06
  • 基于Python中request請(qǐng)求得到的response的屬性問(wèn)題

    基于Python中request請(qǐng)求得到的response的屬性問(wèn)題

    這篇文章主要介紹了基于Python中request請(qǐng)求得到的response的屬性問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python實(shí)現(xiàn)黃金分割法的示例代碼

    python實(shí)現(xiàn)黃金分割法的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)黃金分割法的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python遞歸實(shí)現(xiàn)猴子吃桃問(wèn)題及解析

    Python遞歸實(shí)現(xiàn)猴子吃桃問(wèn)題及解析

    這篇文章主要介紹了Python遞歸實(shí)現(xiàn)猴子吃桃問(wèn)題及解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python面向?qū)ο骳lass類屬性及子類用法分析

    Python面向?qū)ο骳lass類屬性及子類用法分析

    這篇文章主要介紹了Python面向?qū)ο骳lass類屬性及子類用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python面向?qū)ο缶幊讨衏lass類屬性的訪問(wèn)、修改、刪除操作及子類的相關(guān)使用技巧,需要的朋友可以參考下
    2018-02-02
  • Python使用ffmpy將amr格式的音頻轉(zhuǎn)化為mp3格式的例子

    Python使用ffmpy將amr格式的音頻轉(zhuǎn)化為mp3格式的例子

    今天小編就為大家分享一篇Python使用ffmpy將amr格式的音頻轉(zhuǎn)化為mp3格式的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • jupyter notebook引用from pyecharts.charts import Bar運(yùn)行報(bào)錯(cuò)

    jupyter notebook引用from pyecharts.charts import Bar運(yùn)行報(bào)錯(cuò)

    這篇文章主要介紹了jupyter notebook引用from pyecharts.charts import Bar運(yùn)行報(bào)錯(cuò),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python多進(jìn)程同步簡(jiǎn)單實(shí)現(xiàn)代碼

    Python多進(jìn)程同步簡(jiǎn)單實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python多進(jìn)程同步簡(jiǎn)單實(shí)現(xiàn)代碼,涉及Python基于Process與Lock模塊運(yùn)行進(jìn)程與鎖機(jī)制實(shí)現(xiàn)多進(jìn)程同步的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • python 使用fileinput讀取文件

    python 使用fileinput讀取文件

    這篇文章主要介紹了python 使用fileinput讀取文件,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03

最新評(píng)論

德令哈市| 台州市| 枝江市| 盐山县| 黄龙县| 建水县| 葫芦岛市| 固阳县| 太白县| 中方县| 伊宁县| 颍上县| 鄄城县| 青川县| 精河县| 张家口市| 商丘市| 汶川县| 儋州市| 开远市| 永靖县| 钟山县| 晋中市| 准格尔旗| 潜山县| 辉南县| 清徐县| 筠连县| 龙山县| 鹰潭市| 合肥市| 建瓯市| 木兰县| 石河子市| 泸定县| 揭西县| 万荣县| 江门市| 江都市| 广南县| 崇义县|