【GAMES101】Lecture 09 重心坐标

我们之前说着色过程中以及这个计算法线的时候需要用到这个插值(Interpolation),然后插值是通过这个重心坐标(Barycentric Coordinates)来实现的

目录

重心坐标

插值


重心坐标

注意哈我们这里说的三角形的重心坐标并不是指这个三角形重心的坐标,而是指一套坐标系,这套坐标系(α,β,γ)用来表示三角形这个平面上的点,三角形有这个三个顶点的坐标A、B、C,那么这个平面上的点可以表示为(x,y)=αA+βB+γC,其中α+β+γ=1,那么这个(α,β,γ)就是这个点的重心坐标,当α,β,γ都非负时,这个点在三角形内

自然三角形的三个顶点的重心坐标就是A(1,0,0)、B(0,1,0)、C(0,0,1)了 

那如何计算任意一个点的重心坐标呢,这个是可以通过面积比来计算的,对于三角形内的任意一个点,它可以和三个顶点连线形成三个小三角形,那么这个点的重心坐标就是对应小三角形和大三角形的面积比

由此我们可以知道三角形重心的重心坐标是什么,因为重心和三个顶点连线所形成的三个三角形面积相等嘛,然后重心的重心坐标就是(⅓,⅓,⅓)

 实际上由刚刚的面积比计算方法可以推出一种《简化》的计算方法

插值

有了重心坐标后,对于已知三角形三个顶点的属性(比方说位置、纹理、坐标、颜色、法线、深度、材质等等),都可以通过插值来计算出三角形内部任意点的属性,并且是看起来平滑过渡的,那怎么做呢?我们不是已经有重心坐标(α,β,γ)了吗,那么对于任意点的属性都可以通过三个顶点的属性进行(α,β,γ)的线性组合得到

这里需要注意的是,在投影变换的时候,应该先做这个插值再投影

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

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

相关文章

Java反射基础学习笔记

Java反射基础知识 一、Java反射的理解二、Java反射的知识1、如何获取Class类2、使用Class中的构造方法3、使用Class中的方法4、使用Class中的属性5、使用Class中的注解6、Class中的常用方法 Java反射要学习哪些内容,其实要知道的东西很少,也很简单掌握。…

RK3399平台开发系列讲解(USB篇)BusHound 工具使用介绍

🚀返回专栏总目录 文章目录 一、BusHound简介二、BusHound的下载三、BusHound设备窗口四、BUSHound发送命令窗口沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 BusHound软件是由美国perisoft公司研制的一种专用于PC机各种总线数据包监视和控制的开发工具软件,其名…

前端面试——关于this指向问题?

想要知道关于this的指向问题,首先要了解this的绑定规则。那么this到底是什么样的绑定规则呢?一起来研究一下吧! 绑定一:默认绑定 绑定二:饮食绑定 绑定三:显示绑定 绑定四:隐式绑定 1. 默认…

【GitHub项目推荐--一款美观的开源社区系统】【转载】

推荐一款开源社区系统,该系统基于主流的 Java Web 技术栈,如果你是一名 Java 新手掌握了基本 JavaEE 框架知识,可以拿本项目作为练手项目。 开源社区系统功能还算完善包含发布帖子、发布评论、私信、系统通知、点赞、关注、搜索、用户设置、…

What is `Filter` does?

过滤器(Filter)是Java Servlet规范中的一部分,它提供了一种在请求到达目标资源之前或响应发送给客户端之前进行预处理和后处理的能力。 通过编写自定义的过滤器类并将其注册到Web应用程序中,开发者可以实现诸如登录验证、权限控制…

边缘计算及相关产品历史发展

边缘计算及相关产品历史发展 背景边缘计算的历史CDN(Content Delivery Network)Cloudlet雾计算MEC(Multi-Access Edge Computing,MEC) 边缘计算的现状云计算厂商硬件厂商软件基金会 背景 最近,公司部分业务…

RT-DETR优化改进:IoU系列篇 | Focaler-IoU​​​​​​​更加聚焦的IoU损失Focaler-IoU |2024年最新发表

🚀🚀🚀本文改进:Focaler-IoU更加聚焦的IoU损失Focaler-IoU,能够在不同的检测任务中聚焦不同的回归样本,使用线性区间映射的方法来重构IoU损失 🚀🚀🚀RT-DETR改进创新专栏:http://t.csdnimg.cn/vuQTz 🚀🚀🚀学姐带你学习YOLOv8,从入门到创新,轻轻松松搞…

Redis中BigKey的分析与优化

Redis中BigKey的分析与优化 Redis以其出色的性能和易用性,在互联网技术栈中占据了重要的地位。 但是,高效的工具使用不当也会成为性能瓶颈。在Redis中,BigKey是常见的性能杀手之一,它们会消耗过多的内存,导致网络拥塞…

【每日一题】最大交换

文章目录 Tag题目来源解题思路方法一:暴力法方法二:贪心 写在最后 Tag 【暴力法】【贪心法】【数组】【2024-01-22】 题目来源 670. 最大交换 解题思路 本题的数据规模比较小,暴力法也可以通过。以下将会介绍暴力法和本题最优法。 方法一…

14027.ptp 控制流

文章目录 1 ptp 控制流1.1 控制流分层 1 ptp 控制流 1.1 控制流分层 大体分为4层:1 ptp4l层: 获取配置文件、创建时钟、poll监控文件描述符。2 clock时钟层:提供提供clock_poll、clock_create、clock_sync 等3 port 端口层:port…

后端MySQL常用命令

不是专业后端的,所有可能有些不太准确,都是自己平时在项目当中总结的,谢谢ฅฅ* 添加/insert 给指定字段添加数据 INSERT INTO 表名 字段名 VALUES 值 INSERT INTO ninth_student (id,name,sex,age,weight,birth) VALUES (0,亚亚,女,18,4…

为什么重写hashcode要一起重写equals方法

为什要重写hashcode? hashcode方法得到一个hash值其实是要起到一个比较作用,比较两个未知的东西是不是同一个东西,因为我们要求hashcode方法产生的hash值对于”同一个东西“得到的hash值是一样的。 那这种特性可以做到去重的效果&#xff0…

HBase学习五:运维排障之复制

官方文档-HBase复制,包含相关命令信息 0 名词解释 在HBase中,HLog(也称为WAL)用于记录所有对HBase表的修改操作,以便在系统故障时可以恢复数据。 Entry的含义 Entry在HLog上下文中通常指的是WAL中的一个记录项。每个Entry包含了一次或多次对HBase表的修改操作的信息,这…

通过 GScan 工具自动排查后门

一、简介 GScan 是一款为安全应急响应提供便利的工具,自动化监测系统中常见位置。 工具运行环境:CentOS (6、7) python (2.x、3.x) 工具检查项目: 1、主机信息获取 2、系统初始化 alias 检查 3、文件类安全扫描 3.1、系统重要文件完整行…

Express.js 中动态路由解码:path-to-regexp介绍

1. path-to-regexp:将路径转化为模式 path-to-regexp 是一个 Node.js 工具,用于将路径字符串转换为正则表达式。它在像 Express.js 这样的网络框架中广泛用于处理动态路由。 主要功能及代码示例: 将路径转换为正则表达式: 它将带…

linux shell脚本 条件语句

test 测试文本的表达式 是否成立 格式: test 条件表达式 格式: [ 条件表达式 ] ([] 内要空格 ,不然不生效) 如何测试? [ 操作符 文件或目录 ] echo $? 返回值是0 正确,返回值非0 …

Unity——FSM有限状态机

有限状态机就是有限个切换状态的条件,要制作有限状态机,有几个必要点:状态抽象类、FSMSystem类、FSMSystem实现类、FSM状态实现类。 每一个控制者都有一个状态机,每一个状态机都有其包含的状态,每一个状态都有能转换的…

运维之道—生产环境安装mysql

目录 1.前言 2.部署安装 2.1 下载mysql5.7版本的yum仓库 2.2 安装yum仓库 2.3 安装mysql-server 2.4 启动mysql-server 3. 生产配置 3.1 登录mysql 3.2 修改root账户密码 3.3 配置mysql

JFinal项目搭建

JFinal项目搭建 JFinal项目搭建 JFinal项目搭建 首先创建maven项目&#xff1a; 删掉报错的jsp页面&#xff1a; 在pom.xml中加入坐标&#xff1a; <dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal-undertow</artifactId>…

零基础学习【Mybatis Plus】这一篇就够了

学习目录 1. 快速入门1-1. 常用注解总结 1-2. 常用配置 2. 核心功能3. 扩展功能4. 插件功能 1. 快速入门 1-1. 常用注解 MybatisPlus中比较常用的几个注解如下&#xff1a; TableName: 用来指定表名Tableld: 用来指定表中的主键字段信息TableField: 用来指定表中的普通字段信…