Lecture11: Geometry 2 (Curves and Surfaces)
- 今日内容:
- 上节课没讲完的显式几何
- 曲线和曲面
Explicit Representations in Computer Graphics
- Point Cloud 点云
- 最简单的表示:点(x, y, z)的列表
- 可以表示任何类型的几何
- 如何把点云变成多边形面?一个研究方向
- Polygon Mesh 多边形面
- .obj 格式的文件
- 把点坐标、法线、纹理坐标和他们的连接关系分别放在一起
- 把点坐标、法线、纹理坐标和他们的连接关系分别放在一起
- .obj 格式的文件
Curves 曲线
- 例子:
- 相机的移动曲线
- 字体的曲线定义
- Bézier curve 贝塞尔曲线
- 用一系列的控制点定义曲线:起始点和终点位置以及这两点对应的切线(唯一的曲线)
- 用一系列的控制点定义曲线:起始点和终点位置以及这两点对应的切线(唯一的曲线)
- 用任意多的点,怎么画一条贝塞尔曲线?
- 三个控制点——生成二次贝塞尔曲线
- 给任意时间t找一个对应点,见下图:
- 对于四个控制点呢?
- 这是一个递归的算法,每一次少一个点
- 贝塞尔曲线的代数表示形式?
- 尝试书写
- 尝试书写
- 总结!n个控制点可以得到n阶的贝塞尔曲线
- 其中涉及了伯恩斯坦多项式
- 其中涉及了伯恩斯坦多项式
- 贝塞尔曲线的性质
- 必须过起点和终点
- 规定起点和终点中的“三倍”(四个控制点时)
- 在仿射变换下,对控制点做仿射变换即可(比如说投影变换就不行)
- 凸包性质,画出的贝塞尔曲线一定在几个控制点形成的凸包内,下图讲凸包的概念:
- 凸包性质的简单应用:直线肯定就是贝塞尔曲线自己
- Piecewise Bézier curve 逐段的贝塞尔曲线
- 这样的曲线不利于控制点进行控制
- 那就干脆分段呗,习惯于用四个控制点控制其中一段
- 如何确保曲线间连接光滑?
- 两个切线共线且长度相等
- 什么是连续性?
- 几何连续【C0连续】:两点接触了,挨在一块
- 切线连续【C1连续】:两个切线共线且距离相等(一阶导数连续)
- 曲率连续【Cn连续】:n阶导数连续
- 除了贝塞尔曲线,还有别的曲线!
- 比如 spline(样条)
- 一种样条——B样条:
- 对贝塞尔曲线的扩展,对于贝塞尔曲线,改变一个控制点整个曲线都会改变
- 对于B样条,改变一个控制点,只会改变曲线的一部分(局部性)
- B样条极为复杂,较难以学习
- 更多关于B样条的学习内容:
- 清华大学-计算机图形学基础(国家级精品课)
- 比如 spline(样条)
Surfaces 曲面
- **贝塞尔曲面 **
- 如何用贝塞尔曲线得到贝塞尔曲面?
- 在两个方向分别应用贝塞尔曲线!
- 如何保证贝塞尔曲面拼接的严丝合缝?不多说咯。
- 曲面在(u, v)参数下的位置:
- 贝塞尔曲面也是显示表示,通过参数(u, v)映射得到
- 网格处理:几何操作
- 网格细分
- 网格简化
- 网格规则化
- 下节课见!