数字媒体概论——3D篇

Posted _瞳孔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字媒体概论——3D篇相关的知识,希望对你有一定的参考价值。

建模:在三维空间创建可见对象的外形
渲染:逼真的将3D对象转变成2D图像
动画:随时间改变对象的外形或者渲染的参数

一:三维对象

1.1:用点表示三维对象

缺点:

  • 精度高则容量大
  • 容量小则精度低
  • 越放大越糟糕

1.2:用面表示三维对象

点->三角网络:Delaunay三角化。三角网格是现代显卡唯一支持的表示方式。

在多边形建模设计中,四边形在网格细分中有着无可比拟的优势,对后期的贴图支持也比三角网络好。因此,在设计领域软件中,四边形表达同时存在

曲面建模也称为NURBS(Non-Uniform Rational B-Splines)建模。可以通过一个控制顶点(CV)的影响改变相关的定点位置,并保持连续。NURBS数学表达为分段函数。是专门进行人造形体表面造型的主要方法。该表示3维对象的方式为参数化表面表示。

参数化表面与网格互转:从曲面到网格采用了插值的方法,而从网格到曲面采用了拟合的方法。从NURBS转换到表面细分,是设计与实现的分离。设计师希望使用NURBS良好的控制特性,但是动画渲染人员希望简单、容易计算的模型。从开始的bezier,到样条,再到无理B样条,再到NURBS,数学模型的泛化能力越来越强大。CAD领域最重要的任务之一就是建立细分表面(subdivision surfaces)之间的桥梁

1.3:用实体表示三维对象

CSG表示法用于交互,Brep表示法用于记录

CSG表示法(构造立体几何法,Constructive Solid Geometry):构造立体几何法简称CSG法,是一种通过布尔运算将简单的基本体素拼合成复杂实体的描述方法。

  • 优点:方法简洁,生成速度快,处理方便,无冗余信息,而且能够详细地记录构成实体的原始特征参数,甚至在必要时可修改体素参数或附加体素进行重新拼合。
  • 缺点:由于信息简单,这种数据结构无法存贮物体最终的详细信息,例如边界、顶点的信息等。

Brep表示法(边界表示,Boundary Representation):是几何造型中最成熟、无二义的表示法。实体的边界通常是由面的并集来表示,而每个面又由它所在的曲面的定义加上其边界来表示,面的边界是边的并集,而边又是由点来表示的。

  • 边界表示的一个重要特征是描述形体的信息包括几何信息(Geometry)和拓朴信息(Topology)两个方面。拓朴信息描述形体上的顶点、边、面的连接关系,它形成物体边界表示的“骨架”。形体的几何信息犹如附着在“骨架”上的肌肉。例如,形体的某个面位于某一个曲面上,定义这一曲面方程的数据就是几何信息。此外,边的形状、顶点在三维空间中的位置(点的坐标)等都是几何信息,一般来说,几何信息描述形体的大小、尺寸、位置和形状等。
  • 在边界表示法中,边界表示就按照体-面-环-边-点的层次,详细记录构成形体的所有几何元素的几何信息及其相互连接的拓朴关系。这样,在进行各种运算和操作中,就可以直接取得这些信息。

1.4:用体素表示三维对象

一个三维数据场可以用一个具有相应值得三维阵列(X*Y*Z)来描述,这些值称为体素。一个典型的三维数据场是医学图像三维数据场,由CT(计算机断层成像)或者MRI(核磁共振)扫描获得一系列的医学图像切面数据。

体渲染不需要将体素转化为三角网络,而是独立的渲染算法

二:三维到图像

渲染管线:

相机参数:

简单光照模型:

  • 环境光反射:空气中光线的反射(与光源和视点无关)
  • 漫反射:光源向四周的反射(与光源有关)
  • 镜面反射:对光源向视点的反射(与光源和视点都有关)

光照模型之材质定义:

  • 材质包括颜色、漫射、发光、透明、反射、环境、烟幕、凹凸、法线、Alpha、辉光、置换十二大类,是一个从低到高的层次关系
  • 因为光照计算方法的不同,叠加每一层的颜色值顶点颜色,故材质所有参数的定义与范围都是与渲染方法光照模型相关的。不同软件和渲染器插件的材质互不相通

表面颜色之灯光定义:

  • 灯光构成了计算顶点颜色的另一部分。设计了多种类型光源模拟真实的光照类型;参数也因不同类型而不同。阴影是灯光直接导致的计算结果
  • 同材质一样,灯光数属性也是光照模型强相关,其参数设置在各个软件与渲染插件之间也无法通用

表面颜色之纹理贴图

  • 更好的表达对象的表面特征
  • 更好的体现物体的表面细节

纹理(texture)指特征,贴图(map)指图像,材质包含纹理,纹理包含贴图

重复纹理与UV展开:

  • 模型表面附着纹理或者贴图表示为顶点增加纹理/贴图坐标的属性
  • 纹理/贴图是二维的,必须将模型表面映射到一个2D的表达上(网格参数化)
  • 纹理倾向于在模型表面平铺/重复,所以纹理坐标表示为在纵横(UV)两个方向上重复的次数
  • 贴图倾向于用一张图附着于模型表面,所以贴图坐标表示为归一化的贴图图像坐标

帖图的把戏:

三:三维动画

三维动画的类型:

  • 关键帧动画:

    • 以单个模型作为动画对象,通过在时间轴上以某种曲线变化改变位置、角度等参数产生变化效果
    • 可以改变的参数包括但不限于:空间信息(位置、角度、大小)、建模过程信息(如球的半径)、贴图信息(如纹理坐标、透明度)。所以可以刻画为数字的描述都可以作为关键帧动画的设置对象
    • 摄像机动画就是以摄像机作为动画对象,对摄像机进行空间位置的改变,或主要参数如焦距的改变
  • 顶点动画:

    • 以模型顶点作为动画对象,以某种数学-物理模型设置其随时间改变位置的烟花过程
    • 关键在于建立顶点之间的变化关联
  • 角色动画:

    • 以骨骼节点作为关键帧动画的对象,利用骨骼的运动来带动周围相关顶点的运动,联系模型和骨骼之间关系的约束称为蒙皮(Skin),蒙皮动画其实是一种顶点动画
  • 软体动画:以对象单元化为手段,建立单元之间的力传导关系,以物理方法计算单元位移

四:采集与生成

模型采集:

  • 基于结构光的三维重建
  • 基于激光点云的三维重建
  • 基于深度相机的三维重建
  • 基于RGB图像的三维重建

其中基于结构光和激光点云的三维重建有商业化产品,精度高但并不傻瓜。而基于深度相机和RGB图像的三维重建是研究热点

动画采集:

  • 基于惯性传感器采集骨骼动画
  • 基于视觉采集骨骼动画,分为贴标签的和不贴标签的
  • 基于视觉采集模型动画

三维设计:

三维对象的文件格式(这是一个阻碍三维数据广泛使用和研究的难题):

  • 模型文件:obj(有纹理坐标)、STL(只有模型)、ply、sat(实体模型)
  • 骨骼动画文件:bvh、C3D、asf(骨架)、amc(运动)
  • 引擎文件:3ds、MAX、MD3,任何一个三维软件或者引擎都会有自己的格式

FBX:由于Autodest公司的推动,成为了较多软件的可交换格式

如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔的个人空间

以上是关于数字媒体概论——3D篇的主要内容,如果未能解决你的问题,请参考以下文章

数字媒体概论——系统篇

数字媒体概论——系统篇

LeetCode 892. 三维形体的表面积

Leetcode 892. 三维形体的表面积

Leetcode 三维形体的表面积(每日一题)

892. 三维形体的表面积