3.3 Tessellation Shader (TESS) Geometry Shader(GS)

2023-10-17 09:36

本文主要是介绍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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/224506

相关文章

gs_dump和gs_dumpall 迁移数据库

目录 0、源端实例收集AWR1、创建目录2、gs_dump - 业务停机3、gs_dumpall - 业务停机4、拷贝文件5、目标实例导入数据 0、源端实例收集AWR https://blog.csdn.net/hezuijiudexiaobai/article/details/134220949 1、创建目录 mkdir -p /pgdata/data/opengauss-

Unity3D Shader详解:只画顶点或只画线框

在Unity3D开发中,Shader是控制渲染过程的关键组件,它允许开发者自定义物体的渲染方式。有时,为了特定的视觉效果,我们可能需要只渲染模型的顶点或者只显示其线框。下面,我们将详细探讨这两种效果的技术实现,并给出相应的代码示例。 对惹,这里有一个游戏开发交流小组,大家可以点击进来一起交流一下开发经验呀! 只画顶点 在Unity中直接“只画顶点”的概念可能不是非常直观,因为顶点本身只是模型

3.3V数字信号转5V信号(低成本)

在调一次LED屏驱动的时候,用到了一款LED驱动芯片TM1629,供电5V,如何将单片机高电平3.3v的数字信号,转换成5V高电平的数字信号给LED屏呢?采用低成本的方案考虑。     1:硬件上,单片机引脚输出端外加5V上拉,上拉电阻10K(可选) 2:单片机输出高电平:将引脚配制成输入模式,因为输入状态单片机处于高阻输出状态,5V上拉,确保给LED驱动芯片的信号为5V高电平  单片机

unity shader实现一个移动的箭头

Shader "Unlit/LT_Arrow" {     Properties     {         _MainTex ("Texture", 2D) = "white" {}         _MSpeed("MoveSpeed", Range(1, 3)) = 2 //移动速度     }     SubShader     {         //贴图带透明通道 ,半透明效果设置如下

GS-SLAM论文阅读笔记--GSFusion

介绍 GS-SLAM是最近比较新的方向,由于传统SLAM的研究变得很少,拥抱与新的技术结合的方法也许是个好主意。之前总结了大部分GS-SLAM的文章。但是这个方向在不断发展,而发展初期的很多论文值得参考。所以用博客记录一下比较新的论文阅读笔记。GSFusion 这篇文章是TUM发表的,TUM在SLAM领域是非常牛的,所以需要仔细阅读一下这篇文章,肯定会有所收获! 文章目录 介绍1.

Shader学习笔记

1. 渲染管线概述 定义:渲染管线(流水线)就是将数据分阶段的变为屏幕图像的过程 数据就是我们在游戏场景中放置的模型、光源、摄像机等等内容的数据 阶段就是渲染管线中的三个阶段:应用阶段一>几何阶段一>光栅化阶段 通过这三个阶段对数据的处理,最终我们就能够在屏幕上看见最终的图像 2. 应用阶段 应用阶段的大部分内容都和渲染无关(游戏逻辑处理、动画更新、物理模拟)几何阶段和光栅化阶段将开始处理

【计算机组成原理】3.3 主存储器与CPU的连接

3.3 主存储器与CPU的连接 00:00 各位同学大家好,在这一小节中我们要学习主存储器与CPU之间的连接。首先我们会回顾之前小结学习过的内容,我们已经知道了单块存储芯片它对外暴露出来的一些接口,我们首先会探讨单块存储芯片和CPU之间的连接如何实现,接下来会介绍多块存储芯片和CPU之间的连接,分别是位扩展、字扩展和字位同时扩展,这个小节的最后我们还会补充一些关于译码器的知识,补充的内容可能在

【ros2】geometry_msgs::msg::TransformStamped 数据类型详解

geometry_msgs::msg::TransformStamped 数据类型详解 1. 数据类型定义 geometry_msgs::msg::TransformStamped 是 ROS 2 中的一个消息类型,用于表示一个时间戳和坐标变换信息。 2. 结构 geometry_msgs::msg::TransformStamped 包含以下字段: struct TransformSt

Photomator 3.3.22 (macOS Universal) - 照片编辑软件

Photomator 3.3.22 (macOS Universal) - 照片编辑软件 适用于 Mac、iPhone 和 iPad 的终极照片编辑器 请访问原文链接:https://sysin.org/blog/photomator/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Photomator 适用于 Mac、iPhone 和 iPad 的终极照

浪潮GS企业管理软件 UploadListFile 文件上传致RCE漏洞复现

0x01 产品简介 浪潮GS企业管理软件产品是一款面向大中型集团企业的全面解决方案,它基于Microsoft.NET技术路线和SOA(面向服务的架构),采用SOA架构和先进开放的GSP应用中间件开发,支持Web服务和Xml进行远程通信及数据交换。旨在帮助大中型集团企业实现资源整合、流程优化和智能决策,提升管理水平和竞争力。 0x02 漏洞概述 浪潮GS企业管理软件 UploadListFil