- Algorithm
- Incremental Method
- Simulation
- Backtracking
- Dynamic Programming
- Largest Empty Interval
- Location Allocation Problem
- Knapsack Problem
- Algorithm Analysis
- Data
- Sort
- Set
- 排序资料结构: Search Tree 系列
- Sequence 资料结构: Array / List
- 大量 Point 资料结构: k-Dimensional Tree
- Region 资料结构: Uniform Grid
- Graph
- Tree 资料结构: Heavy-Light Decomposition
- Graph Spectrum(Under Construction!)
- Tree
- Binary Tree
- Directed Acyclic Graph
- Articulation Vertex / Bridge
- Reachability
- Bipartite Graph
- Clique(Under Construction!)
- Planar Graph
- Path
- Single Source Shortest Paths: Label Correcting Algorithm
- Shortest Walk
- Cycle
- Spanning Tree
- s-t Flow
- Feasible s-t Flow
- Cut
- Matching
- T-Join
- Hamilton Circuit
- Domination
- Coloring
- Labeling
- Vector Product
- Sweep Line
- Rectangle
- Rectangle
- Polygon
- Convex Hull
- 3D Convex Hull(Under Construction!)
- Half-plane Intersection
- Voronoi Diagram
- Triangulation
- Metric
- Number
- Sequence
- Function (ℝ)
- Matrix
- Root Finding
- Linear Equations
- Functional Equation
- Optimization
- Interpolation
- Curve
- Regression
- Estimation
- Clustering
- Transformation(Under Construction!)
- Wave (ℝ)
- Representation
- Signal
- State(Under Construction!)
- Markov Chain
- System(Under Construction!)
- Markov Model
- Function
- Gray Code
- Base
- Divisor
- Prime
- Residue
- Lattice
- Series(Under Construction!)
- Average Number
- Nim
- String
- Longest Increasing Subsequence
- Longest Common Subsequence
- Approximate String Matching
- String Matching
- String Matching
- String Matching: Inverted Index
- Count Substrings
- Palindrome
- Language
- Code
- Compression
- Correction
- Encryption
- Transmission
- Data
- Text
- 2D Graphics
- Audio
- Audition(Under Construction!)
- Image
- Vision(Under Construction!)
- Model
- Motion(Under Construction!)
- Camera(Under Construction!)
- Glass(Under Construction!)
- Computer
- Physics
- Biology
- Medicine
- Finance
- Education
- Standard Library
Model
Model(Shape)(Surface)
模型。物体的造型。科学家目前专注于物体的表面形状。
Scanning
扫描。实体变模型。
Modeling
产生模型。有两种方式:
一、使用硬体,操作相机、光达,撷取真实世界的物体形状。知名硬体如 Kinect。
二、使用软体,操作滑鼠、绘图板,创作自己心仪的物体形状。知名软体如 SketchUp、AutoDesk 系列作。
网路上已经有许多现成的 模型资料库 ,大家可以使用他人制作的模型,不必自己亲手设计模型。
Printing
列印。模型变实体。
Rendering
渲染。显示模型。有两种方式:
一、显示于二维平面,例如液晶萤幕、投影幕。
二、显示于三维空间,科学家正在研究当中。
属于 Graphics 领域,容后介绍。
Animation
动画。操控并且显示模型。
属于 Animation 领域,容后介绍。
使用 C/C++处理模型
C 与 C++本身没有处理模型的函式库。大家倾向直接使用现成的函式库,例如 libigl 、 OpenMesh 、 CGAL 。
使用现成软体处理模型
SketchUp 、 AutoCAD 、 Rhinoceros 3D 。
课程资料
https://www.coursera.org/learn/interactive-computer-graphics http://www.hao-li.com/cs599-ss2015/ http://kevinkaixu.net/ http://www.geometrysummit.org/summerschool/presentations.html http://homes.cs.washington.edu/~seitz/talks/3Dhistory.pdf
Model Data Structure
Point Cloud(Surfel)
“点云”。大量的点座标,皆位于物体表面。
点云是以仪器扫瞄物体所得到的原始资料,仪器是相机、雷射、声纳等等。根据仪器的功能,点座标还可以附加其他资讯,比如颜色、法向量。
大家习惯将点云转换成其他资料结构,减少资料量,减少处理时间。
Mesh
“网格”。大量的平坦多边形。通常是三角形或四边形。
一个三角形有三个顶点座标。三角形的顶点顺序,决定了三角形的正面:正视三角形的正面,我们习惯让三角形顶点呈逆时针顺序。依照顶点顺序计算 叉积 ,得到三角形的正面的法向量。这是大家约定俗成、心照不宣的规矩。
资料结构鲜用一维阵列,而常用两个一维阵列:一个阵列记录每个点的座标、另一个阵列记录每个三角形的三个点的编号。由于三角形经常共用顶点,因此两层式的资料结构,得以节省记忆体空间。
大家习惯使用网格。优点是计算方便,只有点与边。缺点是失真,稜稜角角。
Parametric Surface
“参数表面”和“网格”概念相仿,连续与离散的差别而已。
“参数表面”。大量的曲面。通常是 Bézier surface 或 NURBS surface 。
Voxel
“体素”。整数格点有著数值。通常是 Boolean 或实数。
订立临界值,等于此临界值的地点,当作表面。调整临界值,以扩张或收缩表面。
资料结构鲜用三维阵列,而常用 八元树 。有人把体素的八元树称作 sparse voxel octree。
体素和像素概念相同,差别仅在于:像素数值通常是 RGB 颜色、体素数值通常是物质密度。
建立体素,通常是以超音波、核磁共振等仪器,扫描真实物体,取得各种直线轨道的数值;然后实施演算法,估计每一个体素的数值。请参考 image reconstruction 。
亦可手动设定体素数值,打造心仪模型。例如 MagicaVoxel 。
亦可运用特殊乱数,决定每一个体素的数值,打造特殊模型。例如三维版本的 Perlin noise ,可以打造云雾。请参考 这份讲义 。
Isosurface(Implicit Surface)
“等值表面”和“体素”概念相仿,连续与离散的差别而已。
“等值表面”。处处皆有数值。通常是实数。
以一个连续函数,决定每一个地点的数值。订立临界值,等于此临界值的地点,当作表面。调整临界值,以扩张或收缩表面。甚至累加多个函数,得到特殊的表面形状。
知名范例是 blobby surface:运用“球体”的数学函数,打造球体模型;改用“淡出的球体”的数学函数,例如三维常态分布,打造球体模型;令多个三维常态分布相加,打造宛如肥皂泡的模型。
以连续函数建立模型,优点是 100%精确,无论如何缩放,细节依旧清晰,没有任何偏差。
顺带一提,等值曲面有一个特例是 distance field,能产生模型的联集、交集、补集。请参考 isosurface rendering 。
Point Cloud Registration
登记。多台相机于多个位置拍摄相同景物,各得一群点云。把所有点云整合到同一个世界座标系,校正误差。
请参考 对齐 的演算法。
Point Cloud ⇨ Mesh
crust algorithm :先求 Voronoi diagram,纳入其顶点再求 Delaunay triangulation。 改良版本 。
Ruppert's algorithm :美化既有的 Delaunay triangulation。
Poisson surface reconstruction :一、point cloud ⇨ voxel:体素数值内 1 外 0。点云法向量等于体素梯度,再以体素梯度求解体素数值,即是解 Poisson equation。二、voxel ⇨ mesh:体素储存于八元树,套用八元树版本的 marching cube。 程式码与模型 。
Voxel ⇨ Mesh
marching cube :观察一个立方体:8 个体素、12 条边。根据 12 条边的端点大小关係,决定网格位置。 这是程式码 。 改良版本 。
dual contouring :额外知道每个体素的梯度,得以制造美观网格。
Parametric Surface ⇨ Mesh
变成三角形:每一个曲面切成 n×n 格,每一格沿对角线切成两个三角形,就这麽简单。越多格,越细腻,越逼真。
变成平坦四边形:我不知道怎麽做。
Model Editing(Under Construction!)
Mesh Parameterization
参数化。表面建立座标系统,方便贴图、组装。
Mesh Consolidation
巩固。贴齐、拉直、摆正。
Mesh Fairing
平滑化。维持模型的基础结构,抚平模型的形状。
Mesh Deformation
形变。维持模型的基础结构,改变模型的形状。
Shape Correspondence
对应。两个模型找到相对应的部件。
Shape Matching
匹配。找到给定的部件。
手绘 3D 模型
绘制曲线,产生表面。
Model Fabrication(Under Construction!)
Model Fabrication
Model Optimization
Model Compositing
合成。组装模型。
Model Blending
合成。剪接模型。
Model Segmentation(Model Decomposition)
分段。区分模型的各个部件。
http://cg.cs.uni-bonn.de/en/projects/point-cloud-processing-with-primitive-shapes/ Dapper: decompose-and-pack for 3D printing
Model Carving
Model Boxelization
https://www.disneyresearch.com/project/boxelization/
Model Assembling
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论