首页 > 其他分享 >Games101-Cp4-Geometry

Games101-Cp4-Geometry

时间:2023-06-22 22:22:18浏览次数:35  
标签:Geometry 曲线 贝塞尔 几何体 曲面 顶点 Games101 Cp4 对应

几何表示方法

  • 隐式表达
    对应通过隐函数表示点的相对位置,而不是空间的具体位置。具体有:代数公式、水平集、分形/自相似(fractals)、CSG(constructive solid geometry):通过简单几何体的布尔运算获得复杂的几何体、距离函数:指的是到几何体点的最小距离,当两个几何体的点近,通过融合距离函数,生成新的几何体。
    优点:易于确定点是否处于面上、体的内部或者外部,直接通过代入就可以判断。
    坏处:对于一些复杂几何难以表示。
  • 显式表示
    将所有点的空间表示出来或者通过参数映射。点云、几何面。

曲线

  • 贝塞尔曲线
    这里介绍的是四个控制点的贝塞尔曲线。

\[b^n(t) = b^n_0 (t) = \sum_{j=0}^n b_j B_j^n(t) \\ B^n(t)=\sum_n^i t^i (1-t)^{n-i} \]

对应贝塞尔曲线的性质有 1)\(b(0)=b_0\) $ b(1)=b_3$. 2)曲线上的点被对应的得出的线相切。 3)仿射变换,对控制点做仿射变换与对曲线上的点做仿射变换一个效果。 4)凸包,曲线会在控制点的凸包内。

  • 逐段贝塞尔

  • Splines 样线

  • B-Splines

曲面

贝塞尔曲面

网格增量

网格增量实际上就是增加Mesh的点数以及三角形,在管线中对应着曲面细分阶段。

  • Loop细分
    主要分为两步:1.增加三角形 2.调整位置,使曲面光滑。Loop细分将一个三角形分成四个,并且根据权重重新分配新丁点位的位置。对应新顶点的位置由上下两个三角形四个顶点的位置确定,对应\(A,B\)为水平顶点,\(C,D为上下顶点\):

\[E = \dfrac{3}{8}(A+B) + \dfrac{1}{8}(C+D) \\ (1-n\cdot u)\cdot 原顶点坐标 + u \cdot 相邻顶点坐标之和 \\ n为顶点的度 \]

  • Catmull-Clark细分
    这是更普通的情况,不止用于三角面。对应取每条边的中点进行一次细化,细化后会在非四边形面中取得新的奇异点,但全部的非四边形面会消失。

曲面细减

  • 边坍缩
  • 二次误差度量
    二次误差确定新的顶点应该是最小化面积距离的总和(\(L2\)距离)

这里对应着作业四,就是贝塞尔曲线,就不拓展讲通过递归的方式就能得到对应的结果。
几何这里很多内容games102有对应的内容。看后面工作有没有用到再根据具体实现。感谢你看到这里,Cheers!

标签:Geometry,曲线,贝塞尔,几何体,曲面,顶点,Games101,Cp4,对应
From: https://www.cnblogs.com/xkyl/p/17492447.html

相关文章

  • Games101-Cp3-Shading
    Shading的过程就是对物体应用材质的过程。Shading\(\not=\)Shadow。着色模型不包括阴影。Z-Buffering深度缓存用于做深度测试时对深度进行比较。在\([0,1]\)之间取值。应该是可视范围与深度的相除?在开启深度测试的时候,与深度缓存进行比较。如果小于对应像素的深度值则绘制。B......
  • YOKOGAWA CP451-10
    W;① ⑧ 0 ③0 ① 7 7 ⑦ 5 ⑨YOKOGAWAYNT511DYOKOGAWA PW501YOKOGAWA AIP578 YOKOGAWA AIP171从IntelAtom四核1.9GHz到IntelCeleron2GHz的不同CPU版本可实现应用程序优化的计算能力,因此可视化、图像处理、PLC、运动、机器人和CNC可以在单......
  • Three.js系列-报错export ‘Geometry‘ (imported as ‘THREE‘) was not found in ‘
    今天遇到报错export'Geometry'(importedas'THREE')wasnotfoundin'three'port'Geometry'(importedas'THREE')wasnotfoundin'three'(possibleexports:ACESFilmicToneMapping,AddEquation,AddOpe......
  • 计算机图形学入门——GAMES101第一课笔记
    一、光栅化将三维空间的几何形体显示在屏幕上,就是光栅化(Rasterization)。 虎书中有这么一段话: Theprocessoffindingallthepixelsinanimagethatareoccupiedbyageometricprimitiveiscalledrasterization;即光栅化就是找到所有被几何原型所占据的所有像素点......
  • GAMES101 VS2019 2022环境配置
    GAMES101VS20192022环境配置Eigen库的配置在官网https://eigen.tuxfamily.org/index.php?title=Main_Page中下载Eigen库的zip格式。将压缩包解压为eigen3同时解压到指定路径,我这里为D:\include\eigen3。使用VS2019创建一个空项目,将代码框架的头文件和源文件加入到项......
  • Three.js教程:设置Geometry顶点位置、顶点颜色数据
    推荐:将NSDT场景编辑器加入你的3D工具链其他系列工具:NSDT简石数字孪生  前面几篇文章通过缓冲类型几何体BufferGeometry给大家讲解了顶点位置、颜色、法向量、索引数据,本节课给大家引入一个新的threejs几何体APIGeometry。几何体Geometry和缓冲类型几何体BufferGeometry表达的......
  • Three.js教程:Face3对象定义Geometry的三角形面
    推荐:将NSDT场景编辑器加入你的3D工具链其他系列工具:NSDT简石数字孪生Face3对象定义Geometry的三角形面几何体Geometry的三角面属性geometry.faces和缓冲类型几何体BufferGeometry顶点索引属性BufferGeometry.index类似都是顶点位置数据的索引值,用来组织网格模型三角形的绘制。......
  • JTS空间坐标Geometry使用
    Geomtery子类图创建GeometryGeometryFactorygeometryFactory=JTSFactoryFinder.getGeometryFactory();//点Coordinatecoord=newCoordinate(1,1);Pointpoint=geometryFactory.createPoint(coord);//线Coordinate[]coordinates=newCoordinate[]{newC......
  • 12 Geometry
    关键点MeshSubdivision(LoopSubdivision,Catmull-ClarkSubdivision)MeshSimplification(EdgeCollapsing)MeshRegularization1.MeshOperarions1.1MeshSubdivision--Upsampling细分细分:把三角形数量增多调整:改变三角形的位置1.1.1LoopSubdivision每个三角形......
  • 11 Geometry(Curves and Surface)
    关键点BezierCurvesBezierSurfaces1.BezierCurves贝塞尔曲线用一系列的控制点定义一个曲线,并且定义了一系列控制。如下定义起止点为p0、p3,且定义起始切线,则绘制出一条曲线。1.1deCasteljauAlogrithmThreeinputpoints定义一个时间t,然后取b0b1与b1b2的相应比......