cc后缀网站,办公室设计方案,如何解决旅游网站建设问题,自己可以做网站服务器渲染视频是个非常耗时的大工程#xff0c;如果要渲染多个视频或者每个视频还需要切换不同的贴图、颜色等#xff0c;工作量就更离谱了#xff0c;所以不得不用脚本实现自动化。
Blender的脚本是用Python编写#xff0c;比PS的js要方便很多。再下载一套Blender对应版本的AP… 渲染视频是个非常耗时的大工程如果要渲染多个视频或者每个视频还需要切换不同的贴图、颜色等工作量就更离谱了所以不得不用脚本实现自动化。
Blender的脚本是用Python编写比PS的js要方便很多。再下载一套Blender对应版本的API就可以拥有代码提示功能。
Blender API下载选择Blender对应版本即可
Releases · nutti/fake-bpy-module · GitHub 例如我下载的是Blender 3.4的版本下载后解压文件夹fake_bpy_modules_3.4-20230117在该文件夹中创建Python脚本并用VS Code打开fake_bpy_modules_3.4-20230117整个文件夹VS Code需安装Python插件以支持代码提示。
首先在Blender中新建一个模型Blender界面如图 以通过脚本动态修改一个模型的贴图为例可通过脚本Blender API bpy.context.scene访问Scene面板的所有结点例如我们要修改猴头模型的贴图首先就需要获取到“猴头”节点然后获取到名为材质的材质球然后获取到材质球里的贴图节点重新指定贴图文件路径
1. 获取场景中名为猴头的节点tNode:bpy.types.Object bpy.context.scene.objects[猴头]
2. 获取该节点的材质球mat:bpy.types.MaterialSlot tNode.material_slots[材质]
3. 获取材质球中名为图像纹理的节点texNode:bpy.types.ShaderNodeTexImage mat.material.node_tree.nodes[图像纹理]
4. 修改贴图文件texNode.image.filepath newTexture.png
5. 修改完贴图调用texNode.image.update()以刷新渲染 把同一模型不同贴图每张贴图为模型渲一张图
1. 首先把需要动态切换的多张贴图放到指定文件夹下以便用程序获取该文件夹下的所有贴图
2. 遍历所有贴图把当前贴图按照上述流程设置到模型材质球上然后渲染出图片。这样就能得到不同贴图的渲染图
3. 执行bpy.ops.render.render()开始渲染图片
渲染视频的方式同理在Blender如下面板可选择File Format属性以设置渲染视频还是图片。 可以在代码中判断当前Blender中选择的File Format如果为视频则开启动画渲染否则按图片渲染。
代码如下
import bpy
import os
import glob
import os.pathtexFolder C:/Users/Administrator/Desktop/Models/iconsoutputPrefixName Image_
outputVideoPrefixName Video_
tNode:bpy.types.Object bpy.context.scene.objects[猴头]
if not tNode:print(找到目标节点)
else:mat:bpy.types.MaterialSlot tNode.material_slots[材质]texNode:bpy.types.ShaderNodeTexImage mat.material.node_tree.nodes[图像纹理]# colTex mat.material.node_tree.nodes[Color]try : texNode.image.unpack()except Exception as e:print()# 根据给定贴图目录批量渲染texFiles:list[str] glob.glob(os.path.join(texFolder, *.png))for texPath in texFiles:fileName os.path.basename(texPath)texNode.image.filepath texPathtexNode.image.update()fileNameNoExt os.path.splitext(fileName)[0]if bpy.context.scene.render.image_settings.file_format.startswith(AVI) or bpy.context.scene.render.image_settings.file_format FFMPEG:# 渲染avi视频bpy.context.scene.render.filepath //OutputVideos/outputVideoPrefixName fileNameNoExtbpy.context.scene.render.use_overwrite Falsebpy.context.view_layer.update()bpy.ops.render.render(animationTrue)else:# 渲染图片bpy.context.scene.render.filepath //OutputImages/outputPrefixName fileNameNoExt# bpy.context.scene.render.image_settings.file_format PNGbpy.context.scene.render.use_overwrite Falsebpy.context.view_layer.update()bpy.ops.render.render(write_stillTrue)
运行脚本
1. Blender中切换到脚本栏
2. 选择打开已经写好的脚本文件
3. 点击运行按钮执行脚本 执行完毕后就会在模型所在目录输出渲染图片/视频