国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Blender下用Python實現(xiàn)模型文件導入、渲染和動畫生成

villainhr / 3516人閱讀

摘要:為了讓數(shù)值計算的結(jié)果能夠有更好的渲染效果,這段時間一直在用這個開源軟件來處理計算結(jié)果。

為了讓數(shù)值計算的結(jié)果能夠有更好的渲染效果,這段時間一直在用Blender這個開源軟件來處理計算結(jié)果。

因為是處理大量數(shù)據(jù)的計算結(jié)果,所以不得不考慮用Python編寫腳本來實現(xiàn)批量處理,編寫過程中,Google幫我解決了大部分實現(xiàn)過程中的障礙,下面是完整的實現(xiàn)過程:

將計算結(jié)果的mesh文件導入到Blender中;

import bpy 
import os 

# folder path to save rendered image
in_dir = "E:SPHPaper 01D18"
lst = os.listdir(in_dir)

# folder path for importing data files
in_dir_ply = "E:SPHPaper 01D18Ply_batch"
lst_ply = os.listdir(in_dir_ply)

# folder path to save rendered animation
out_dir = "E:SPHPaper 01D18	est.avi"

# Filter file list by valid file types.
candidates = []
candidates_name = []
c = 0
for item in lst_ply:
    fileName, fileExtension = os.path.splitext(lst_ply[c])
    if fileExtension == ".ply":
        candidates.append(item)
        candidates_name.append(fileName)
    c = c + 1

file = [{"name":i} for i in candidates]   
n = len(file)
print(n) 

# To import mesh.ply in batches
for i in range (0,n):
    bpy.ops.import_mesh.ply(filepath=candidates[n], files=[file[n]], directory=in_dir_ply, filter_glob="*.ply")
    bpy.data.objects[candidates_name[i]].hide = True
    bpy.data.objects[candidates_name[i]].hide_render = True

在Blender中進行批量渲染并保存成圖片文件;(這里用到了提前制作好的材質(zhì)文件“Material.001”)

# Set file_format for render images
bpy.data.scenes["Scene"].render.image_settings.file_format = "PNG"

# To render and save rendered images
for i in range (0,n):
    bpy.data.objects[candidates_name[i]].hide = False    #objects must be visible to use modifier
    bpy.data.objects[candidates_name[i]].hide_render = False    #objects must be renderable to export render image
    bpy.context.scene.objects.active = bpy.data.objects[candidates_name[i]] #get object
    bpy.ops.object.modifier_add(type="PARTICLE_SYSTEM")    #add modifier as particle_system
    bpy.data.objects[candidates_name[i]].particle_systems["ParticleSystem"].settings = bpy.data.particles["ParticleSettings"] #assign particle settings to object"s particle system
    bpy.data.objects[candidates_name[i]].data.materials.append(bpy.data.materials["Material.001"])    #assign existed material to active object.
    bpy.data.scenes["Scene"].render.filepath = "http://%02d"%(i)    #set save filepath
    bpy.ops.render.render( write_still=True )    #render and save
    bpy.data.objects[candidates_name[i]].hide = True    #hide again for next image rendering
    bpy.data.objects[candidates_name[i]].hide_render = True    #hide again for next image rendering

在Blender的Video Sequence Editor (VSE)中插入上一步生成的渲染后的圖片文件;

# Active VSE to generate rendering animation
bpy.data.scenes["Scene"].render.use_sequencer = True

# Filter file list by valid file types.
re_image = []
re_image_name = []
c = 0
for item in lst:
    fileName, fileExtension = os.path.splitext(lst[c])
    if fileExtension == ".png":
        re_image.append(item)
        re_image_name.append(fileName)
    c = c + 1

# Create the sequencer data
bpy.context.scene.sequence_editor_create()

# Add strip into VSE by importing new image
for i in range (0,n):
    bpy.context.scene.sequence_editor.sequences.new_image(
        name=re_image[i],
        filepath=os.path.join(in_dir, re_image[i]),
        channel=1, frame_start=i)

在Blender中生成并保存動畫文件。

# Resolution settings for animation
resx = 720; #1920 
resy = 480; #1080 
bpy.data.scenes["Scene"].render.resolution_x = resx 
bpy.data.scenes["Scene"].render.resolution_y = resy 
bpy.data.scenes["Scene"].render.resolution_percentage = 100 

bpy.data.scenes["Scene"].frame_end = n 
bpy.data.scenes["Scene"].render.image_settings.file_format = "AVI_JPEG" 
bpy.data.scenes["Scene"].render.filepath = out_dir
bpy.ops.render.render( animation=True )

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/37944.html

相關(guān)文章

  • 【Three.js】Three.js學習記錄

    摘要:上帝覺得缺少了些生氣,便用泥巴捏了一個小人兒,不叫亞當,她叫小芳。接下來預先恭喜你,你可以成為這網(wǎng)頁世界的一個小上帝。使用可以向場景中發(fā)射光線。在下述案例中,從攝像機的位置向場景中鼠標的點擊位置發(fā)射光線。 先得擺出幾個關(guān)鍵詞:場景、燈光、模型、材質(zhì)、貼圖與紋理、相機、渲染器。然后我開始裝模作樣地解釋: 上帝說,要有場景!于是就有了場景,場景去納這萬事萬物。 上帝說,要有光!于是就有了光...

    chanthuang 評論0 收藏0
  • 【Three.js】Three.js學習記錄

    摘要:上帝覺得缺少了些生氣,便用泥巴捏了一個小人兒,不叫亞當,她叫小芳。接下來預先恭喜你,你可以成為這網(wǎng)頁世界的一個小上帝。使用可以向場景中發(fā)射光線。在下述案例中,從攝像機的位置向場景中鼠標的點擊位置發(fā)射光線。 先得擺出幾個關(guān)鍵詞:場景、燈光、模型、材質(zhì)、貼圖與紋理、相機、渲染器。然后我開始裝模作樣地解釋: 上帝說,要有場景!于是就有了場景,場景去納這萬事萬物。 上帝說,要有光!于是就有了光...

    李濤 評論0 收藏0
  • Blender Python API概述

    摘要:在交互式控制臺中運行此操作時,您將看到視口更新。鍵入或粘貼到交互式控制臺中。用戶首選項加載項列表使用顯示有關(guān)每個加載項的信息。最后兩行僅用于測試這允許腳本直接在文本編輯器中運行以測試更改。 Blender Python API概述 本文檔的目的是解釋Python和Blender如何組合在一起,涵蓋了一些在閱讀API參考和示例腳本時可能不明顯的功能。 Python in Blender ...

    魏憲會 評論0 收藏0
  • Blender參考API用法

    摘要:在控制臺中輸入路徑。因此,下一步是通過參考文件檢查訪問畫筆的位置。上下文畫筆紋理對比度由于每個屬性都是按照我們在控制臺中組成數(shù)據(jù)路徑的方式給出的可以有多種方式來訪問相同的數(shù)據(jù),您選擇的方法通常取決于任務。 Blender參考API用法 Blender有許多互連數(shù)據(jù)類型,它們具有自動生成的引用api,它通常具有編寫腳本所需的信息,但可能難以使用。 本文檔旨在幫助您了解如何使用參考API。...

    MonoLog 評論0 收藏0
  • 產(chǎn)品三維模型在線預覽

    摘要:次時代傳統(tǒng)的方式就是創(chuàng)建次時代模型,對應中的材質(zhì)是高光網(wǎng)格材質(zhì)對象,通常貼圖文件包含顏色貼圖法線貼圖和高光貼圖。 產(chǎn)品在線展示案例預覽 玉鐲在線預覽:http://www.yanhuangxueyuan.co... 汽車在線預覽:http://www.yanhuangxueyuan.co... Web3D技術(shù)歷史 可通過插件或WebGL技術(shù)實現(xiàn)Web3D,在線網(wǎng)頁上預覽操作三維...

    DirtyMind 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<