目录

一.隐式几何

1.隐函数(一个简单的理解)

2.隐式几何

3.一些隐式的几何表示法

二.显式几何

1.显函数(一个简单的理解)

2.显式几何

3.一些显示表示的几何

三.曲线  --显示几何表示方法

1.贝塞尔曲线

2.样条曲线

四.曲面

1.贝塞尔曲面

2.网格表示曲面

五.曲面细分

1.Loop Subdivision用于细分三角形

2.Catmull-Clark Subdivision

六.曲面简化

1.边坍缩


一.隐式几何

1.隐函数(一个简单的理解)

2.隐式几何

用隐函数表示的集合,表示将一堆点归类.给一组坐标,隐式表示能看直接看出是否在几何表面.但若要找哪些点在隐式几何上,相对较难.

3.一些隐式的几何表示法

①.数学公式表示,不适合复杂几何

②.CSG,对几何做布尔运算

③.距离函数

用某一点到几何表面最近距离的函数来表示几何.

图例是将两个几个的距离函数blend融合后,在恢复成原来的样子所得到的.

适合几何间圆滑的过渡.

应用距离函数的例子:

把混合后的距离函数,值为0的地方全找出来,就可以恢复物体表面.

-水平集表述法恢复几何

类似地理等高线,找到函数值相同的多个点.

④.分形几何

类似递归

二.显式几何

1.显函数(一个简单的理解)

2.显式几何

能很快知道有哪些点在平面上,但难判断一个点是不是在平面上.

3.一些显示表示的几何

①.点云(不常用)

将物体表面由无数个点表示,list if points(x,y,z)

点云之后会被变成多边形的面.

②.多边形面(常用)

obj文件:

三.曲线  --显示几何表示方法

1.贝塞尔曲线

用一系列的控制点来定义曲线.

曲线起始方向p1p0,结束方向p3p2. 曲线不一定要经过控制点.

. ①.如何用控制点画出贝塞尔曲线

-几何理解

-三个控制点的二次贝塞尔曲线

-四个控制点

-代数理解

b01 = (1-t)b0 + tb1,t==0时,b01==b0

接着递归,继续插值(第一张图t与1-t反了)

下图资料来源计算机图形学十:几何2—贝塞尔曲线(Bézier Curves)与贝塞尔曲面(Bézier Surfaces)

贝塞尔曲线不一定要在平面内,空间上也可以.

-贝塞尔曲线性质:

t==0一定在起点,t==1一定在终点.一定过起点终点与初末控制点连线的切线.

贝塞尔曲线若要仿射变换,则对控制点仿射变换,再画出曲线即可.但还是不满足投影不变.

贝塞尔曲线一定在控制点围成的凸包内

②.逐段贝塞尔曲线

当控制点数量多时,控制效果并不好

则引入逐段贝塞尔曲线,对于长曲线,可以分为一个控制点一组来控制一段曲线,最后将多段曲线拼接.拼接处若切线方向共线则可以平滑拼接.

拼接点位置相同叫c0连续,若切线共线叫c1连续.

2.样条曲线

-B-样条

-基函数

-具有局部性,不会一点动,曲线全动.

四.曲面

1.贝塞尔曲面

在两个反向分别用贝塞尔曲线

不断扫描,变成一个面.

2.网格表示曲面

根据需要选择合适的几何表述方法.

五.曲面细分

-分出更多三角形 -三角形位置发生变化

细分方法:

1.Loop Subdivision用于细分三角形

一个三角形被拆成了四个.

分出新老顶点,分别进行不同操作.

如果更新新的顶点的位置?

对于某新点(白色),用右边的加权平均来更新位置

对于某旧点(图中白点),用公式更新位置.

公式: pos = (1-n*u)original_pos + u * neighbor_pos_sum(相邻旧点的位置和)

n为顶点的度(出度入度的度),若n=3,u=3/16,否则u=3/(8n).

2.Catmull-Clark Subdivision

对于非三角形面的细分.

先定义一些概念:非四边形面,奇异点(度不为四的点).

取非四边形面边上的中点,与非四边形面中点连接.这之后,奇异点增加了2(与之前的非四边形面的数量有关),非四边形面消失了.就好像非四边形面在细分后变成了奇异点.之后的细分不会再增加奇异点数了.

关于点的位置更新公式:

新面中的点,新边中的点,老的点(按顺序对于图中公式)

两种细分对比:

六.曲面简化

提高程序性能

如何简化?

1.边坍缩

将多个顶点捏在一起合成一个新顶点

-二次误差度量Quadric Error Metrics

使简化后的模型能最大程度还原原本的模型.

找到点的一个最优位置,使其到原本平面距离平方和最小

可以对于每一条边,坍缩后选二次误差度量小的边坍缩.利用到堆数据结构,选取最小,更新堆结构,再取...(贪心算法)

资料来源Games101

[计算机图形学入门]9.几何相关推荐

  1. GAMES101-现代计算机图形学入门-闫令琪——Lecture 05 Rasterization 1 (Triangles)

    GAMES101-现代计算机图形学入门-闫令琪--Lecture 05 Rasterization 1 (Triangles) 目录 GAMES101-现代计算机图形学入门-闫令琪--Lecture ...

  2. Games101计算机图形学入门基础之一:向量变换、矩阵变换、视图变换、欧拉角与四元数

    Games101计算机图形学入门基础之一:向量变换.矩阵变换.齐次坐标.欧拉角与四元数 目录 Games101计算机图形学入门基础之一:向量变换.矩阵变换.齐次坐标.欧拉角与四元数 前言 向量 向量加 ...

  3. 计算机图形学十:几何2—贝塞尔曲线(Bézier Curves)与贝塞尔曲面(Bézier Surfaces)

    贝塞尔曲线与贝塞尔曲面 1 贝塞尔曲线(Bézier Curves) 2 贝塞尔曲面(Bézier Surfaces) Reference (本篇文章同步发表于知乎专栏:https://zhuanla ...

  4. 计算机图形学入门-线性代数复习

    本专栏内容整理了GAMES101的计算机图形学课程的主要内容,作为我学习计算机图形学的一份复习备份或叫做笔记.内容中如有错误,或有其他建议,欢迎大家指出. 附上GAMES101计算机图形学课程:GAM ...

  5. Games101计算机图形学入门基础之二:光栅化

    Games101计算机图形学入门基础之二:光栅化 引言 三角形的离散化 采样 走样 走样带来的瑕疵 反走样 先模糊再采样 傅里叶变换 低通滤波 卷积 多重采样抗锯齿(超采样) 深度缓存 可见性与遮挡( ...

  6. 计算机图形学入门(一)-线性代数部分知识1

    本部分主要介绍了向量的点乘与叉乘在图形学中的基本应用,介绍了图形学中常用的2D矩阵变换,例如缩放.对称.切变换.旋转.平移.逆变换.组合变换和分解变换.还有在图形学中为了简化操作而采取的添加维度的方法 ...

  7. 计算机图形学入门(二)-线性代数部分知识2视图变换和投影变换

    本章主要进行了视图/相机变换的求解,和两种投影变换的求解(正交投影.透视投影),并且简单的完善了3D旋转变换的介绍. 主要的学习过程来自下面的视频,本文只会有主要的基础内容,默认一些知识大家是掌握的, ...

  8. OpenGl计算机图形学入门

    OpenGl计算机图形学入门 前言 一.OpenGl及GLSL 二.语言 1.C++及C++应用程序 (1)C++ (2)C++应用程序 三.库 1.GLFW 窗口管理库 2.GLEW 扩展库 3.G ...

  9. 计算机图形学入门总结!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Albert,东南大学,Datawhale成员 Computer ...

最新文章

  1. 选中文字改变默认颜色
  2. java8 升级_java8升级
  3. U盘的挂载和卸载(也可以查看指令篇)
  4. 获取滚动条距离底部的高度
  5. Centos7 重启网卡
  6. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(三)
  7. OpenFeign 的 9 个坑,每个都能让你的系统奔溃
  8. HTML5 FormData实现文件上传实例
  9. latex textbf没有用_把知乎改造成LaTex创作平台
  10. a form 出口享惠情况_进出口报关
  11. MySQL简单技巧(三):教你轻松用information_schema表+python实现表结构同步(上)——理论篇
  12. dede后台系统基本参数空白怎么办?
  13. 洛谷 P1725 琪露诺
  14. Faulty Odometer(进制转化)
  15. 协议大全 http协议 http://www.chinaitpower.com/Net/xieyi/HTTP/index.html
  16. PAT-B 1036. 跟奥巴马一起编程(15)(15 分) 画方型字符
  17. 老照片怎么修复?模糊照片如何变清晰?试试这些方法
  18. Python实验报告 实验16 - Python计算生态
  19. 【数据结构与算法】填空练习题
  20. 计算机改显存会有啥影响,显卡显存越大越好吗?显存对电脑速度的影响有哪些?...

热门文章

  1. 通过session爬取我要自学网会员中心的账号信息
  2. Alfred Workflow 入门指南
  3. 最新版安全狗(v4.0.2.665) 文件上传 绕过
  4. DAE模型——阅读和理解COLLADA文档(2)
  5. 数字图像处理实验——数字图像处理初步
  6. 油猴Tampermonkey及其脚本的安装
  7. 九针串口接线问题, 232, 485
  8. DMC-Net: Generating Discriminative Motion Cues for Fast Compressed Video Action Recognition 论文赏析
  9. 新H5中用canvas画一个数字钟表
  10. 【普】静态IP和动态IP有什么区别?