当前位置: 首页 > news >正文

一般做网站宽高多少公司做网站推广需要多少钱

一般做网站宽高多少,公司做网站推广需要多少钱,南昌网站建设规划方案,广东省广州市番禺区南村镇【Blender】Blender 基础:导入 & 导出 引言一、Blender 支持的主要格式二、模型导入流程三、模型导出逻辑(一)导出前准备:(二)导出选项控制(以 glTF 为例): 四、平台…

【Blender】Blender 基础:导入 & 导出

  • 引言
  • 一、Blender 支持的主要格式
  • 二、模型导入流程
  • 三、模型导出逻辑
    • (一)导出前准备:
    • (二)导出选项控制(以 glTF 为例):
  • 四、平台适配建议
  • 五、常见问题与排查建议
  • 六、使用Python代码批量导入glb(并保留原文件命名)
  • 七、使用Python代码批量导出glb

引言

Blender 是一款强大的开源 3D 建模与渲染工具,在实际项目中,我们往往需要与外部工具或平台对接三维数据。这使得“导入”和“导出”成为 Blender 使用中的基本且关键的环节。

本文将系统讲解 Blender 中模型的导入与导出流程,覆盖支持的常见格式、注意事项以及适配不同平台的实践建议。


一、Blender 支持的主要格式

操作常见格式用途
导入.obj.fbx.gltf/.glb.dae.stl从 CAD、Maya、3ds Max、Unity 等迁移
导出.fbx.gltf/.glb.obj.stl用于游戏引擎、Web 显示、3D 打印

✅ 推荐使用 .glb.gltf 格式导出,用于 Web 和实时场景,支持贴图、动画、材质完整性强。


二、模型导入流程

Blender 中导入模型操作简单,但在实际工作中仍有几个关键细节需要注意:

  1. 确认单位和坐标系

    • Blender 默认单位为米,Z轴朝上;
    • 某些格式(如 FBX)可能使用厘米、Y轴朝上。
  2. 集合自动命名机制

    • Blender 会以文件名创建集合(Collection);
    • 子对象可能会被自动重命名(如重复 Mesh 名称)。
  3. 贴图路径处理

    • 如果路径是相对的,需保持贴图与模型结构一致;
    • 外部贴图缺失会导致材质白模。
  4. 动画数据载入

    • 格式如 FBX、GLTF 会同时载入骨骼与动画轨迹;
    • 可在时间轴中直接预览。

三、模型导出逻辑

在导出模型时,我们需要明确目标平台的要求,比如是否需要压缩、是否保留动画、贴图格式等。

(一)导出前准备:

  • 应用变换(Apply All Transforms)

    • 保证模型位置、旋转、缩放一致性;
  • 合并对象(如有需要)

    • 合并子部件为整体模型,避免碎片;
  • 清理材质槽与无用数据块

    • 精简模型数据结构。

(二)导出选项控制(以 glTF 为例):

选项说明
导出格式.glb(二进制)或 .gltf(JSON + Bin + 图片)
压缩方式支持 Draco 压缩(减少顶点数据体积)
材质设置保留 Base Color、Metallic、Roughness、法线贴图等
动画设置可勾选导出动作(Action)与骨骼结构

四、平台适配建议

不同应用场景,对模型导出有不同的要求:

应用场景推荐格式关键配置
WebGL / Three.js / Cesium.glb(含 Draco)保留贴图、压缩顶点数据
Unity / Unreal Engine.fbx应用变换,保留骨骼动画
3D 打印.stl / .obj删除材质,闭合网格,检查法线
医学三维重建.glb / .obj精简材质结构,保留关键模型结构

五、常见问题与排查建议

问题原因建议
导入后模型尺寸异常单位不一致检查单位设置,统一为米
模型显示为纯白材质或贴图未绑定检查贴图路径,确认贴图存在
对象名称混乱自动重命名导入后手动重命名或脚本统一命名
动画丢失未导出动画轨迹导出前确认勾选动画选项
导出文件过大面数多、贴图大结合简化模型和压缩贴图处理

六、使用Python代码批量导入glb(并保留原文件命名)

import bpy
import os
import globdef import_gltf_strict_named(filepath: str):"""导入一个 glb 文件,将顶层对象命名为文件名,并放入同名集合"""filename = os.path.splitext(os.path.basename(filepath))[0]# 记录导入前所有对象existing_objects = set(bpy.data.objects)# 执行导入bpy.ops.import_scene.gltf(filepath=filepath)# 记录导入后新增对象imported_objects = [obj for obj in bpy.data.objects if obj not in existing_objects]# 获取场景中刚导入的顶级对象root_objects = [obj for obj in imported_objects if obj.parent is None]# 创建集合(名字与文件名相同)new_col = bpy.data.collections.new(filename)bpy.context.scene.collection.children.link(new_col)# 将所有导入对象放入新集合,清理原集合引用for obj in imported_objects:for col in obj.users_collection:col.objects.unlink(obj)new_col.objects.link(obj)# 如果只有一个顶层对象(比如是个 Group),重命名它if len(root_objects) == 1:obj = root_objects[0]if obj.name != filename and not bpy.data.objects.get(filename):obj.name = filenameelse:# 如果有多个顶层对象,可以创建一个空的根对象命名parent = bpy.data.objects.new(filename, None)new_col.objects.link(parent)for obj in root_objects:obj.parent = parentprint(f"✅ 已导入并命名:{filename}")def batch_import_glb_strict(folder_path: str):files = glob.glob(os.path.join(folder_path, "*.glb")) + \glob.glob(os.path.join(folder_path, "*.gltf"))print(f"发现 {len(files)} 个模型文件")for i, file in enumerate(files):print(f"[{i+1}/{len(files)}] 正在处理:{file}")import_gltf_strict_named(file)# 执行导入# 这里修改导出地址
folder_path = r"F:\project\"
batch_import_glb_strict(folder_path)

七、使用Python代码批量导出glb

import bpy
import os# 设置导出目录
export_dir = "G:\\new\\models"  # 修改为你自己的导出路径# 创建导出目录(如果不存在)
if not os.path.exists(export_dir):os.makedirs(export_dir)# 取消所有选择
bpy.ops.object.select_all(action='DESELECT')# 获取所有要导出的对象(例如:位于指定 Collection 中)
objects_to_export = bpy.context.scene.objects  # 或用:bpy.data.collections['YourCollection'].objectsfor obj in objects_to_export:if obj.type == 'MESH':# 仅选择当前对象bpy.ops.object.select_all(action='DESELECT')obj.select_set(True)bpy.context.view_layer.objects.active = obj# 设置导出路径和文件名export_path = os.path.join(export_dir, f"{obj.name}.glb")# 导出为 glTF/glb 文件bpy.ops.export_scene.gltf(filepath=export_path,use_selection=True,export_format='GLB',  # 改为 'GLTF_SEPARATE' 可导出 .gltf + .bin + texturesexport_apply=True)print("批量导出完成!")
http://www.dtcms.com/a/496778.html

相关文章:

  • JavaScript 核心概念全解析:数据类型、拷贝、运算符与类型判断
  • C++: 继承
  • 注册域名查询网站做网站应该注意哪些问题
  • redission封装,分布式锁使用
  • 算法沉淀第五天(Registration System 和 Obsession with Robots)
  • 政务门户网站建设规范最受欢迎国内设计网站
  • 网站双倍浮动做网站在哪里
  • 【AI论文】CoDA:通过扩散适配实现代码生成语言模型(Coding LM)
  • 浔川 AI 翻译 v7.0 公测版上线信息
  • ps手机网站页面设计wordpress 商品插件
  • 好一点网站建设公司网站开发时遇不到算法
  • 阿里云如何添加新网站做数学题网站
  • flash网站cms合肥网站建设哪家专业
  • JEP、exp4j和Expression4j解析公式对比
  • 756ka网站建设博客发布 网站模版
  • Python| intake | 无法将读取的nc数据转为xarray格式 | to_dask()
  • 电商导购网站开发四川企业seo
  • VLLM-大模型部署Qwen3-8b
  • @FeignClient 添加请求头header的4种方法
  • 网站建设人员考核设计师联盟网
  • python做个人网站前端后端
  • git一个分支最后一条记录合并到另一条分支上
  • 阿里云可以做电影网站吗淘宝网站建设概要
  • Coze 与 n8n 深度对比:AI智能体平台与工作流自动化的核心博弈
  • 西安正规网站建设报价做个网站app吗
  • 做网站主要学什么软件室内设计网站公司
  • 【Leetcode hot 100】45.跳跃游戏Ⅱ
  • 北京建设局网站百度seo快排软件
  • 免费优化网站建设中建一局
  • 流氓软件AlibabaProtect无需第三方软件无需重启电脑的清理方法