OpenGL3.3_C++_Windows(28)

Demo演示

demo

视差贴图

  • 视差/高度/位移贴图(黑--白):和法线贴图一样视差贴图能够极大提升表面细节,使之具有深度感。
  • 第一种思路(置换顶点):对于一个quad ,分成约1000个顶点,根据储存在深度贴图中的几何信息对平面特定区域的顶点的高度进行位移或偏移。但计算量太大了
  • 视差贴图:修改纹理坐标使一个fragment的表面看起来比实际的更高或者更低,所有这些仅根据观察方向和高度贴图,不需要额外的顶点数据(例如quad只需6个顶点),
  • 模拟:假设,根据高度贴图模拟了真正的高度,我们视线看到的实际位置,不再是平面上A点,而是高度上B点。

如何确定点B坐标?

  • 尝试通过对从视线𝑉进行缩放的方式解决这个问题,缩放的大小是𝐴处fragment的高度H(A),缩放得到的向量𝑃¯,视差贴图采样的是H(P)点,
  • 问题(需要陡峭视差映射解决):因为我们通过H(A)确立采样的位置,当表面的高度变化很快的时候,很有可能和(高度模拟中)我们应看到的H(B)不同  
  • 反色高度贴图 / 深度贴图:模拟深度比模拟高度更容易

思路:

  • 从深度贴图采样当前坐标点的深度值,
  • 计算vec2的偏移量:视线的方向.xy / z(因为原实体是立着的quad,转变为vec2)* 深度值
  • 计算新的纹理坐标(原片段坐标 - 偏移坐标),从而根据新坐标位置diffuse和normaltexture的采样
  • 因为/z:所以当我们视线越平行于平面,z越趋近于0,偏移量p会越大,视觉上有更多的偏移

法线贴图VS视差贴图:

  • 根据观察方向高度的叠压操作
  • 纹理边缘有失真:纹理坐标超出了0到1的范围进行采样,根据重复的纹理的环绕方式,解决的方法是当它超出默认纹理坐标范围进行采样的时候就丢弃discard这个fragment:

法线矩阵 VS TBN变换:

  • 法线矩阵:将局部坐标转变为世界坐标,保持法线方向永远垂直于表面
  • TBN变换:将局部坐标(法线/视差 贴图)转变为切线空间(法线的局部空间),保证从贴图采样的转变为正确方向,TBN*Model后转变为世界空间

陡峭视差映射:在陡峭的高度仍然有不正确的结果

  • 原理:通过增加采样的数量提高了精确性,不同于原理取当前纹理坐标的深度,以视线方向分段(偏移量)采样,直到当某一层的深度高于储存在深度贴图中的值
  • 将深度和p方向分段,都划分为相同的层数,while当前深度<当前分段的(新的纹理坐标)深度值,就继续循环,直到结束会返回当前纹理坐标
  • 为了优化性能:我们可以在垂直看时使用更少的样本,以一定角度看时增加样本数量:

视差遮蔽映射:

  • 原理:在触碰之前和之后,在深度层之间进行线性插值。比陡峭视差映射更精确。
  • 计算:因为刚才计算的就是第一次深度值>深度 坐标位置,直接对本次的差值,和采样获取上一次坐标位置,计算差值,然后计算的线性插值作为权重weight,将两个纹理坐标位置*权重 / 1-权重,获得最终的纹理坐标

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Fastapi在docekr中进行部署之后,uvicorn占用的CPU非常高

前一段接点小活&#xff0c;做点开发&#xff0c;顺便学了学FASTAPI框架&#xff0c;对比flask据说能好那么一些&#xff0c;至少并发什么的不用研究其他的asgi什么的&#xff0c;毕竟不是专业开发&#xff0c;能少研究一个东西就省了很多的事。 但是部署的过程中突然之间在do…

vue3+ts 重复参数提取成方法多处调用以及字段无值时不传字段给后端

参数提取前的写法&#xff0c;此写法值为空的时候也会传空字段给后端 会把无值的空字段传给后端 修改后的写法&#xff0c;不会把没有值的字段传给后端 // 列表和导出需要传给后端的公共参数&#xff08;加 || undefined即可过滤空字段&#xff09; const getCurentParam () …

HackTheBox--BoardLight

BoardLight 测试过程 1 信息收集 NMAP端口扫描 端口扫描开放 22、80 端口 80端口测试 # 添加 boardLight.htb 到hosts文件 echo "10.10.11.11 boardLight.htb" | sudo tee -a /etc/hosts检查网页源代码&#xff0c;发现 board.htb # 添加 board.htb 到 hosts 文…

LeetCode-刷题记录-前缀和合集(本篇blog会持续更新哦~)

一、前缀和&#xff08;Prefix Sum&#xff09;算法概述 前缀和算法通过预先计算数组的累加和&#xff0c;可以在常数时间内回答多个区间和相关的查询问题&#xff0c;是解决子数组和问题中的重要工具。 它的基本思想是通过预先计算和存储数组的前缀和&#xff0c;可以在 O(1)…

免费压缩pdf文件大小软件收费吗?pdf如何压缩文件大小?12款压缩应用推荐!

在数字化时代&#xff0c;PDF文件因其跨平台、格式统一的特点而广受欢迎。然而&#xff0c;随着文件内容的增加&#xff0c;PDF文件的大小也逐渐增大&#xff0c;给存储和传输带来了诸多不便。因此&#xff0c;寻找一款合适的PDF压缩软件成为了许多用户的需求。本文将详细介绍1…

网络祭祀人物微信小程序模板源码

模板介绍 手机端网络祭祀&#xff0c;在线祭祀&#xff0c;创建纪念历史人物小程序前端模板下载。包含&#xff1a;人物列表、详情、创建人物、个人中心等等页面。 图片演示 网络祭祀人物微信小程序模板源码

windows实现Grafana+Loki+loki4j轻量级日志系统,告别沉重的ELK

文章目录 Loki下载Grafana下载安装Loki添加Loki数据源springboot日志推送 Loki下载 下载地址&#xff1a;https://github.com/grafana/loki/releases/ 找到loki-windows-amd64.exe.zip点击开始下载&#xff0c;我这里下载的2.9.9版本 Grafana下载 下载地址&#xff1a;http…

Centos7离线安装ElasticSearch7.4.2

一、官网下载相关的安装包 ElasticSearch7.4.2&#xff1a; elasticsearch-7.4.2-linux-x86_64.tar.gz 下载中文分词器&#xff1a; elasticsearch-analysis-ik-7.4.2.zip 二、上传解压文件到服务器 上传到目录&#xff1a;/home/data/elasticsearch 解压文件&#xff1…

如何找到关于目标检测小论文的创新点

深度学习目标检测的小论文创新点 数据集预处理创新 主要包括图像增强、图像去雾、图像融合和图像降噪 例子: 比如在研究方向是检测晚上或者天气不好时骑电动车的人是否佩戴了安全头盔。一般的检测可能只能检测到正常天气情况下的骑电动车的人&#xff0c;而对于大雾天气和晚上…

【教程】计算机组成原理

一、计算机系统概述 1.1 计算机系统组成 1.1.1 计算机的硬件系统结构 硬件系统由运算器、存储器、控制器、输入设备和输出设备5个部件组成。 五大部件的基本功能&#xff1a; 运算器&#xff1a; 完成算术和逻辑运算&#xff1b;控制器&#xff1a; 用来控制、执行程序&…

SHARPNESS-AWARE MINIMIZATION FOR EFFICIENTLY IMPROVING GENERALIZATION--论文笔记

论文笔记 资料 1.代码地址 https://github.com/google-research/sam https://github.com/davda54/sam 2.论文地址 https://arxiv.org/abs/2010.01412 3.数据集地址 论文摘要的翻译 在当今严重过度参数化的模型中&#xff0c;训练损失的值很难保证模型的泛化能力。事实上…

STM32 - SPI硬件外设

配合我的上一篇SPI ​​​​​​通信 协议-CSDN博客一起理解更佳&#xff0c;本文后看 SPI 是由摩托罗拉(Motorola)公司开发的全双工同步串行总线&#xff0c;是 MCU 和外围设备之间进行通信的同步串行端口。主要应用在EEPROM、Flash、RTC、ADC、网络控制器、MCU、DSP以及数字信…

Sleuth--链路追踪

1 链路追踪介绍 在大型系统的微服务化构建中&#xff0c;一个系统被拆分成了许多模块。这些模块负责不同的功能&#xff0c;组合成 系统&#xff0c;最终可以提供丰富的功能。在这种架构中&#xff0c;一次请求往往需要涉及到多个服务。互联网应用构建 在不同的软件模块集上&am…

MySQL Buffer Pool

总结自&#xff1a;小林coding&#xff0c;bojiangzhou 虽然说 MySQL 的数据是存储在磁盘里的&#xff0c;但是也不能每次都从磁盘里面读取数据&#xff0c;这样性能是极差的。 要想提升查询性能&#xff0c;加个缓存就行了嘛。所以&#xff0c;当数据从磁盘中取出后&#xff…

Vue3项目打包优化

前言 本文介绍在实际项目中进行打包优化过程 目前评分 good npm install web-vitals在App.vue加入如下代码测试网页性能指标 import { onLCP, onINP, onCLS, onFCP, onTTFP } from web-vitals/attributiononCLS(console.log) onINP(console.log) onLCP(console.log) onFCP(…

江协科技51单片机学习- p25 无源蜂鸣器

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

C语言 | Leetcode C语言题解之第223题矩形面积

题目&#xff1a; 题解&#xff1a; int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {int area1 (ax2 - ax1) * (ay2 - ay1), area2 (bx2 - bx1) * (by2 - by1);int overlapWidth fmin(ax2, bx2) - fmax(ax1, bx1), overlapHei…

气膜建筑如何在文化旅游行业中应用—轻空间

一、气膜建筑简介 气膜建筑是一种新型建筑形式&#xff0c;其主要结构由高强度膜材、空气支撑系统和固定系统组成。通过不断向膜体内部充气&#xff0c;使其形成稳定的内部压力来支撑整个建筑结构。气膜建筑因其建设速度快、成本相对较低、环保节能等优点&#xff0c;近年来在各…

DDR3 (四)

1 DDR3 8倍预取 DDR3相比DDR2外部IO时钟又提高了一倍&#xff0c;因此DDR3外部IO时钟是内核时钟的4倍&#xff0c;再加上双沿采样&#xff0c;因此DDR3可以实现8倍预取 2 DDR3 芯片位宽 DDR3使用8倍预取技术&#xff0c;指的是芯片位宽&#xff08;DQ数据线位宽&#xff09…

HTML实现图片查看与隐藏

你好呀&#xff0c;我是小邹。 在网页设计中&#xff0c;提供一个直观且用户友好的图片查看功能是提升用户体验的重要一环。本文将详细介绍如何使用HTML、CSS和JavaScript来实现图片的查看与隐藏功能。通过本教程&#xff0c;你将学会如何让页面上的图片在点击时放大显示&…