当前位置: 首页 > news >正文

计算机图形学之几何(Geometry)

Geometry(几何)

笔记来源:
Lecture 10 Geometry 1 (Introduction)
Lecture 09: Introduction to Geometry (CMU 15-462/662)

How can we describe geometry?

如果图像过于复杂,则使用三角形对其进行表示可能有些困难,这时就需要其他表示方法

显式表示和隐式表示


下图截自Implicit surface

0. Curves and Surface

0.1 Curves

camera path
相机按照path运动

animation curves
模型按照curves运动

vector fonts
curves可以制造字体

0.2 Surface

1. Implicit Representation

隐式表示:表面上的点满足特定关系,如 x 2 + y 2 + z 2 − 4 = 0 x^2+y^2+z^2-4=0 x2+y2+z24=0,即 F ( x , y , z ) = 0 F(x,y,z)=0 F(x,y,z)=0。缺点:判断哪些点在表面上较难。优点:容易判断某些点在表面的内部( F ( x , y , z ) < 0 F(x,y,z)<0 F(x,y,z)<0)还是外部( F ( x , y , z ) > 0 F(x,y,z)>0 F(x,y,z)>0


1.1 Algebraic Surface

1.2 Constructive Solid Geometry

简单几何体之间进行布尔运算得到复杂几何体

1.3 Level Set Method



1.4 Blobby Surfaces


1.5 Fractals

1.6 Blending Distance Function

2.Explicit Representation

显式表示要么直接定义点的位置,要么通过参数定义点的位置
参数映射将平面中某点映射到空间中某点

2.1 Point Cloud

2.2 Triangle Meshes

2.3 Polygon Meshes

2.4 Bezier Curves and Surfaces

Bezier Curves


如何画一条贝塞尔曲线?De Casteljau algorithm
在控制点连接的每一条线段上找同一个时间 t t t(参数)对应的点的位置,将相邻线段上的相同时间的点连接起来,最终两个相邻线段成为一条线段,此线段上时间 t t t处的点就是曲线上的点。




控制点的移动会影响曲线的形状



若令 s = 1 − t s=1-t s=1t,则各项系数就是 ( s + t ) 2 (s+t)^2 (s+t)2的展开式 s 2 、 2 t s 、 t 2 s^2、2ts、t^2 s22tst2

贝塞尔曲线的代数表达式是一个多项式,即Berstein polynomials





当控制点多的时候(高阶贝塞尔曲线)不太好利用中间的控制点进行控制得到想要的形状

上面应用中一次用所有的控制点绘制一个贝塞尔曲线(一次定义),能否用其中的某几个控制点绘制一段贝塞尔曲线然后将各段相连(逐段定义),常用4个控制点(三次贝塞尔曲线)去定义一段贝塞尔曲线


多段贝塞尔曲线拼接过程中如何保证连接处的连续性?连接处的两个线段所在的切线方向一致,模长相等


Bezier Surfaces

横向来看每条贝塞尔曲线有4个控制点,四条贝塞尔曲线,纵向以时间t为参数连接四条曲线上的点形成曲线,该曲线滑动构成贝塞尔曲面



2.5 Spline

Spline

样条意思是指通过一组给定点集来生成平滑曲线的柔性带。此概念源于生产实践,“样条”是绘制曲线的一种绘图工具,是富有弹性的细长条。绘图时用压铁使样条通过指定的形值点(样点),并调整样条使它具有满意的形状,然后沿样条画出曲线。
在计算机科学的计算机辅助设计和计算机图形学中,样条通常是指分段定义的多项式参数曲线。由于样条构造简单,使用方便,拟合准确,并能近似曲线拟合和交互式曲线设计中复杂的形状,样条是这些领域中曲线的常用表示方法。–引用自:样条


B-Splines
B样条是对贝塞尔曲线的扩展,在贝塞尔曲线中移动某一个控制点会使得整个曲线发生变化,如果我们只是对曲线中其他范围的曲线较为满意,而对某一个较小范围的部分曲线不满意,我们只想在修改较小范围的曲线时不影响其他范围内的曲线变化,在B样条中实现了对曲线在可控范围内的修改

2.6 NURBS(Non-Uniform Rational B-Spline)

非均匀有理B样条

2.7 Subdivision Surfaces



相关文章:

  • Spring 事件监听机制的使用
  • Spring 中的 @Configuration @Bean注解
  • UE5 像素推流
  • 在UI 原型设计中,交互规则有哪些核心要素?
  • 数值积分知识
  • 【嵌入模型与向量数据库】
  • 阿里巴巴java开发手册
  • jupeter 安装流程
  • dify 连接不上ollama An error occurred during credentials validation:
  • 基于EFISH-SCB-RK3576/SAIL-RK3576的智慧路灯控制器技术方案
  • mysql数据库配置
  • 【大模型】OpenManus 项目深度解析:构建通用 AI Agent的开源框架
  • Java—— 双列集合Map的实现类
  • 网络套接字(二)
  • vue2+ThinkPHP5实现简单大文件切片上传
  • 软件逆向基础-扫雷篇
  • copy_paste
  • 力扣-98.验证二叉搜索树
  • OA 系统办公自动化包含哪些内容,关键功能模块与操作要点说明
  • CodeBuddy 接入 MCP,一键生成网站!
  • 科普|男性这个器官晚到岗,可能影响生育能力
  • 马上评|这种“维权”已经不算薅羊毛,涉嫌犯罪了
  • 崔登荣任国家游泳队总教练
  • 多家外资看好中国市场!野村建议“战术超配”,花旗上调恒指目标价
  • 习近平同巴西总统卢拉共同会见记者
  • 外交部亚洲司司长刘劲松会见印度驻华大使罗国栋