3.3 Tessellation Shader (TESS) Geometry Shader(GS)
一、曲面细分着色器的应用
海浪,雪地等


与置换贴图的结合

二、几何着色器的应用
几何动画


草地等(与曲面着色器结合)

三、着色器执行顺序

1.TESS的输入与输出
- 输入
-
- Patch,可以看成是多个顶点的集合,包含每个顶点的属性,可以指定一个Patch包含的顶点数以及自己的属性
- 功能
-
- 将图元细分(可以是三角形,矩形等)
- 输出
-
- 细分后的顶点
2.TESS流程
- HULL Shader
-
- 决定细分的数量(设定Tessellation factor以及Inside Tessellation factor)
- 对输入的Patch参数进行改变(如果需要)
- Tessellation Primitive Generation
-
- 进行细分操作
- Domain Shader
-
- 对细分后的点进行处理,从重心空间(Barycentric coordinate system)转换到屏幕空间
3.HULL Shader各参数解析
- Tessellation Factor
-
- 决定将一条边分成几部分:
- equal_spacing:将一条边等分,限制在[1,max],如果有小数则向上取整。
![]()
-
- fractional_even_spacing:限制在[2,max],向上去最近的偶数。
![]()
-
- fractional_odd_spacing:限制在[1, max -1]向上取最近的奇数,周长会被划分为n-2的等长部分,以及两个位于两端的部分(可能比中间部分更短)。具体长度与小数部分有关,为了获取更平滑的细分。
![]()
- Inner Tessellation Factor
-



4.GS的输入与输出
- 输入为图元(三角形、矩形、线等),根据图元的不同,shader中会出现对应不同数量的顶点。
- 输出同样为图元,一个或多个,徐亚自己从顶点构建,顺序很重要同时需要定义最大输出的顶点数。
视频代码





相关文章:
3.3 Tessellation Shader (TESS) Geometry Shader(GS)
一、曲面细分着色器的应用 海浪,雪地等 与置换贴图的结合 二、几何着色器的应用 几何动画 草地等(与曲面着色器结合) 三、着色器执行顺序 1.TESS的输入与输出 输入 Patch,可以看成是多个顶点的集合,包含每个顶点的属…...
C++:超越C语言的独特魅力
W...Y的主页😊 代码仓库分享💕 🍔前言: 今天我们依旧来完善补充C,区分C与C语言的区别。上一篇我们讲了关键字、命名空间、C的输入与输出、缺省参数等知识点。今天我们继续走进C的世界。 目录 函数重载 函数重载概…...
【LeetCode】27. 移除元素
1 问题 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新…...
AWS SAP-C02教程4--身份与联合身份认证
AWS的账号和权限控制一开始接触的时候觉得很复杂,不仅IAM、Identiy Federation、organization,还有Role、Policy等。但是其实先理清楚基本一些概念,然后在根据实际应用场景去理解设计架构,你就会很快掌握这一方面的内容。 AWS的账号跟其它一些云或者说一些SAAS产品的账号没…...
Mybatis Plus入门进阶:特殊符号、动态条件、公共语句、关联查询、多租户插件
前言 Mybatis Plus入门进阶:特殊符号、动态条件、公共语句、关联查询、多租户插件 隐藏问题:批量插入saveBatch 文章目录 前言注意点动态条件xml公共语句关联查询动态表名使用自定义函数主键生成策略saveBatch插件:多租户TenantLineInnerInte…...
Webpack 什么是loader?什么是plugin?loader与plugin区别是什么?
什么是loader?什么是plugin? loader 本质为一个函数,将文件编译成可执行文件。webpack完成的工作是将依赖分析与tree shinking对于类似.vue或.scss结尾的文件无法编译理解这就需要实现一个loader完成文件转译成js、html、css、json等可执行文…...
js面向对象(工厂模式、构造函数模式、原型模式、原型和原型链)
1.封装 2. 工厂模式 function createCar(color, style){let obj new Object();obj.color color;obj.style style;return obj;}var car1 createCar("red","car1");var car2 createCar("green","car2"); 3. 构造函数模式 // 创建…...
grid网格布局,比flex方便太多了,介绍几种常用的grid布局属性
使用flex布局的痛点 如果使用justify-content: space-between;让子元素两端对齐,自动分配中间间距,假设一行4个,如果每一行都是4的倍数那没任何问题,但如果最后一行是2、3个的时候就会出现下面的状况: /* flex布局 两…...
企业如何凭借软文投放实现营销目标?
数字时代下,软文投放成为许多企业营销的主要方式,因为软文投放成本低且效果持续性强,最近也有不少企业来找媒介盒子进行软文投放,接下来媒介盒子就来给大家分享下,企业在软文投放中需要掌握哪些技巧,才能实…...
【AI】深度学习——循环神经网络
神经元不仅接收其他神经元的信息,也能接收自身的信息。 循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络,可以更方便地建模长时间间隔的相关性 常用的参数学习可以为BPTT。当输入序列比较…...
计算机网络中常见缩略词翻译及简明释要
强烈推荐OSI七层模型和TCP/IP四层模型,借用一下其中图片,版权归原作者 SW: 集线器(Hub)、交换机(SW)、路由器(router)对比区别 集线器是在物理层; 交换机&Mac地址是在数据链路层(Mac物理地址…...
UGUI交互组件ScrollView
一.ScrollView的结构 对象说明Scroll View挂有Scroll Rect组件的主体对象Viewport滚动显示区域,有Image和mask组件Content显示内容的父节点,只有个Rect Transform组件Scrollbar Horizontal水平滚动条Scrollbar Vertical垂直滚动条 二.Scroll Rect组件的属…...
【文件IO】文件系统的操作 流对象 字节流(Reader/Writer)和字符流 (InputStream/OutputStream)的用法
目录 1.文件系统的操作 (File类) 2.文件内容的读写 (Stream流对象) 2.1 字节流 2.2 字符流 2.3 如何判断输入输出? 2.4 reader读操作 (字符流) 2.5 文件描述符表 2.6 Writer写操作 (字符流) 2.7 InputStream (字节流) 2.8 OutputStream (字节流) 2.9 字节…...
计算机网络 | 数据链路层
计算机网络 | 数据链路层 计算机网络 | 数据链路层基本概念功能概述封装成帧与透明传输封装成帧透明传输字符计数法字符填充法零比特填充法违规编码法小结 差错控制差错是什么?差错从何而来?为什么要在数据链路层进行差错控制?检错编码奇偶校…...
C#,数值计算——分类与推理Gaumixmod的计算方法与源程序
1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Gaumixmod { private int nn { get; set; } private int kk { get; set; } private int mm { get; set; } private double…...
【Android】Intel HAXM installation failed!
Android Studio虚拟机配置出现Intel HAXM installation failed 如果方案一解决没有作用,就用方案二再试一遍 解决方案一: 1.打开控制面板 2.点击左侧下面最后一个程序 3.点击启用或关闭Windows功能 4.勾选Windows虚拟机监控程序平台 5.接下来重启电脑…...
2023年中国自动驾驶卡车市场发展趋势分析:自动驾驶渗透率快速增长[图]
自动驾驶卡车的技术原理是通过电脑算法控制车辆行驶,辅助驾驶员完成任务。其实现方式主要是基于传感器和计算处理技术。自动驾驶卡车可以随时感知周围环境,灵活避障,自适应调整行驶路径,相比之下传统卡车需要驾驶员进行手动操作&a…...
力扣第17题 电话号码的字母组合 c++ 回溯 经典提升题
题目 17. 电话号码的字母组合 中等 相关标签 哈希表 字符串 回溯 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。…...
华纳云:怎么判断VPS的ip是不是公网ip
要判断一个VPS的IP地址是否为公网IP,您可以执行以下步骤: 查看IP地址: 首先,获取您的VPS的IP地址。您可以使用以下命令来查看VPS的IP地址: curl ifconfig.me 或 curl ipinfo.io/ip 这些命令将显示VPS的公网IP地址。 检…...
QT学习笔记1-Hello, QT
1. QT环境 1.1 QT_CREATOR QT的集成开发工具,可以进行项目的创建运行。有一些实例可以运行之。 1.2 QT_ASSISTANT QT的工具书 2. 核心的概念 2.1 windows 窗口 2.2 widget 组件放置在窗口上的 2.3 bar 栏 2.4 icon 图标 3. Hello, QT 3.1 main.cpp …...
开发者会话管理工具:提升多任务开发效率的利器
1. 项目概述:一个为开发者打造的会话管理利器在开发日常中,我们常常会同时打开多个终端窗口、IDE项目、数据库连接或者远程服务器会话。一天下来,桌面上可能散落着十几个终端标签页,每个都承载着不同的上下文:一个在跑…...
ISDN PRI外线故障排查实战指南
在实际运维案例中,工程师不怕故障一直出现,就怕偶尔出问题。比如客户反馈打外线时,偶尔会出现断线的情况。当然可以通过MST或Trace命令去跟踪,但如果故障发生频率过低,抓日志往往很难。我们通常需要先检查线路质量&…...
OpenClaw AVP:构建统一音视频协议栈,实现多协议流媒体处理
1. 项目概述:一个面向音视频处理的协议栈最近在整理一些音视频项目时,又翻到了avp-protocol/openclaw-avp这个仓库。对于从事流媒体、实时通信或者音视频编解码开发的工程师来说,看到avp这个缩写,第一反应多半是 “Audio-Video Pr…...
对比直接使用原厂 API 体验 Taotoken 在模型选型上的便捷性
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用原厂 API 体验 Taotoken 在模型选型上的便捷性 当开发者需要评估不同大模型的能力以适配具体项目时,通常会…...
信号净化实战:从基础平滑到智能去噪
1. 信号净化入门:为什么我们需要处理噪声? 第一次接触传感器数据时,我被现实狠狠上了一课——实验室里漂亮的平滑曲线在真实场景中根本不存在。记得去年处理工厂振动传感器数据时,原始信号看起来就像心电图叠加了摇滚乐节奏。这种…...
构建思想知识图谱:NLP与Elasticsearch在结构化资料库中的应用
1. 项目概述与核心价值最近在整理一些历史资料和思想研究时,我接触到了一个名为“mao-zedong-perspective”的项目。这个项目名直译过来就是“毛泽东视角”,它并非一个传统的软件应用,而更像是一个数字化的思想资料库或研究框架。作为一名长期…...
BoxLite-AI:开箱即用的轻量级AI应用容器部署与优化指南
1. 项目概述:BoxLite-AI 是什么,以及它解决了什么问题 最近在折腾本地大模型部署和轻量化应用时,发现了一个挺有意思的项目,叫 BoxLite-AI。乍一看这个名字,可能会联想到“盒子”和“轻量”,没错࿰…...
为什么你的v8出图突然“高级感崩塌”?3分钟定位色彩语义锚点失效+实时修复模板
更多请点击: https://intelliparadigm.com 第一章:为什么你的v8出图突然“高级感崩塌”? V8 引擎本身并不直接“出图”——这一表述实为开发者对前端渲染链路中某环节异常的戏谑指代。真正崩塌的,往往是基于 V8 驱动的 Canvas/We…...
AMD NPU加速GPT-2微调:边缘AI训练实战解析
1. AMD NPU与客户端AI训练的技术背景在AI模型部署领域,边缘计算正经历着从单纯推理到完整训练工作流的范式转变。传统上,像GPT-2这样的语言模型训练完全依赖云端GPU集群,但这种方式存在数据隐私泄露、网络延迟和持续服务依赖等固有缺陷。AMD …...
Vue 3调试新利器:vibe-devtools实现运行时状态热更新与代码注入
1. 项目概述:一个为前端开发者量身定制的调试利器最近在折腾一个Vue 3 Vite的项目,调试组件状态时,总感觉Chrome DevTools里的Vue Devtools用起来有点“隔靴搔痒”。状态变化是能看见,但想快速模拟个特定数据、或者临时注入一段逻…...
