Blender-Armatures

news2026/5/21 8:35:22
导航 (返回顶部)1. Blender-Armatures1.1 骨架位置1.2 分类1.3 骨骼结构2. 编辑2.1 骨骼扭转2.2 拆分 split2.3 分离骨骼 separate2.4 切换方向3. 镜像编辑3.1 镜像挤出3.2 命名惯例3.3 对称4. 属性4.1 属性结构表4.2 柔性骨骼 Bendy Bones4.3 姿态4.4 关系5. 骨骼约束5.1 骨骼约束列表5.2 IK 反向运动学5.3 为骨骼添加 IK1. Blender-Armatures 1.1 骨架位置 1.2 分类 1.3 骨骼结构 2. 编辑 2.1 骨骼扭转 2.2 拆分 split 2.3 分离骨骼 separate 2.4 切换方向 3. 镜像编辑 3.1 镜像挤出 3.2 命名惯例 3.3 对称 4. 属性 4.1 属性结构表 4.2 柔性骨骼 Bendy Bones 4.3 姿态 4.4 关系 5. 骨骼约束 5.1 骨骼约束列表 5.2 IK 反向运动学 5.3 为骨骼添加 IK1. Blender-Armatureshttps://docs.blender.org/manual/zh-hans/latest/animation/armatures/index.html骨架(armature) 是用于绑定用的而绑定相当于木偶(傀儡)的装配器和牵线来控制网格物体的变形。以下是阅读手册摘录的部分内容详细内容见Blender手册页。1.1 骨架位置Rest Position 静置位置(简体翻译)静止位置(繁体翻译)Post Position 姿态位置。Pose姿态(简体翻译)姿势(繁体翻译)右侧骨架属性区域可以在Pose下切换这2种骨架位置。姿态模式下可用 Ctrl A 将当前 姿态位置Post 应用为 静置位置Rest。如果在播放动画时某个骨架不动了可以检测右侧骨架属性是否将姿态设置为Rest静止位置。1.2 分类Deform 形变 属性 位于右侧 骨骼属性面板。Deforming Bones 变形骨骼启用“变形”设置的骨骼会带动 vertices 顶点一起移动。Control Bones 控制骨骼禁用“变形”设置的骨骼不会拖动任何顶点。相反它们通常用于控制其他骨骼。注: Deform, 翻译有时用变形有些地方会用形变。主要是针对人或动物肢体的肌肉组织。 但对于关节使用轴承的机器人机械的运动通常不需要考虑这部分的设置。1.3 骨骼结构骨架由骨骼Bone组成。1段或多端彼此连接或不连接的骨骼。骨骼有三个基本元素开始的关节 叫 根部 (root) 或 头部 (head)。body (身体) 部分是骨骼的主体。结束关节 部分叫 顶端 (tip) 或 尾端 (tail)。在编辑模式选择默认的骨架在这个模式你可以选择根部(root)和尾端(tip)像操作网格顶点一样移动它们。根部(root)和尾端(tip)(也叫 关节 Joints)它们各自的位置定义了骨骼。它们都有半径属性但只在封套变形模式下有用(见下文)。扭转激活轴向复选框将显示每个骨骼尖端的局部轴。 Y 轴始终沿着骨骼对齐从根部到尖端这是骨头的 滚动 轴。2. 编辑https://docs.blender.org/manual/zh-hans/dev/animation/armatures/bones/editing/introduction.htmlImportant了解关于骨架编辑的一个重要之处是编辑骨架的 重置位置即其 默认状态。骨架位于 重置位置 所有骨骼 没有 旋转并在其局部空间所有缩放到1.0你可能之后会创建基于此静置位置的不同姿态。 所以如果你在 编辑模式 下修改它已经存在的所有姿态也将被修改。因此你通常应该在开始蒙皮和姿态之前确保你的骨架是确定的Note: 请注意一些工具适用于骨骼的关节而其他工具可以在骨骼本身上工作。小心不要混淆。变换骨骼的根部和尖端的行为或多或少类似于网格的顶点而骨骼本身的行为类似于网格中的边缘。骨骼有两种关系它们是父子关系和连接关系。需要注意的是当调整骨(通过直接进行缩放或者通过移动其关节中的一个)大小时Blender 自动校正它的封套的末端半径。因此建议首先放置所有骨骼然后才能编辑这些属性。2.1 骨骼扭转https://docs.blender.org/manual/zh-hans/dev/animation/armatures/bones/editing/bone_roll.html骨骼滚动是骨骼静止姿态的一部分它定义了骨骼绕其长度方向的默认旋转。编辑模式 下可以控制骨骼滚动。菜单: 骨架 ‣ 骨骼扭转 ‣ (重算扭转/设置扭转/清除扭转)快捷键: Shift-N 重算扭转. 自动将所有选定骨骼的滚动方向与各种参考点对齐。快捷键: Ctrl-R 设置扭转. 调整所有选定骨骼的扭转。快捷键: Alt-R 清除扭转. 将所有选定骨骼的扭转设置为 0°2.2 拆分 splithttps://docs.blender.org/manual/zh-hans/dev/animation/armatures/bones/editing/split.html快捷键: Y 或者 菜单: 骨架 ‣ 拆分拆分 操作会将所选骨骼与骨架的其余部分断开创建一个新的、无连接的骨骼链。注意: 此运算符仅影响骨骼连接骨骼仍位于同一骨架对象内。2.3 分离骨骼 separatehttps://docs.blender.org/manual/zh-hans/dev/animation/armatures/bones/editing/separate_bones.html快捷键: P 或者 菜单: 骨架 ‣ 分离骨骼你可以像网格那样分离骨骼为一个新的骨骼物体通过 骨架 ‣ 分离 或 Ctrl-Alt-P 当然在 物体模式 下你可以将所有选择的骨架合并为一个骨架物体通过 物体 ‣ 合并 或 Ctrl-J2.4 切换方向https://docs.blender.org/manual/zh-hans/dev/animation/armatures/bones/editing/switch_direction.html快捷键: Alt-F 或者 菜单: 骨架 ‣ 切换方向该工具用于切换所选骨骼的方向(即它们的头部将成为其尾端反之亦然)。切换骨骼的方向通常会破坏它所属的链条。但是如果你换整个(一部分)链则切换的骨骼仍将保持父子和链接关系但是以 相反的顺序。3. 镜像编辑3.1 镜像挤出骨骼有一个额外的 镜像挤出 工具通过按 Shift-E 来调用。默认情况下它的行为与标准拉伸完全相同。但是一旦您启用了X 轴镜像编辑选项每个拉伸的提示将产生 两个新骨骼除了 _L/ _R 后缀(对于左/右请参阅命名约定)之外具有相同的名称。_L 骨骼的行为类似于默认拉伸产生的单个骨骼 -- 您可以以完全相同的方式移动旋转或缩放它。_R 骨骼是它的镜像对应物(沿着骨架的局部 X 轴)参见图 镜像挤出示例。。3.2 命名惯例https://docs.blender.org/manual/zh-hans/dev/animation/armatures/bones/editing/naming.html#armature-editing-naming-conventions在Blender命名习惯不仅仅是用于找到正确的骨骼也告诉Blender哪两个骨骼是配对骨骼。如果骨架可以镜像另一半(即它是两侧对称)这是值得坚持左/右命名的约定。这将使您能够使用一些工具可能会节省您的时间和精力(如 X 轴镜像 的编辑工具我们上面看到的...)。有效的分隔符示例(无): handLeft -- handRight_ (下划线): hand_L -- hand_R. (点): hand.l -- hand.r- (破折号): hand-l -- hand-r (空格): hand LEFT -- hand RIGHT自动命名菜单: 骨架 ‣ 名称 ‣ 自动命名左/右、前/后、上/下骨架 ‣ 名称 的三个 自动命名 条目允许您根据其头部相对于骨架原点及其局部坐标的位置自动为所有选定骨骼添加后缀自动命名左/右正 X 坐标根部添加.L后缀负 X 坐标根部添加.R后缀0坐标加.。自动命名前/后正 Y 坐标根部添加 .Bk 后缀负 Y 坐标根部添加 .Fr 后缀0坐标加.。自动命名上/下正 Z 坐标根部添加 .Top 后缀负 Z坐标根部添加 .Bot 后缀0坐标加.。翻转名称菜单: 骨架 ‣ 名称 ‣ 翻转名称您可以在选定的骨骼名称中翻转左/右标记(参见上文)。Blender将根据上述命名约定交换骨骼名称中的文本并在可能的情况下删除数字扩展名。3.3 对称https://docs.blender.org/manual/zh-hans/dev/animation/armatures/bones/editing/symmetrize.html“对称化”运算符会使用 Blender 的对称骨架骨骼命名规则沿 X 轴镜像选定的骨骼 。骨骼可以 左到右镜像也可以 右到左镜像具体取决于选择情况。对称骨骼和约束属性会进行调整以反映它们的行为。对于带有动作约束的骨骼会在目标动作中添加关键帧以确保在动作激活时运动对称。注意对称化过程中不会创建或影响骨骼或约束驱动器。4. 属性4.1 属性结构表属性物体模式Object Mode编辑模式Edit Mode姿态模式Pose Mode物体Object变换,关系,集合,运动路径可见性,视图显示,动画,数据Data姿态: (姿态位置, 静置位置)骨骼集合, 选择集, 运动路径IK 反向运动 – 解算: (标准, iTaSC)视图显示, 动画, 自定义属性骨骼Bone°-°变换 Transform柔性骨骼 Bendy Bones关系 – 继承缩放:(完整, 修复切变, 对齐, 平均, 无)°-°°-°IK 反向运动(…)Deform形变, 视图显示, 自定义属性约束°-°°-°骨骼约束* 表中橙色表示骨骼特有的属性。°-°表示该模式下没有本行属性。更多详细信息参阅手册页https://docs.blender.org/manual/zh-hans/dev/animation/armatures/bones/editing/properties.html除了前面提到过的骨架位置状态Deform形变还有如下几项骨骼特有的属性。柔性骨骼 Bendy Bones骨骼关系IK 反向运动和 FK骨骼约束4.2 柔性骨骼 Bendy Boneshttps://docs.blender.org/manual/zh-hans/dev/animation/armatures/bones/properties/bendy_bones.html柔性骨骼(B-Bones)是取代许多小型刚性骨骼长链的简单方法。弯曲骨骼主要用于脊柱模型或面部骨骼。显示只有骨骼视图显示设置为 柔性骨骼 才能看到这些分段。当视图显示不是 柔性骨骼 时即使骨骼分段仍然存在并且有效骨骼总是显示为刚性棍形。这意味着即使在例如 八面体 可视化的显示方式如果链中的一些骨头有分段他们仍然会使他们的几何体平滑变形。柔性骨骼有两组弯曲骨骼属性 -- 一组用于编辑模式(即静置姿态/基础绑定)另一组用于姿态模式 -- 将它们的值相加或相乘以获得最终变换。Blender 将柔性骨骼看成通过骨骼关节的贝塞尔曲线一部分。骨骼两端的手柄以控制曲率。4.3 姿态https://docs.blender.org/manual/zh-hans/dev/animation/armatures/posing/index.htmlBone State Colors 骨骼的状态颜色骨骼的颜色基于它们的状态。有六种不同的颜色代码在这里按优先级排序(即骨骼将是最底部有效状态的颜色)灰色默认的。蓝色线框处于姿态模式。绿色带有约束。黄色带有 IK解算约束。橙色带有无目标解算器约束。Note当 骨骼配色 被启用时状态颜色将被覆盖。当设置你的骨架的姿势时你应该有一个或多个物体的皮肤在上面很明显当你在 姿态模式 下变换一根骨骼时它的相关物体或物体的形状会相应地实时移动、变形。不幸的是如果你有一个复杂的控制器设置和/或一个厚重的蒙皮对象这可能会在交互式编辑中产生滞后。如果你遇到这样的麻烦可以尝试启用 骨架 面板中的 延时变形 按钮蒙皮对象只有在你确认转换操作后才会被更新。4.4 关系https://docs.blender.org/manual/zh-hans/dev/animation/armatures/bones/properties/relations.html在此面板中您可以管理此骨骼与其父骨骼的关系。它还会显示此骨骼所属的骨骼集合。骨骼关系对变换行为的影响。默认情况下子骨骼继承其父位置与自身的偏移量。其父旋转的角度 (即他们保持恒定旋转相对于其父级)。其父缩放与自身偏移量。这些继承行为将沿骨骼的层次结构传播。所以当你缩小骨骼时它的所有后代子级按默认值相应缩小。但是如果在此 系列 中设置了一个骨骼的 继承缩放 或 继承旋转 属性这将打破继承传播当你缩小它的祖先(父级)时这个骨骼 和它所有的后代(所有的子级) 将不再受到影响。完整: 骨骼继承父级缩放和剪切的所有效果。修复切变: 将完整的父级效果应用于子级的静置状态之后以保留骨骼方向、长度和体积的方式去除任何剪切并且最小程度地影响平均滚动。结果与子级的自身变换相结合。如果继承的比例不均匀这不会阻止剪切由于子级骨骼或其子级的局部旋转而重新出现。对齐: 父级缩放是继承的如同子级的方向与父级相同始终在子级 X缩放基础上应用父级 X 缩放等等。平均: 继承表示父级体积总体变化的均匀缩放系数。无: 忽略父级的所有缩放和剪切。无(旧版): 忽略所有缩放前提是父级未被切。如果是则不能保证。此选项将复制旧 “继承缩放” 复选框的行为并可能在将来的版本中删除。Tip各种 继承缩放 选项作为工具提供以避免由不均匀缩放与父级指定和旋转结合引起的切变。没有明显的最佳方式来实现这一目标因此不同的选择对不同的情形是有用的。无 - 用于完全控制子对象的缩放例如手动使用约束覆盖其缩放。平均 - 用于阻止子骨骼之间的挤压和拉伸传播同时允许尺寸和体积的均匀变化传递。对齐 – 可用于骨骼链(例如触手)以便无论触手如何弯曲都能使纵向缩放按纵向传播横向缩放按横向传播。 类似于将“无”设置为“从父对象复制缩放”。固定剪切 – 可用于附属物的根部以便根据父对象和子对象静止姿势方向的差异重新分配轴向之间的挤压和拉伸。 它的行为最接近“完全”同时抑制剪切。因此在调整骨骼链的姿势时应该始终从根骨到末端骨逐一编辑。这个过程称为正向运动学 Forward Kinematics (FK)。我们将在后面的页面中看到Blender 还提供了另一种姿势调整方法称为反向运动学 Inverse Kinematics (IK)它允许您仅通过移动末端骨来调整整个骨骼链的姿势。5. 骨骼约束5.1 骨骼约束列表https://docs.blender.org/manual/zh-hans/dev/animation/armatures/posing/bone_constraints/index.html骨骼约束仅在骨骼的姿态模式下可用如下是骨骼约束列表。和普通约束相比多了IK反向运动学 Inverse Kinematics 和样条线 Spline IK。运动追踪Motion Tracking变换Transform关系Relationship摄像机结算Camera Solver复制位置Copy Location动作Action跟随轨迹Follow Track复制旋转Copy Rotation骨架Armature物体结算Object Solver复制缩放Copy Scale子级Child Of复制变换Copy Transforms基面Floor追踪Tracking限定距离Limit Distance跟随路径Follow Path钳制到Clamp To限定位置Limit Location几何属性Geometry Attribute阻尼追踪Damped Track限定旋转Limit Rotation轴心Pivot反向运动学Inverse Kinematics限定缩放Limit Scale缩裹Shrinkwrap锁定追踪Locked Track维持体积Maintain Volume样条线 IKSpline IK变换Transformation拉伸到Stretch To变换缓存Transform Cache标准追踪Track To5.2 IK 反向运动学https://docs.blender.org/manual/zh-hans/dev/animation/armatures/bones/properties/inverse_kinematics.htmlhttps://docs.blender.org/manual/zh-hans/dev/animation/armatures/posing/bone_constraints/inverse_kinematics/introduction.htmlhttps://docs.blender.org/manual/zh-hans/dev/animation/constraints/tracking/ik_solver.html反向运动学(IK)简化了动画过程并使得以更少的工作量制作更高级的动画成为可能。反向运动学允许您将骨骼链中的最后一个骨骼定位其他骨骼会自动定位。这就像移动某人的手指会导致他们的手臂跟随它一样。5.3 为骨骼添加 IK模式: 姿态模式快捷键: Shift-I 或者 (菜单: 姿态 ‣ 反向运动学 ‣ 为骨骼添加 IK) 或者 (右侧属性区\骼约束面板里添加)快捷键: Ctrl-Alt-I 或者 (菜单: 姿态 ‣ 反向运动学 ‣ 移除 IK) 从所选骨骼中移除反向运动学约束。初始链长度为 0这实际上意味着尽可能遵循与父骨骼的连接没有长度限制。因此第一次按下增加链长度会将长度设置为 1(仅移动所选骨骼)此时减小长度点会再次将其设置回 0(无限制)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2630964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…