Lecture 14 Geometric Modeling
Solid Modeling 实体建模
- 几何操作符建模:使用一组几何操作符来构建模型。
- 几何操作符:包括挤出(extrusion)、旋转(revolution)、扫掠(sweeping)、放样(lofting)等。
- 挤出(Extrusion):沿着直线段进行平移挤出,也称为扫掠(sweeping)。
- 旋转(Revolution):沿着圆弧进行旋转挤出,创建旋转曲面。
- 放样(Loft):通过在两个或多个轮廓之间创建平滑过渡来生成3D实体。
- 参数化:通过各种语义参数来控制模型。
- 基于特征:可以添加各种组件,如孔(holes)、槽(grooves)、圆角(fillets)和倒角(chamfers)。
存储方式:Boundary Representation (B‐Rep) Modeling
CAD系统的挑战:
交集与拓扑稳健性/精确性:确保几何体在交集操作后仍然保持预期的形状和连接性
参数化设计:非线性优化
Surface Editing 曲面编辑
网格曲面编辑:
曲面编辑方法:
- 设置代理形状:为输入形状 S设置一个代理 P,代理形状比原始形状更简单、更易于处理或具有更多语义信息。
- 寻找映射:在代理形状 P 和原始形状 S之间找到一个映射关系,即 S=g(P),其中 g 也被称为嵌入空间(embedded space)。
- 用户交互和变形:用户与代理形状交互,将其变形为 P′。
- 寻找变形映射:找到一个变形映射 P′=h(P)。
- 计算新形状:从变形后的代理形状 P′ 计算出新的形状 S′,即 S′=g(P′)。
关键问题:寻找一个好的映射 g
代理形状是用于用户交互和变形的基础形状,可以是以下几种类型:
- 点(Points):包括Points, vertices等。
- 线/曲线(Lines/Curves):包括Sketches, skeletons, silhouettes, wires等。
- 网格(Meshes):包括Bezier nets, lattices, cages等。
- 其他形状(Other shapes):可以是其他任何形状,用于从其他形状学习变形(Deformation transfer)。
Point based editing
- RBF‐based Editing
- Moving Least Squares Method
- Vector Field Based Deformations
- Laplacian Editing
- Poisson Mesh Editing
- As‐rigid‐as‐possible Deformation
- ARAP Modeling
- Linear Rotation‐invariant Coordinates
Curve Proxy
- Skeleton based
- Sketching Deformations
- Wires based
- Silhouette sketching based
- Volumetric Graph Laplacian
Mesh Proxy
- Free‐form Deformation (FFD)
- Cage‐based deformation
- Multiresolution Editing
Deformation Transfer
- Deformation Transfer
- Editing Arbitrary Deforming Surface Animations
Sketch‐based Modeling (基于草图的建模)
- B‐Mesh
其它:
Sculpturing Modeling
A series of sculpting/brush operators:
Data‐Driven Modeling 基于数据的建模
有一些三维几何模型数据库:
基于数据库里的模型,可以实现:
- Modeling by Examples
- Probabilistic Reasoning
- ShapeSynth: Exploration as Design Tool
- Photo‐inspired Modeling
- Primitive‐based Modeling
- Shadow Guidance
- Learning Generative Models of 3D Shapes (3D‐GAN)
Shape Morphing
给定两个对象,产生一系列中间对象,这些对象逐渐从一个对象演变到另一个对象:
- 插值对象形状
- 插值对象属性
- 颜色、纹理、法线等
形状变换:
- 变形(Warping):一元操作
- 给定对象A和函数F(t),找到对象B。
- 图中用一个椭圆形状A和函数F(t)表示,通过变形操作得到新的形状。
- 变形(Morphing):二元操作
- 给定对象A和对象B,找到函数F(t)。
- 图中用两个不同形状A和B表示,通过变形操作在两者之间创建连续的中间形状。
术语:
- 变形(Morphing):在两个形状之间创建连续的中间形状。
- 变态(Metamorphosis):可能指更复杂的变形过程,涉及形状和结构的变化。
- 形状混合(Shape blending):将两个或多个形状特征结合在一起。
- 形状平均(Shape averaging):计算多个形状的平均值,以创建一个新的形状。
- 形状插值(Shape interpolation):在两个形状之间创建中间形状的过程。
- 形状过渡(Shape transition):形状从一个状态平滑过渡到另一个状态。
Rules for Good Morphing:
- 自然(Natural):变形过程应该看起来自然流畅。
- 保持形状特征:在变形过程中尽可能保持两个形状的体积、曲率、面积等特征。
- 主观审美标准:考虑用户的审美偏好。
- 用户控制(User control):用户能够直观地控制变形过程。
- 不沉重(not too heavy):变形过程不应过于复杂或计算量大。
- 适应用户知识(can be adapted to user's knowledge):变形工具应能够根据用户的专业背景和知识水平进行调整。
在3D模型变形(Morphing)过程中需要解决的两个子问题:对应问题(Correspondence problem)和路径问题(Path problem)。
对应问题(Correspondence problem)
- 兼容网格(Compatible meshes):确保源网格(source meshes)和目标网格(target meshes)在结构上是兼容的,以便可以进行变形。
- 参数化(Parameterization):为源网格和目标网格上的每个点找到第二个网格上的对应点。这个过程涉及到网格的参数化,即建立两个网格之间的一一对应关系。
路径问题(Path problem)
- 中间形状(Inbetween shapes):在源形状和目标形状之间生成一系列中间形状,这些形状逐渐从一个形状过渡到另一个形状。
- 指定时间轨迹(Specify trajectory in time for each point):为每个点在变形过程中的路径制定时间表,即确定每个点在变形过程中的位置和时间的关系。
- 网格顶点轨迹(For mesh - specify vertex trajectory):在网格变形中,需要为每个顶点指定其在变形过程中的轨迹。