blender bpy入门笔记

2023-11-07

目录

bpycv:

加载,渲染demo

可以导出图片,但是图片为空:

导出obj模型:

随机旋转

录制常见脚本:

渲染属性:胶片->透明

其他命令:


bpycv:

https://github.com/DIYer22/bpycv

加载,渲染demo

import bpy
import os

# 设置场景
scene = bpy.context.scene
scene.render.engine = 'CYCLES'
scene.world.color = (1, 1, 1)

for obj in bpy.context.scene.objects:
    if obj.name in ['Light','Camera']:
        continue
    print('del',obj.name)
    bpy.context.view_layer.objects.active = obj
    bpy.ops.object.delete()
# 加载模型
bpy.ops.import_scene.obj(filepath=r"F:\bjl_1.obj")

# 检查是否有网格对象
if bpy.context.selected_objects:
    # 选择第一个网格对象
    obj_object = bpy.context.selected_objects[0]
    # 检查网格对象是否为 Mesh 类型
    if obj_object.type == 'MESH':
        print("obj 模型已正确加载")
    else:
        print("obj 模型不是 Mesh 类型")
else:
    print("没有找到 obj 模型")
# obj_object = bpy.context.objects[1]
obj_object = bpy.context.selected_objects[0]
bpy.context.view_layer.objects.active = obj_object

obj_object.scale = (10, 10, 10)

if obj_object.data.materials:
    # 如果 obj 模型有材质,则检查其纹理设置
    for material in obj_object.data.materials:
        if material.texture_paint_slots:
            for texture_slot in material.texture_paint_slots:
                # 编辑纹理的设置
                texture = texture_slot.texture
                # 检查纹理的类型并根据需要编辑设置
                if texture.type == 'IMAGE':
                    # 编辑图像纹理的路径
                    print('-----------------vvvvvvvv------------------')
                    texture.image.filepath = r"F:\3d\bjl1.jpg"
else:
    # 如果 obj 模型没有材质,则创建一个新材质
    material = bpy.data.materials.new("Material")
    obj_object.data.materials.append(material)

# bpy.ops.object.mode_set(mode="EDIT")
# bpy.ops.mesh.subdivide(number_cuts=2)
# bpy.ops.export_scene.obj(filepath="zetaxh.obj")

# 渲染场景
bpy.context.scene.render.filepath=r'F:\3d\Python-3D-Rasterizer-main\pyrender-main\src/aaa.png'
bpy.ops.render.render(write_still=True)

可以导出图片,但是图片为空:

import bpy
import math
import time

# 根据摄像机的名称,获取实例
camera = bpy.data.objects['Camera']

# 摄像机与物体的距离
distance = 1.375

# 总的张数
loc_total_num = 16

# 每张之间的角度间隔
div_angle = 4.5

# 设置渲染为图片
bpy.data.scenes["Scene"].render.image_settings.file_format = 'PNG'

# 循环渲染16张
for i in range(loc_total_num):
    # 角度从 -4.5° * 8 到 4.5° *7,并转换为弧度值
    angle = (i - loc_total_num / 2) * div_angle / 360 * 2 * math.pi

    # 根据三角函数计算摄像机的x,y坐标,z坐标不变
    x = distance * math.sin(angle)
    y = distance * math.cos(angle)

    # 将计算到的坐标赋值给到摄像机
    camera.location[0] = x
    camera.location[1] = -y

    # 将旋转角度赋值给到摄像机,保证摄像头正对着目标
    camera.rotation_euler[2] = angle

    # 设置保存图片的文件名
    bpy.data.scenes["Scene"].render.filepath = r'F:\3d\Python-3D-Rasterizer-main\pyrender-main\src\%02d' % (i)

    # 渲染并保存为文件
    bpy.ops.render.render(write_still=True)

导出obj模型:

可以导出,结果不对

bpy.ops.object.mode_set(mode="EDIT")
bpy.ops.mesh.subdivide(number_cuts=2)
bpy.ops.export_scene.obj(filepath="zetaxh.obj")

随机旋转

import bpy
import random

bpy.context.object.rotation_euler = (random.uniform(0, 360), random.uniform(0, 360), random.uniform(0, 360))

录制常见脚本:

渲染属性:胶片->透明

bpy.context.scene.render.film_transparent = True

其他命令:

使用节点:
bpy.context.scene.use_nodes = True


添加节点:
bpy.ops.node.add_node(type="CompositorNodeImage", use_transform=True)


添加mp4 或图片
bpy.ops.node.add_file(filepath="F:\\test_222.mp4")


bpy.data.scenes["Scene"].node_tree.nodes["图像.001"].frame_duration = 10000


bpy.data.scenes["Scene"].node_tree.nodes["图像.001"].use_cyclic = True


bpy.data.scenes["Scene"].node_tree.nodes["缩放"].space = 'RENDER_SIZE'

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

blender bpy入门笔记 的相关文章

  • Blender 2.8安装插件及如何找到打开插件

    安装插件 编辑 设置 插件 搜索 下载 安装 找到插件 安装的插件可在其下拉列表中看到所在位置 实在找不到 直接搜索
  • Blender2.9基础七:外部插件篇

    一 插件安装 1 安装插件 2 插件显示位置 二 材质贴图相关插件 1 GrabDoc 贴图烘培插件 GrabDoc可以运行一键式场景设置 然后开始建模 对形状进行建模后 甚至在建模阶段 你可以实时预览材质在视口中的外观 主要特点 实时材质
  • Blender基本使用(个人笔记)

    界面移动 按住鼠标滚轮以一点为中心进行视图旋转 同时按住shift和鼠标滚轮可平移视图 滚动鼠标滚轮进行视图的缩放 按下小键盘1 3 7进入前视图 右视图 俯视图 以及CTRL 1 CTRL 3 CTRL 7查看后视图 左视图 底视图 AL
  • 7 个隐藏的 Blender 技巧将改善您的工作流程

    谁不喜欢秘密技巧 因为 Blender 是一个全面的 多功能的工具 所以有很多隐藏的复活节彩蛋 隐藏在可见表面之下的时尚工具和功能 对于今天的文章中 让我们来找出了最好的秘诀Blender技巧以提高您的工作流程与效率 1 轻松选择集合中的所
  • blender 2.8的基本使用和使用形态键(Shape key)做帧动画

    文章目录 打开blender 盒子形状 用形态键做帧动画 一些常用快捷键 打开blender 首先打开blender 2 8 出来的画面是这样的 点击画面的任意位置 除中间弹出框 就可以关闭弹出框 之后点击上方的Help gt Splash
  • Blender基础操作:面操作细分、整体切分、挤出、内插、尖分、融并、切割、面的法向、填充等

    目录 1 面操作 进入 面选择 模式 选择一个面 2 面的挤出 3 内插面 4 尖分面 5 面的切割 6 面的法向normal 7 填充面 8 X Ray透视 1 面操作 进入 面选择 模式 选择一个面 4种操作手段 菜单 工具 右键菜单
  • 三维重建入门学习————建模软件Blender入门篇

    背景介绍 关于近期在进行三维重建相关算法学习的时候 学得越深 发现对各个方面的知识要求得越多 之前是补了相机的拍照原理 成像原理知识 再后来还补了主流的点提取 匹配算法等等 到了最近 论文 抑或是其他技术性文章出现的纹理 贴图等等词 总会让
  • Blender学习笔记(1)快捷键

    鼠标中键 转动视角 shift 中键 平移视角 ctrl 中键上下移动 缩放画面 shift 左键 多选 a是全选 b是多选 在编辑模式下是挤出 ctrl 右键 套索工具 ctrl shift 右键 diselect 中间滚轮滚动 缩放画面
  • blender学习记录1--界面,工具介绍

    1 大纲选项开关 此时camera cube light对应图中的物体 没点一个则会自动选中物体 上图先开始camera cube light后面什么选项都没有 在漏斗一样的按钮选中这4个 第一个小箭头 是物体不能被选中 第二个眼睛 将物体
  • 【Blender2.82a】学习记录

    Blender2 82a 学习记录 1 基本操作 1 1 界面操作 1 2 物体操作 1 3 建模基础 2021 12 13 最近的项目又要用到blender了 已经一年半没用过了 现在用的版本为2 93 6 尽管这篇记录的版本比较老了 但
  • libgdx导入blender模型

    具体就是参考 官网 https libgdx com wiki graphics 3d importing blender models in libgdx blender 教程可以看八个案例教程带你从0到1入门blender 已完结 这里
  • 将非分层变换应用于分层骨架?

    我使用 Blender3D 但答案可能不是 API 独有的 I have some matrices I need to assign to PoseBones The resulting pose looks fine when ther
  • 带纹理的 JSONLoader

    我在 Blender 中制作了一个带有纹理的形状并将其导出 然后用 json loader 显示它 几乎一切都很好 几何形状很好 你可以在形状上看到纹理 但没有颜色 只是黑色和白色 如何显示纹理颜色 我做错了什么 json文件 metada
  • ThreeJS - 如何将环境贴图应用到导入的 obj 模型?

    EDIT 我在这篇文章中找到了一个解决方案 如何将材质分配给 ColladaLoader 或 OBJLoader 我使用以下代码实现了允许我在导入的 obj 上使用 envMaterial 立方体贴图的效果 var loader new T
  • 播放动画一次而不是循环三个.js

    我已将搅拌机 JSON 动画导出到 THREE js 中 一切正常 但我只想播放动画一次并停止而不是循环播放动画 老问题 但如果有人需要它 解决方案是设置animation setLoop THREE LoopOnce let objLoa
  • 如何在搅拌机中导出带有纹理的.obj格式文件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 First of all i am new in blender i have attached texture from tree ob
  • 我可以在 OpenGL 中使用不同的多 GPU 吗?

    我读到OpenGL 多 GPU 支持 https stackoverflow com questions 43811699 opengl multi gpu support 我目前使用的是支持 OpenGL 4 5 的 NVIDIA 卡 我
  • 如何在 Java 中使用 Blender 模型?

    真的只是一个一般性问题吗 假设我正在制作一款游戏 并在 Blender 中制作了一个角色模型 我将如何在 Java 中使用这个模型 我会以某种方式导入它吗 Thanks 通常 在搅拌机中制作模型时 您可以以某种格式导出模型 以便稍后将其导入
  • LibGDX纹理混合与OpenGL混合功能

    在 libGdx 中 我试图创建一个成形纹理 采用完全可见的矩形纹理并将其遮罩以获得成形纹理 如下所示 在这里我在矩形上测试它 但我想在任何形状上使用它 我调查过本教程 http www learnopengles com tag addi
  • Morph 目标为 Three.js

    我正在尝试开始使用变形目标和 Three js 然而 关于这个主题的文档似乎并不多 当我查看源代码时 morphTargetInfluences 似乎是有魔力 这是如何运作的 我该如何使用这个 值为1就是全力吗 如何区分同一模型上的不同变形

随机推荐

  • 【机会约束、鲁棒优化】机会约束和鲁棒优化研究优化【ccDCOPF】研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 随机规划的三个分支分别为期望值模型 机会约
  • 用一个变量控制线程里面的资源问题,线程可见性问题

    线程资源不可见原因 1 CPU高速缓存造成极短时间内数据的不可见 2 指令重排导致不可见 不可见测试 由上图可知 当我们改变eatFlag为true时 并没有输出我们预想的数据 例如 线程中资源正在运行 解决办法 1 线程休眠 sleep
  • Shell脚本基础

    1 变量 匹配规则 懒惰模式最短匹配 从头开始匹配 最短删除 root liudongyi var1 l love you but you love he root liudongyi var2 var1 ve root liudongyi
  • System Error Codes

    From http msdn microsoft com en us library windows desktop ms681382 28v vs 85 29 aspx Applies to desktop apps only Note
  • 如何开通TikTok广告账户?

    如何开通TikTok广告账户 大家好 我是项柚 一个专注于讨论TikTok玩法的跨境电商自媒体人 每天不断输出干货给需要的朋友 希望大家能少走弯路 TikTok Ads是TikTok广告投放的管理后台 汇集多款海外流量产品 覆盖 150 多
  • 数据库单表数据过亿_最受欢迎的三大数据库,你用过吗?

    随着市场的多元化 需求场景多样化 数据库也层出不穷 来适应不同的业务场景 今天小编就给大家总结一下目前下面来总结下目前最受欢迎的三大数据库 快来看看你有没有用过吧 1 MySQL MySQL是一种关系型数据库管理系统 关系数据库将数据保存在
  • C#和.NET FrameWork概述

    NET FrameWork是什么 NET FrameWork是由微软开发的一种面相对象的环境框架 特点如下 多平台 可在各种计算机 服务器 手机上运行 标准化通讯协议 如XML HTTP JSON等 安全性 CLR检查并确保参数及数据对象的
  • imx6之camera mipi

    1 IPU imx6qp有2个IPU 每个IPU有2个CSI 这个CSI并不是MIPI CSI 是内部的功能模块 static struct mipi csi2 platform data mipi csi2 pdata chans 4 m
  • js计算大额数据当中丢失精度以及消除科学计数法解决方案—decimal.js的使用

    目录 decimal js使用场景 decimal js介绍 decimal js使用 1 安装依赖 2 引入并使用 decimal js函数封装 decimal js使用场景 js有精度问题 对于一些金额的计算就总是与偶莫名其妙的问题 d
  • Java实战系列(1):SpringBoot+ShardingSphere实现多数据源切换

    主要组件版本信息 SpringBoot 2 2 8 RELEASE MyBatis Plus 3 3 2 ShardingSphere 4 0 0 RC2 需求说明 在企业开发中 如果业务数据分布在不同的数据源 那么我们就希望在访问业务数据
  • Linux查看进程和线程的CPU使用率、内存占用情况(找出那个捣蛋鬼)

    查看 cpu 占用率高的线程 ps H eo user pid ppid tid time cpu cmd sort cpu 例如 2 查看占用内存最多的程序 ps aux head 1 ps aux grep v PID sort rn
  • column in where clause is ambiguous MySQL异常

    在多表连接查询中 若连接条件字段在多个表中同名 却没有使用全限定名称 如 logicdeleteFlag 执行时会报这个异常 MySQL没办法识别 这个字段指的是哪个表的字段 必须使用全限定名称 如 tableName logicdelet
  • 尽量以const、enum、inline替换 #define——条款02

    这个条款或许改为 宁可以编译器替换预处理器 比较好 因为或许 define 不能被视为语言的一部分 一 比如定义一个宏 define ASPECT RATIO 1 653 这个ASPECT RATIO也许从未被编译器看见 也许在编译器开始处
  • [开发心得]Electron应用自动升级 autoUpdater的使用。

    前言 博主主攻后端 对于electron自动升级也是费了非常多的事儿 github gitee也下载了很多源码 发现案例可能好用 但是很难融入公司的项目 要注意的点如下 1 Electron版本问题 2 Electron Vue版本问题 我
  • 点评10款Github上最火爆的国产开源项目

    衡量一个开源产品好不好 看看产品在Github的Star数量就知道了 由此可见 Github已经沦落为开源产品的 大众点评 了 一个开源产品希望快速的被开发者知道 快速的获取反馈 放到Github上面就可以了 AD WOT2015 互联网运
  • 数组元素的比较

    Java 1 0 和 1 1 的类库缺少许多特性 其中之一就是缺少算法操作 甚至是简单的排 序操作都没有 对于盼望能得到一个无所不有的标准类库的人来说 缺少这些操作是很 难以理解的 幸好 Java 2 对此作了补救 至少解决了排序问题 书写
  • 如何搭建自己的图床(GitHub版)

    文章目录 1 图床的概念 2 用GitHub创建图床服务器 2 1 新建仓库 2 2 生成Token令牌 2 3 创建img分支和该分支下的img文件夹 可选 3 使用PicGo软件上传图片 3 1 下载PicGo软件 3 2配置PicGo
  • 一张表格分成两页打印_word一页内容怎么分成两页打印

    word一页内容怎么分成两页打印 我们经常在打印时会选择把两页A4打在一张A3上 但有的时候也会需要把一张A3的内容分成两页A4来打印 那么 如何进行操作呢 下面就来看看小编的做法吧 调整页面布局 页面设置 纸张 将纸张大小有A3修改为A4
  • 如何用python画雪人_小雪人图案

    效果图如下 代码如下 import turtle t turtle Turtle t speed 0 右眼睛 t up t goto 80 80 t down t begin fill t circle 20 t end fill 右眉毛
  • blender bpy入门笔记

    目录 bpycv 加载 渲染demo 可以导出图片 但是图片为空 导出obj模型 随机旋转 录制常见脚本 渲染属性 胶片 gt 透明 其他命令 bpycv https github com DIYer22 bpycv 加载 渲染demo i