Unity中Batching优化的GPU实例化(3)

文章目录

  • 前言
  • 一、UNITY_SETUP_INSTANCE_ID(v);
  • 二、在UnityInstancing.cginc文件中,看一下Unity这句话做了什么
    • 1、使用了该 .cginc 后,会自动预定义该函数
    • 2、需要满足GPU实例化条件,才会执行对应语句
    • 3、满足GPU实例化后,主要执行的是如下几个函数


前言

在上篇文章中,我们主要解析了 Unity 中 GPU实例化的定义 实例化ID 步骤干了什么。

  • Unity中Batching优化的GPU实例化(2)

我们在这篇文章中,把定义的 实例化ID 给使用起来,使合成一个批次的模型 包含的渲染的对象坐标显示正确。


一、UNITY_SETUP_INSTANCE_ID(v);

UNITY_SETUP_INSTANCE_ID(v); 放在顶点着色器/片断着色器(可选)中最开始的地方,这样才能访问到全局变量unity_InstanceID.

  • 修改前(虽然GPU实例化合批成功了,但是对象的位置不对):

请添加图片描述

  • 修改后:(GPU实例化合批成功,且位置正确)
    请添加图片描述

二、在UnityInstancing.cginc文件中,看一下Unity这句话做了什么

  • UNITY_SETUP_INSTANCE_ID(v);

1、使用了该 .cginc 后,会自动预定义该函数

在这里插入图片描述

2、需要满足GPU实例化条件,才会执行对应语句

  • 这句话必须在顶点着色器 和 片元着色器一开始使用,才可以使之后的步骤正确的访问全局变量unity_InstanceID

在这里插入图片描述

  • UNITY_INSTANCING_ENABLED : GPU实例化能开启的情况

在这里插入图片描述

  • UNITY_SUPPORT_INSTANCING : GPU实例化硬件支持

在这里插入图片描述

3、满足GPU实例化后,主要执行的是如下几个函数

在这里插入图片描述

  • UNITY_GET_INSTANCE_ID(input) :获取合批前,点的合批ID 函数

在这里插入图片描述

  • UnitySetupInstanceID(UNITY_GET_INSTANCE_ID(input)) :转化得到合批后点的合批ID

在这里插入图片描述

  • UnitySetupCompoundMatrices(); : Unity根据全局变量 unity_InstanceID 进行对应的矩阵变换使顶点位置正确

在这篇文章中,我们解决了GPU实例化后,对象位置不对的问题。在下篇文章中,我们实现怎么使每个对象的材质颜色不同。

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

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

相关文章

在UniApp中使用uni.makePhoneCall方法调起电话拨打功能

目录 1.在manifest.json文件中添加权限 2. 组件中如何定义 3.如何授权 4.相关知识点总结 1.在manifest.json文件中添加权限 {"permissions": {"makePhoneCall": {"desc": "用于拨打电话"}} }2. 组件中如何定义 <template>…

创建第一个 Flink 项目

一、运行环境介绍 Flink执行环境主要分为本地环境和集群环境&#xff0c;本地环境主要为了方便用户编写和调试代码使用&#xff0c;而集群环境则被用于正式环境中&#xff0c;可以借助Hadoop Yarn、k8s或Mesos等不同的资源管理器部署自己的应用。 环境依赖&#xff1a; 【1】…

【论文合集】在非欧空间中的图嵌入方法(Graph Embedding in Non-Euclidean Space)

文章目录 1. Hyperbolic Models1.1 Hyperbolic Graph Attention Network1.2 Poincar Embeddings for Learning Hierarchical Representations.1.3 Learning Continuous Hierarchies in the Lorentz Model of Hyperbolic Geometry1.4 Hyperbolic Graph Convolutional Neural Net…

【开源】基于Vue.js的假日旅社管理系统

文末获取源码&#xff0c;项目编号&#xff1a; S 078 。 \color{red}{文末获取源码&#xff0c;项目编号&#xff1a;S078。} 文末获取源码&#xff0c;项目编号&#xff1a;S078。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统介绍2.2 QA 问答 三、系统展示四…

【实用经验】如何根据CVE编号找到安全补丁

找到对应补丁页面 例如查找编号为 CVE-2019-0708 的漏洞&#xff0c;访问下面链接即可&#xff0c;替换末尾编号可获取其他漏洞更新补丁。 https://msrc.microsoft.com/update-guide/vulnerability/CVE-2019-0708根据实际情况点击右侧补丁链接即可跳转下载 最后根据实际情况下…

水平自动扩容和缩容HPA;API资源对象NetworkPolicy;Kubernetes用户安全控制;Kubernetes创建普通用户示例

水平自动扩容和缩容HPA&#xff1b;API资源对象NetworkPolicy&#xff1b;Kubernetes用户安全控制&#xff1b;Kubernetes创建普通用户示例 水平自动扩容和缩容HPA&#xff08;本部分操作适合K8s版本>1.23.x) HPA全称是Horizontal Pod Autoscaler&#xff0c;翻译成中文是…

揭秘C语言结构体:通往内存对齐的视觉之旅

揭秘C语言结构体&#xff1a;通往内存对齐的视觉之旅 引言 在C语言的编程旅程中&#xff0c;结构体&#xff08;structs&#xff09;是一个关键而强大的概念。结构体不仅允许我们组织和存储不同类型的数据&#xff0c;而且通过深入了解内存对齐&#xff0c;我们可以更好地优化…

Python+requests+unittest+excel实现接口自动化测试框架

在刚刚进入测试行业的时候&#xff0c;最开始也是做功能测试&#xff0c;我想很多伙伴和我一样&#xff0c;觉得自动化测试都很高端&#xff0c;很神秘。迫不及待的想去学习作自动化测试。 以前比较常用数据库python做自动化&#xff0c;后面发现excel个人觉得更加适合&#x…

初始类与对象

初始类与对象 实验介绍 本课程是进一步对类与对象的深入认识&#xff0c;如何定义并实例化一个类&#xff0c;介绍如何使用 C 标准库 string 类等。 知识点 认识类与对象内联函数string 类类的定义与实例化 认识类与对象 官方定义 类&#xff1a;在面向对象编程中是一种…

自定义starter案例——统计独立IP访问次数

自定义starter案例——统计独立IP访问次数 文章目录 自定义starter案例——统计独立IP访问次数ip计数业务功能开发定时任务报表开发使用属性配置功能设置功能参数配置调整 自定义拦截器开启yml提示功能 ip计数业务功能开发 public class IpCountService {private Map<String…

matplot函数调整子图大小测试

调整subplot()函数的子图间距 import numpy as np import matplotlib.pyplot as plt for i in range(1,7):figsize 10,6plt.subplot(2,3,i)plt.text(0.5,0.5,str((2,3,i)),fontsize18,hacenter) **plt.subplots_adjust(hspace3.3, wspace0.3)** plt.show()import numpy as np…

水果党flstudio用什么midi键盘?哪个版本的FL Studio更适合我

好消息&#xff01;好消息&#xff01;特大好消息&#xff01; 水果党们&#xff01;终于有属于自己的专用MIDI键盘啦&#xff01; 万众期待的Novation FLKEY系列 正式出炉&#xff01; 话有点多话&#xff0c;先分享一份干货&#xff0c;尽快下载 FL Studio 21 Win-安装包&…

2023人工智能和市场营销的融合报告:创造性合作的新时代需要新的原则

今天分享的人工智能系列深度研究报告&#xff1a;《2023人工智能和市场营销的融合报告&#xff1a;创造性合作的新时代需要新的原则》。 &#xff08;报告出品方&#xff1a;M&CSAATCHITHINKS&#xff09; 报告共计&#xff1a;11页 生成型人工智能的兴起和重要性 生成式…

P8 Linux 目录操作

目录 前言 01 mkdir 系统调用 mkdir的代码示例 02 rmdir删除目录 03 打开、读取以及关闭目录 3.1 opendir()函数原型&#xff1a; 04 读取目录 readdir() 05 struct dirent 结构体&#xff1a; 06 rewinddir ()函数重置目录流 07 关闭目录 closedir ()函数 测试:打印…

基于深度学习的遥感图像变化差异可视化系统

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 遥感图像变化差异可视化是遥感图像处理和分析的重要研究领域之一。随着遥感技术的快速发展和遥感数据的广泛应用&#xff0c;遥感图像的获取和处理变得越来越容易…

python-比较Excel两列数据,并分别显示差异

利用 openpyxl 模块&#xff0c;操作Excel&#xff0c;比较Excel两列数据&#xff0c;并分别显示差异 表格数据样例如下图 A&#xff0c;B两列是需要进行比较的数据&#xff08;数据源为某网站公开数据&#xff09;&#xff1b;C&#xff0c;D两列是比较结果的输出列 A&#…

小白学习java理解栈手写栈——第四关(青铜挑战)

内容1.理解栈的基本特征2.理解如何使用数组来构造栈3.理解如何使用链表来构造栈 1.栈的基础知识 1.1栈的特征 栈和队列是比较特殊的线性表&#xff0c;又称为访问受限的线性表。栈是很多表达式、符号等运算的基础&#xff0c;也是递归的底层实现&#xff0c;理论上递归能做的…

Linux 防病毒软件:CentOS有哪些付费的防病毒软件

CentOS是一个基于开源的Linux发行版,通常不像Windows那样普遍需要使用付费的防病毒软件。大多数Linux系统侧重于使用开源和免费的安全工具来保护系统。一些常见的免费和开源的防病毒软件和安全工具包括ClamAV、Sophos Antivirus for Linux、rkhunter、chkrootkit等。 如果你非…

[数据集][目标检测]拉横幅识别横幅检测数据集VOC+yolo格式1962张1类别

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1962 标注数量(xml文件个数)&#xff1a;1962 标注数量(txt文件个数)&#xff1a;1962 标注类别数&a…