首页 > 其他分享 >Lecture 10 Geometry 1 (Introduction)

Lecture 10 Geometry 1 (Introduction)

时间:2024-03-24 12:11:23浏览次数:25  
标签:Geometry geometry 图形学 Introduction SDF 几何 Lecture 隐式

Lecture 10 Geometry 1 (Introduction)

Examples of geometry 几何的例子

  • 不同形状的几何
  • 光滑的曲面
  • 复杂的模型、位置摆放
  • 布料
  • 水滴
  • 城市(复杂在东西多)
    • 怎么存储
    • 怎么渲染这么大级别的东西
      • 离得远的情况下如何简化几何模型
      • 如何利用光线之间的连续性
  • 毛发
  • 微观几何
  • 树枝、树叶

Various representations of geometry 几何的不同表示方式

图形学中将几何分为两类Implicit隐式和Explicit显式

根据需要来选择表示方法

Implicit geometry隐式几何

  • algebraic surface (不直观)

  • Level Sets (水平集)

    • 水平集的表述类似距离函数,区别在于水平集的表述写在格子上,只需要找到值为0的地方,就可以把水平集试图描述的几何提取出来(在地理上的应用为等高线)

    • 水平集也可以定义在三维空间上的格子

      如果有一个三维纹理表示的是人体不同位置的密度,则可以提取出密度等于某一特定值的几何形体

    • 水花也可以通过水平集或距离函数的方式描述

  • Distance Functions

    对于任何一个几何,都不直接描述表面,而去描述空间任何一个点到这个表面的最近距离(可以是正的或是负的)

    • SDF

      黑色表示遮挡,白色表示未被遮挡,我们想要A运动到B的图像,若是简单混合AB,得到的结果为前\(2/3\)都为遮挡

      运动SDF(S表示signed),在遮挡边缘处有接近\(0\)的值,远离\(0\)的地方根据正负做出来,于是能根据AB得到两张渐变的图\(SDF(A)和SDF(B)\),再将\(SDF(A)和SDF(B)\)做\(blend\)操作,再恢复成不是SDF的图,可以得到左边是黑的,右边是白的

    • 水花也可以通过水平集或距离函数的方式描述

  • Constructive Solid Geometry (CSG)

    定义一些简单运算,通过基础几何和简单运算形成复杂几何

    如Max、Maya都支持这种表示方法

  • Fractals 分形

    自相似,类似递归

    在图形学中应用不多,很难控制形状,因为变化频率过快,引起走样

  • ...

隐式几何建立在将点归类的基础上

  • 满足特定关系的点

    如球面:所以点都在\(x^2+y^2+z^1=1\)的三维空间上

    更通用的情况\(f(x,y,z)=0\)

对于一个隐式几何,很难知道它是什么形状

易于查询

好处是很容易判断一个点在不在该几何形体上或内外

适合描述拓扑结构

难以描述复杂形状

将点带入表达式,若结果为负代表点在物体内,正的代表在物体外

Explicit geometry显式几何

  • point cloud

    • 最简单的表示:一组点\((x,y,z)\)

    • 可以简单地表示任何几何

    • 三维空间扫描通常得到一堆点云(>>1 point/pixel)

    • 经常转化成多边形面

    • 很难绘制出采样不充分的区域

  • triangle meshes

  • Bezier surfaces

  • polygon mesh

    • 存储顶点和多边形(通常是三角形或四边形)

    • 很容易用于处理/模拟,自适应采样

    • 数据结构更加复杂

    • 在图形学中最广泛的显式表示方式

    • 例:The Wavefront Object File(.obj)文件(不同于编译出的obj文件)

      该文件定义了顶点(\(v\))、法线(\(vn\))、纹理坐标(\(vt\))、三角面(\(f\),格式为\(v/vn/vt(第几个顶点/第几个纹理坐标/第几个法线)\))

  • subdivision surfaces, NURBS(非均匀有理B样条)

  • ...

所有点都被直接给出(如一个三角形面、模型),或通过parameter mapping(参数映射)的方法给出

输入\(uv\)得到\(xyz\),只需输入所有uv,就能得到所有点

\(f(u,v)=((2+\cos u)\cos v,(2+\cos u)\sin v,\sin u)\)

而显示表达很容易显示形状

但判断点是否在几何内外就变困难了,除非判断出是什么形状了

标签:Geometry,geometry,图形学,Introduction,SDF,几何,Lecture,隐式
From: https://www.cnblogs.com/Tellulu/p/18092221

相关文章

  • Lecture 06 Rasterization 2 (Antialiasing and Z-Buffering)
    Lecture06Rasterization2(AntialiasingandZ-Buffering)Antialiasing反走样采样理论发生在不同位置(如照相)发生在不同时间(如动画)SamplingArtifacts(指图形学中的错误、看上去不对的地方、瑕疵)锯齿摩尔纹Wagonwheeleffect行进的车轮看起来似乎是向后转的......
  • Lecture 08 Shading 2 (Shading, Pipeline and Texture Mapping)
    Lecture08Shading2(Shading,PipelineandTextureMapping)ShadingfrequenciesP1每个面着色一次P2每个顶点着色一次,每个三角面内插值P3每个像素着色一次FlatShading(逐三角形)每个三角面是一个平面,只有一个法线在光滑表面效果不好Gouraudshading(逐顶点)每个......
  • Lecture 05 Rasterization 1(Triangles)
    Lecture05Rasterization1(Triangles)什么是屏幕一组像素数组的大小:分辨率一种典型的光栅成像设备光栅光栅化==画在屏幕离像素一个个小方块,每个方块中的颜色不会变化(实际上不准确,这样描述只是方便理解)颜色是RGB三个值的混合定义屏幕空间像素的坐标写成\((x,......
  • Lecture 02 Review of Linear Algebra
    Lecture02ReviewofLinearAlgebra图形学的依赖基础数学线性代数微积分统计学基础物理光学力学杂项信号处理数值分析一点美学向量(数学上称为向量,物理上称为矢量)\(\vec{AB}\)=B-A向量表示方向和长度向量的大小\(\Vert\vec{a}\rVert\)单位向量\(\wi......
  • [Container] Introduction to Kubernetes
    DefineKubernetesAlsoknowasK8S,isanopen-sourcesystemforautomatingdeployment,scaling,andmanagementofcontainerizedapplications.Anopensourcecontainerizationorchestrationpaltform.Easolyportableacrosscloudsandon-premisesIncludes......
  • 闫令琪计算机图形学入门---Lecture 02 笔记
    本节课主要讲了计算机图形学中要用到的线性代数知识,包括向量的点乘、叉乘以及矩阵的乘法,属于很基础的一节课。点乘点乘的性质如下:点乘满足交换律、结合律、分配律用途:1、点乘可以用于将一个向量投影到另一个向量上      2、点乘可以计算两个向量之间的角度,比......
  • Qt中关于setGeometry()函数的问题
    setGeometry是相对于父窗体来说的一种对子窗体进行位置设置的方法。当我用在不同的窗体的时候发现有不同的形式QMainWindow和QWidget都是相对父窗体来说的,可是QDialog用上这个设置位置的函数,却是相对于桌面而言的。但是按照道理,他们都是继承的QWidget,setGeometry这个函数的功能......
  • matlab教程_台大lecture2
    scriptwriting程序撰写保存为.m运行:F5 保存时候大小写有区别,字母开头注释:% 形成区块:%%(在debug时候很有用),可以分别运行各个部分的内容 debug:设置断点,类似于c语言中的,可以看变量的值Tips:选中后右键可以智能缩进structuredprogramming2.scriptflow:写程序的一些......
  • matlab教程_台大lecture1基本操作和矩阵输入
    matlab教程视频matlabascalculatorcommendline直接用命令行计算部分ans是结果运算法则和平时一样((),^乘除加减)onlinehelpeg:helpsin&直接搜索嵌套式公式sin(cos(pi))==cos(pi)sin(ans)其中,ans是第一个的结果变量可以用who查看变量,whos详细信息一些保留......
  • [CS61A-Fall-2020]学习记录四 Lecture4中有意思的点
    首先,本文不是总结归纳,只是记录一些有趣的知识点罢了assert课堂中在讲授函数,如frommathimportpidefarea_circle(r):returnr*r*pi但老师提出,当r为-10时,函数不会报错,于是引入assert来检测参数frommathimportpidefarea_circle(r):#参数应为正数......