GAMES101笔记 Lecture11 Geometry 2(Curces and Surfaces)

news2024/12/24 10:31:51

目录

      • Explicit Representations in Computer Graphics(计算机图形学中的显式几何表示)
        • Point Cloud(点云)
        • Polygon Mesh(多边形网格)
        • The Wavefront Object File(.obj) Format(OBJ格式文件)
      • Curves(曲线)
        • Bezier Curves(贝塞尔曲线)
          • Defining Cubic Bezier Curve With Tangents(定义带切线的贝塞尔曲线)
          • Bezier Curces - de Casteljau Algorithm(贝塞尔曲线的绘制算法)
          • Evaluating Bezier Curves Algebraic Formula(贝塞尔曲线的代数表示)
          • Properties of Bezier Curves(贝塞尔曲线的性质)
          • Piecewise Bezier Curves(分段的贝塞尔曲线)
          • Piecewise Bezier Curve - Continuity(分段贝塞尔曲线的连续性)
        • Other types of splines(其它种类的样条)
      • Surfaces(曲面)
        • Bezier Surfaces(贝塞尔曲面)
      • 参考

Explicit Representations in Computer Graphics(计算机图形学中的显式几何表示)

在图形学中有许多几何的显式的表示方式:

  • Triangle meshes(三角网格)
  • Bezier surfaces(贝塞尔曲面)
  • Subdivision surfaces(细分曲面)
  • NURBS(非均匀有理B样条)
  • Point Clouds(点云)

Point Cloud(点云)

最简单的表示方式:给定一些点的集合 ( x , y , z ) (x, y, z) (x,y,z)

可以很容易表示任何形状的几何。

对于大型数据集非常有效。

通常会被转换为多边形网格。

在采样不足的区域难以绘制。

在这里插入图片描述

Polygon Mesh(多边形网格)

该方法用的最多的方法,得到了最广泛的应用。

尤其是三角形和四边形。

更容易做处理、模拟、自适应采样等。

在三角形之间的连接关系等,需要更复杂的数据结构。

在这里插入图片描述

The Wavefront Object File(.obj) Format(OBJ格式文件)

这是一种文本文件,将顶点、法线、纹理坐标分别进行表示,并存储各个顶点和面的连接关系等。

通常用于图形学的研究。

在这里插入图片描述

Curves(曲线)

Bezier Curves(贝塞尔曲线)

Defining Cubic Bezier Curve With Tangents(定义带切线的贝塞尔曲线)

给定一些控制点。

起始点和终止点一定需要在 p 0 p_0 p0 p 3 p_3 p3上。

起始点的斜率必须要在 p 0 p 1 p_0p_1 p0p1方向,终止点的斜率必须要在 p 2 p 3 p_2p_3 p2p3方向。

并不要求曲线一定经过所有控制点。
在这里插入图片描述

Bezier Curces - de Casteljau Algorithm(贝塞尔曲线的绘制算法)

考虑给定三个控制点的贝塞尔曲线(二次贝塞尔曲线)。

假定 b 0 b_0 b0是在时间 t = 0 t = 0 t=0时的点, b 1 b_1 b1是在时间 t = 1 t = 1 t=1的点。

现在问题转换为,给定任意一个时间 t ∈ [ 0 , 1 ] t \in [0, 1] t[0,1],求出这个曲面上的点应该位于哪里?

假设,现在我们需要找到 t = 1 3 t = \frac{1}{3} t=31时的点:

  1. 我们分别在 b 0 b 1 b_0 b_1 b0b1上和 b 1 b 2 b_1b_2 b1b2上找到位于 1 3 \frac{1}{3} 31位置的点,分别设为 b 0 1 b_{0}^1 b01 b 1 1 b_{1}^{1} b11
  2. 将这两个点连接起来。
  3. b 0 1 b_{0}^1 b01 b 1 1 b_{1}^{1} b11之间再找到位于 1 3 \frac{1}{3} 31位置的点。
  4. 那么这个点就是贝塞尔曲面在时间 t t t定义的点。

如果我们要画出曲线,我们只需要枚举时间 t t t即可。

这是一个递归的算法。

给定四个控制点的贝塞尔曲线做法也同理:

在这里插入图片描述

Evaluating Bezier Curves Algebraic Formula(贝塞尔曲线的代数表示)

例子:二次贝塞尔曲线

在这里插入图片描述
在这里插入图片描述
总结一下:
给定 n + 1 n + 1 n+1个控制点,可以得到 n n n阶贝塞尔曲线:

在这里插入图片描述
其中,下图中的多项式就是伯恩斯坦多项式。
在这里插入图片描述

Properties of Bezier Curves(贝塞尔曲线的性质)
  • 一定过起止点。
  • 起点和终点切线方向一定沿初始方向。
  • 在仿射变换下,直接对各个顶点做仿射变换后再画出一条贝塞尔曲线等价于直接对原始贝塞尔曲线做仿射变换。
  • 曲线一定在控制点的凸包内。
Piecewise Bezier Curves(分段的贝塞尔曲线)

考虑高阶贝塞尔曲线,可能会出现不符合实际情况的曲线:

在这里插入图片描述
我们可以通过拼接一些低阶贝塞尔曲线来解决这个问题:

在这里插入图片描述

Piecewise Bezier Curve - Continuity(分段贝塞尔曲线的连续性)
  • C 0 C^{0} C0连续: a n = b 0 a_n = b_0 an=b0第一段的终点等于第二段的起点。
  • C 1 C^{1} C1连续: a n = b 0 = 1 2 ( a n − 1 + b 1 ) a_n = b_0 = \frac{1}{2}(a_{n - 1} + b_1) an=b0=21(an1+b1)切线连续。
  • C 2 C^{2} C2连续,曲率连续。

Other types of splines(其它种类的样条)

样条:
穿过一系列给定的点,并有一定数量的连续导数。

简而言之,一个可控的曲线。
在这里插入图片描述

B样条:

在这里插入图片描述

Surfaces(曲面)

Bezier Surfaces(贝塞尔曲面)

在这里插入图片描述

参考

GAMES101 Lecture11

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/754640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

el-checkbox和el-switch绑定一个Number值

因为我们对状态这种字段,后端一般返回的是Number值。0为正常,1为停用。 el-switch,el-checkbox这种控件呢,一般是绑定布尔值的。原来我的做法是使用value和change事件来做转换,而不是v-model。但是后来发现&#xff0c…

row_number 和 cte 使用实例:按照队列进行数据抵消

row_number 和 cte 使用实例:按照队列进行数据抵消 问题来源模拟数据使用 cte使用sum结合开窗函数结合 row_number 最终实现完整的模拟代码小结问题来源 今天无聊的翻了翻以前的论坛的帖子。。。嗯,想把一些没有什么价值的消息记录给删除掉,就是那些专家分获取记录。 毕竟,…

二次元少女-InsCode Stable Diffusion 美图活动一期

一、 Stable Diffusion 模型在线使用地址: https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型相关版本和参数配置: 模型版本:chilloutmix_NiPrunedFp32Fix.safetensors 采样方法(Sampler)Sampling method:DPM SDE …

Elasticsearch--客户端

Es客户端 语言无关 ​ java最常用的客户端是Java Client、Java Rest Client、Java Transport Client Java Client 从es7.17开始,官方推出Java Client,并且将Java Rest Client标为Deprecated(过期) 要求jdk至少要jdk8 具体用法…

大模型技术发展概述 -(四)

文本内容参考论文《A Survey of Large Language Models》 论文标题:A Survey of Large Language Models 论文链接:https://arxiv.org/pdf/2303.18223v10.pdf 大模型技术发展概述 -(四) 6. 使用方法6.1 上下文学习6.1.1 提示形式6.…

网络套接字编程(三)(HTTP)

gitee仓库:https://gitee.com/WangZihao64/linux/tree/master/CalTcp 一、重谈协议 协议是一种“约定”,这种约定是双方都知道的。有了一致的约定,双方才能够正常地进行通信。协议在网络的第一篇博客中也提到过,协议是双方进行通…

uniapp中H5定位功能实现

1.要实现该功能 必须使用vue-jsonp进行跨域 JSONP是一种跨域数据请求的解决方案,它使用script元素来请求数据,再利用回调函数将数据传回页面。 Vue框架提供了对JSONP的支持,可以方便地在Vue应用中使用JSONP获取跨域数据。下面我们来了解一下…

【Java】StringBuffer和StringBuilder

共同点 他们都是可变的,在每次进行修改操作时,都不会产生新的对象,所以在进行修改的时候,尽量使用这两种类型的字符串 不同点 StringBuffer在单线程中效率高 StringBuilder用于多线程确保安全性 测试代码 public class test …

keepalived安装配置详解

文章目录 高可用介绍keepalived安装、使用vip漂移抓包脑裂脑裂有没有危害?如果有危害对业务有什么影响? keepalived架构双vip架构 Healthcheck实现 notifyVRRP选举格式 高可用 介绍 高可用性(High Availability)是指系统或服务能…

Linux的locale本地化配置

Linux的locale本地化配置 locale简介localectl常用操作语言环境键盘布局 常见问题:配置语言环境报错Linux系统locale(UTF-8)报错最小化自动安装的Centos7修改完整中文显示 locale简介 参考: http://m.blog.chinaunix.net/uid-20621049-id-3427444.html locale把按照所涉及到的…

Python调用ImageMagick生成PDF文件缩略图

使用Python调用ImageMagick生成PDF文件缩略图 Imagemagick使用Ghostscript作为其依赖项之一,以便能够处理和转换PDF相关的图像。 准备 安装Ghostscript,网站安装ImageMagick,网站 安装完毕后,需要自行配置环境路径 脚本 使用示…

灌区信息化智能测控一体化闸门系统解决方案

一、方案背景 闸门是节水灌溉工程中重要组成部分。在农田灌区中,一方面存在传统手摇闸门,未能实现自动化、数字化,另一方面部分灌区闸站虽然部分实现了自动化控制,但是由于闸站较多,有些位置较为偏僻,部分水…

网络数据安全风险评估实施指引(一)

近日,全国信息安全标准化技术委员会发布了《网络安全标准实践指南 网络数据安全风险评估实施指引》(TC260-PG-20231A v1.0-202305),旨在响应《数据安全法》要求,落实重要数据处理过程风险评估,衔接已发布的…

前端开发中的微服务架构设计

前端服务化和小程序容器技术为前端应用带来了更好的组织结构、可维护性和可扩展性。这些技术的应用将促进前端开发的创新和发展,使团队能够更好地应对复杂的前端需求和业务挑战。通过将前端视为一个服务化的架构,我们能够构建出更强大、可靠且可持续的前…

OpenCv (C++) 使用矩形 Rect 覆盖图像中某个区域

文章目录 1. 使用矩形将图像中某个区域置为黑色2. cv::Rect 类介绍 1. 使用矩形将图像中某个区域置为黑色 推荐参考博客:OpenCV实现将任意形状ROI区域置黑(多边形区域置黑) 比较常用的是使用 Rect 矩形实现该功能,代码如下&…

vmware-ubuntu 出现的奇怪问题

虚拟机突然连不上网 参考博文-CSDN-卍一十二画卍(作者)-Vmware虚拟机突然连接不上网络【方案集合】 sudo vim /var/lib/NetworkManager/NetworkManager.statesudo service network-manager stop sudo vim /var/lib/NetworkManager/NetworkManager.stat…

华为云子网路由表作用及价值

子网路由表 子网路由表作用云专线、VPN的配置与子网路由表强关联,本质是在相应的子网路由表中添加了一条路由Nat路由表问题地址变更问题snat和dnat 子网路由表作用 子网内部作为一个二层网络,通过mac地址互通,不通过路由互通。跨子网&#x…

Java Vue物联网系统

一个简单易用的物联网平台,可用于搭建物联网平台以及二次开发和学习。适用于智能家居、智慧办公、智慧社区、农业监测、水利监测、工业控制等。 系统后端采用Spring boot;前端采用Vue;消息服务器采用EMQX; 技术栈 服务端相关技术…

Vector - CANoe - DoIP在CANoe应用

目录 背景说明 一、DoIP通信说明 1、连接(Connection) 2、车辆发现(Vehicle Discovery)

第一阶段-第八章 Python的文件操作

目录 一、文件的编码  1.学习目标  2.文件编码  3.查看文件编码  4.本小节的总结 二、文件的读取  1.学习目标  2.什么是文件  3.文件包含的操作(打开、关闭、读、写)  4.文件的操作步骤(打开或创建文件open(mode…