图形学笔记 - 4. 几何 -网格操作和阴影映射

文章目录

    • 网格操作:几何处理
      • 细分
      • Loop细分
      • Catmull-Clark细分(一般网格)
      • 网格简化
    • 阴影 Shadows
      • 可视化阴影映射
      • 阴影映射
      • 阴影贴图的问题

网格操作:几何处理

  • 网格细分
  • 网格简化
  • 网格正则化
    在这里插入图片描述
    网格细分(上采样)
    在这里插入图片描述
    网格简化(下采样)
    在这里插入图片描述
    网格正则化(相同的 # 三角形)
    在这里插入图片描述
    调整样本分布以提高质量

细分

Loop细分

三角形网格的常用细分规则
首先,创建更多的三角形(顶点)
第二,调整他们的位置
在这里插入图片描述
把每个三角形分成四个
在这里插入图片描述
根据权重分配新的顶点位置

  • 新 / 旧顶点更新不同
    在这里插入图片描述
    更新
    对于新顶点(白点为例)
    在这里插入图片描述
    对于旧顶点(例如这里的 6 度顶点):(白点)
    在这里插入图片描述

结果:
在这里插入图片描述

Catmull-Clark细分(一般网格)

在这里插入图片描述

奇异点:度不为4
每个细分步骤:

  • 在每个面添加顶点
  • 在每条边缘添加中点
  • 连接所有新顶点
    在这里插入图片描述

一次细分:有多少个奇异点?它们的度是多少?有多少个非四边形面?
非四边形消失
再做下去奇异点数不再增加
在这里插入图片描述
在这里插入图片描述

FYI:Catmull-Clark 顶点更新规则(四网格)
在这里插入图片描述
收敛:整体形状和折痕
在这里插入图片描述
Subdivision in Action (Pixar’s “Geri’s Game”)

网格简化

目标:减少网格元素的数量
同时保持整体造型
在这里插入图片描述
边坍缩
假设我们使用边坍缩来简化网格
在这里插入图片描述

二次误差度量Quadric Error Metrics

  • 简化引入了多少几何误差?
  • 对顶点进行局部平均不是一个好主意
  • 二次误差:新顶点应使其到先前相关三角形平面的平方距离之和(L2 距离)最小化!
    在这里插入图片描述

边坍缩的二次误差

  • 坍缩一个边需要多少代价?
  • 想法:计算边中点,测量二次误差
  • 更好的主意:选择最小化二次误差的点
  • 更多详情:Garland&Heckbert 1997
    通过二次误差简化
    迭代坍缩边
    哪些边?使用二次误差度量分配分数
  • 到曲面的近似距离作为到包含三角形的平面的距离之和
  • 以最小分数迭代折叠边缘
  • 贪婪的算法… 伟大的结果!

问题:其他边跟着变,有影响

二次误差网格简化:
在这里插入图片描述

阴影 Shadows

如何使用光栅化绘制阴影?
阴影映射
在这里插入图片描述
一种图像空间算法

  • 阴影计算期间不了解场景的几何形状
  • 必须处理走样现象
    关键思想:不在阴影中的点必须同时被光线和相机看到
    Pass 1:从光渲染
    来自光源的深度图像
    在这里插入图片描述在这里插入图片描述

Pass 2A:从眼睛渲染
来自眼睛的标准图像(带深度)
在这里插入图片描述
PASS 2B:投射到光
将眼睛视图中的可见点投影回光源
在这里插入图片描述
在这里插入图片描述

可视化阴影映射

  • 一个带有阴影的相当复杂的场景
    在这里插入图片描述

  • 比较有阴影和没有阴影的情况
    在这里插入图片描述

  • 灯光视角下的景象
    在这里插入图片描述

  • 从光线的角度来看,深度buffer
    在这里插入图片描述

  • 比较distance(light, shading point)与阴影映射
    在这里插入图片描述
    绿色表示阴影图上的distance(light, shading point)≈深度
    非绿色是阴影应该出现的地方

  • 带阴影的场景
    在这里插入图片描述

阴影映射

众所周知的渲染技术
早期动画的基本阴影技术(小故事等)以及每一款3D电子游戏
在这里插入图片描述

阴影贴图的问题

  • 硬阴影(仅限点光源)
  • 质量取决于阴影贴图的分辨率(基于图像的技术的一般问题)
  • 涉及相等比较的浮点深度值意味着尺度、偏差、容差等问题
    硬阴影vs软阴影
    在这里插入图片描述

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

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

相关文章

OBOO鸥柏车载广告屏:28.6寸液晶一体机的技术革新与应用前景

在数字化迅速发展的今天,OBOO鸥柏推出的28.6寸车载长条形液晶广告屏一体机成为了市场的一大亮点。这款产品不仅具有超窄边框的高亮设计,还利用异形激光切割技术,支持多种形状如圆形、方形及三角形展示,极大地提升了商用和工业屏幕…

Spring Cloud Alibaba、Spring Cloud 与 Spring Boot各版本的对应关系

参考spring-cloud-alibaba github wiki说明:版本说明 下面截取说明: 2022.x 分支 2021.x 分支 2.2.x 分支 组件版本关系

Springboot + vue 健身房管理系统项目部署

1、前言 ​ 许多人在拿到 Spring Boot 项目的源码后,不知道如何运行。我以 Spring Boot Vue 健身房管理系统的部署为例,详细介绍一下部署流程。大多数 Spring Boot 项目都可以通过这种方式部署,希望能帮助到大家。 ​ 2、项目查看 ​ 首…

SOL链上的 Meme 生态发展:从文化到创新的融合#dapp开发#

一、引言 随着区块链技术的不断发展,Meme 文化在去中心化领域逐渐崭露头角。从 Dogecoin 到 Shiba Inu,再到更多细分的 Meme 项目,这类基于网络文化的加密货币因其幽默和社区驱动力吸引了广泛关注。作为近年来备受瞩目的区块链平台之一&…

基于大数据爬虫数据挖掘技术+Python的网络用户购物行为分析与可视化平台(源码+论文+PPT+部署文档教程等)

#1024程序员节|征文# 博主介绍:CSDN毕设辅导第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老…

主机管理工具 WGCLOUD v3.5.6 更新了哪些特性

WGCLOUD-v3.5.6 更新说明,2024-11-20发布 1. 新增,个性化采集,查看 2. 新增,支持达梦数据库做数据源来存贮监控数据,查看说明(8) 3. 新增,日志监控支持配置自动处理指令,当发现日志出现告警关键…

设计模式之 享元模式

享元模式(Flyweight Pattern)是一种结构型设计模式,用于减少系统中对象的数量,从而节省内存和提升性能。它通过共享相同的对象来避免重复创建类似的对象。该模式尤其适用于对象数量庞大、且重复内容较多的场景。 核心思想&#x…

yolov5 数据集分享:纯干货

数据集分享:纯干货 1. 遇见数据集:这是一个国内的数据集搜索引擎,索引了国内外的大部分网站,提供最新的数据集推荐。[遇见数据集网站](https://www.selectdataset.com/) 2. Kaggle:一个领先的数据科学和机器学习爱好者…

如何实现3D模型在线展示、互动和分享?

实现3D模型在线展示、互动和分享,可以通过多种途径和技术手段来完成。以下是一些具体的方法和步骤: 一、选择适合的3D模型展示平台 首先,你需要选择一个支持3D模型在线展示、互动和分享的平台。这些平台通常提供用户友好的界面和工具&#x…

大数据-227 离线数仓 - Flume 自定义拦截器(续接上节) 采集启动日志和事件日志

点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop&#xff0…

CANoe录制和回放CAN报文

目录 1、录制报文 2、离线回放 3、在线回放 3.1、在线回放设置 CANoe是一款用于汽车电子测试的工具,它可以模拟CAN网络中的各种设备,并支持CAN报文的录制和回放功能,方便我们远程调试。 1、录制报文 在Measurement Setupk面板点击Loggi…

大数据调度组件之Apache DolphinScheduler

Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。 主要特性 易于部署,提供四种部署方式,包括Standalone、Cluster、Docker和…

XCode Build时遇到 .entitlements could not be opened 的问题

遇到错误 在构建成功的XCode工程上,手动打开XCode并Build,遇到以下问题: The file .entitlements could not be opened. Did you forget to declare this file as an output of a script phase or custom build rule which produces it 打…

关于一次开源java spring快速开发平台项目RuoYi部署的记录

关于一次开源java spring快速开发平台项目RuoYi部署的记录 本次因为需要一些练习环境,想要快速搭建一个javaweb 项目作为练习环境,经过查询和实验找到一个文档详细,搭建简单,架构也相对比较新的开源项目RuoYi。 项目介绍&#xf…

原生微信小程序在顶部胶囊左侧水平设置自定义导航兼容各种手机模型

无论是在什么手机机型下,自定义的导航都和右侧的胶囊水平一条线上。如图下 以上图iphone12,13PRo 以上图是没有带黑色扇帘的机型 以下是调试器看的wxml的代码展示 注意:红色阔里的是自定义导航(或者其他的logo啊,返回之…

列出D3的所有交互方法,并给出示例

D3.js 提供了丰富的交互方法,可以用来增强图表的用户交互体验。以下是一些常用的交互方法及其示例: 1. 鼠标事件 on("mouseover", function) 用途: 当鼠标悬停在元素上时触发。示例:svg.selectAll(".bar").on("mouseover&qu…

小程序-使用 iconfont 图标库报错:Failed to load font

官方默认可以忽略此错误,在清除缓存后首次刷新会显示此错误,重新渲染错误消失 解决方法: 在 iconfont 图标库选择项目设置 选中 Base64 保存,重新点击链接 -> 复制代码到项目中 操作步骤:

[免费]SpringBoot+Vue毕业设计论文管理系统【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue毕业设计论文管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue毕业设计论文管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 现代经济快节奏发展以及不断完善升级的信…

System Control Units (SCU)

本文对Ifx TC3xx的System Control Units (SCU)模块进行介绍,此网页为汇总连接,具体模块见对应超链接。 系统控制单元(SCU)是一组控制各种系统功能的子模块,包括以下模块: Reset Control (RCU)Trap genera…

网站推广实战案例:杭州翔胜科技有限公司如何为中小企业打开市场大门

以下是以杭州翔胜科技有限公司为例,解析其如何通过网站推广为中小企业打开市场大门的实战案例: 一、一站式网站推广方案 杭州翔胜科技有限公司提供一站式网站推广方案,该方案整合了多种推广手段,如搜索引擎优化(SEO&a…