INF443 Amphi 3: Modélisation 3d

两种方法:

  1. Modélisation procédurale
  2. Modélisation interactive [Graphiste,可以修改细节]
    还有一种Reconstruction。
    在这里插入图片描述

1. Modélisation procédurale

  • Objet ou scène 3D crées par un programme
  • 常利用循环来创建有很多重复元素的scène

例子:Arbres CSG(Constructive Solid Geometry)
【Arbres CSG】

叶子结点:Primitives géométriques
结点:操作,如交集、并集等

1.1 Ajout Récursif de détails : Les Fractales

例子2:Fractales
Flocon de Koch
Ensemble de Mandelbrot
Dimension Fractale D

例子:创建一个山脉
每次在三角形的边上随机选取一个点,然后根据边的长度乘上一定的比例系数来移动点。

例子:创建一个自然风景(1982) ❓

例子:L-Système

这种循环的方式被推广至了一般的情况:

  • 一开始的形状
    • 将一个形状用多个其他的形状替代
      • 用一定的概率使用一些指定好的规则
      • 在改变形状的过程中参数是随机的
  • 一直修改直到有最后的形状
    在这里插入图片描述

例子:房屋的创建

2. Modélisation Interactive

目的:让用户能自己直观地修改模型
例子:Maya,Sketch-Up

Approche Constructive

  1. 创建简单的形状
  2. 对其进行全局或者局部地修改
  3. 组装
  4. 重复1-3

希望有的性质:
Formes Libres (Free-Form Shapes)
Aide pour créer des formes lisses
Stockage
-> 并不直接使用Maillages

Représentation

Représentation par bord (surfaces)

  • Maillages (surfaces discrètes)
  • Splines, NURBS (surfaces paramétriques)
  • Surfaces de subdivision et multi-résolution

Représentation volumiques

  • Voxels (Volumes discrets)
  • Surfaces implicites

2.0 Courbes et surfaces paramétriques 【看Poly】

Courbe: C ( u ) C(u) C(u)
Surface: S ( u , v ) S(u,v) S(u,v)

好处:

  • 方便计算点的坐标
  • 方便创建三角形
  • 方便贴材质

2.1 Courbes et Surfaces “Splines”

目的:用户可以修改points de contrôle,曲线要么是C1或者C2的。

Courbes splines
对于每一个点 i i i都有一个对应的函数(Fontions de Base F i F_i Fi),然后加权得到曲线。
C ( u ) = ∑ i F i ( u ) P i C(u)=\sum_i F_i(u)P_i C(u)=iFi(u)Pi

Contrôle Local
F i F_i Fi à support compact. ❓❓❓

连续性
F i F_i Fi C k C^k Ck的,则曲线也是 C k C^k Ck的。

Interpolation可以选用的函数:一定通过我们定义的几个点

  • Courbes d’Hermite d’ordre 1
  • Spline cardinale (dont celle de Catmull Rom)
  • Courbe d’Hermite d’ordre 2 (non locale)

Approximation可以选用的函数:曲线不通过我们定义的几个点,但是受他们的限制。

  • Courbes de Bézier (Interpolent les extrémités)
  • Bspline cubiaue uniforme
  • NURBS “Non Uniform Rational Bspline”

2.2 Splines d’interpolation

Courbes polynomiales de degré 3
C i ( u ) x = a 0 + a 1 u + a 2 u 2 + a 3 u 3 C i ( u ) y = b 0 + b 1 u + b 2 u 2 + b 3 u 3 C i ( u ) z = c 0 + c 1 u + c 2 u 2 + c 3 u 3 \begin{aligned} C_i(u)_x & = a_0 + a_1 u + a_2 u^2 + a_3 u^3\\ C_i(u)_y & = b_0 + b_1 u + b_2 u^2 + b_3 u^3\\ C_i(u)_z & = c_0 + c_1 u + c_2 u^2 + c_3 u^3\\ \end{aligned} Ci(u)xCi(u)yCi(u)z=a0+a1u+a2u2+a3u3=b0+b1u+b2u2+b3u3=c0+c1u+c2u2+c3u3

  • 我们可以看成有4个向量 ( a 0 , b 0 , c 0 ) (a_0,b_0,c_0) (a0,b0,c0)
  • 这里的 C i ( u ) C_i(u) Ci(u)是在 P i P_i Pi P i + 1 P_{i+1} Pi+1之间的线段
  • Contrôle local: Localité d’ordre 2

具体参数的确定:
C i ( 0 ) = P i , C i ( 1 ) = P i + 1 , C i ′ ( 0 ) = D i , C i + 1 ′ ( 1 ) = D i + 1 C_i(0)=P_i,C_i(1)=P_{i+1},C'_i(0)=D_i,C'_{i+1}(1)=D_{i+1} Ci(0)=Pi,Ci(1)=Pi+1,Ci(0)=Di,Ci+1(1)=Di+1
这样对于x坐标中的4个参数( a 0 , . . . , a 1 a_0,...,a_1 a0,...,a1),我们就有4个方程。
但是要用户手动控制 P i P_i Pi和其导数 D i D_i Di比较困难,我们希望有一个自动控制导数 D i D_i Di的方法。

2.2 Spline Cardinale (Catmull)

C i ( 0 ) = P i , C i ( 1 ) = P i + 1 , C i ′ ( 0 ) = k ( P i + 1 − P i − 1 ) , C i + 1 ′ ( 1 ) = k ( P i + 2 − P i ) C_i(0)=P_i,C_i(1)=P_{i+1},C'_i(0)=k(P_{i+1}-P_{i-1}),C'_{i+1}(1)=k(P_{i+2}-P_{i}) Ci(0)=Pi,Ci(1)=Pi+1,Ci(0)=k(Pi+1Pi1),Ci+1(1)=k(Pi+2Pi)

  • tension k=0.5,k越大,斜率越大
  • 曲线依旧是 a 0 , . . . , a 3 a_0,...,a_3 a0,...,a3 4个系数,即3次。
  • Localité de degré 4 , classe C1

2.3 Courbes d’Hermite d’ordre 2

C i − 1 ( 0 ) = P i , P i = C i ( 0 ) , C i − 1 ′ ( 1 ) = C i − 1 ′ ( 0 ) , C i − 1 ′ ′ ( 1 ) = C i ′ ′ ( 0 ) C_{i-1}(0)=P_i,P_i=C_i(0),C'_{i-1}(1)=C'_{i-1}(0),C''_{i-1}(1)=C''_{i}(0) Ci1(0)=Pi,Pi=Ci(0),Ci1(1)=Ci1(0),Ci1(1)=Ci(0)

2.4 Bspline cubique uniforme3在这里插入图片描述

上图中由 P 0 , P 1 , . . . , P 6 P_0,P_1,...,P_6 P0,P1,...,P6构成的多边形记为 C ‾ \underline{C} C,我们希望找到一个courbe C,使得对于任何Hyperplan D D D 它和C的交点要小于它和 C ‾ \underline{C} C的交点。

上面我们定义了怎么衡量一个曲线靠近 C ‾ \underline{C} C,下面,我们考虑怎么求解具体参数:

【Bspline cubique uniforme】

每一个点都与左边两个、右边两个点有关:Localité d’ordre 4.

【Bspline cubique uniforme Solution Unique】
❓❓

【Bspline cubique uniforme Matrice】

2.5 Surfaces Splines

【Surfaces Splines】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值