当前位置: 首页 > article >正文

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.kler.cn/a/161582.html

相关文章:

  • 爱普生SG-8200CJ可编程晶振在通信设备中的应用
  • 探索Pillow库:Python图像处理的瑞士军刀
  • VMware虚拟机安装Win7专业版保姆级教程(附镜像包)
  • 实现一个BLE HID鼠标
  • 1小时构建Vue3知识体系之vue的生命周期函数
  • Chrome使用IE内核
  • 万户协同办公平台ezoffice wpsservlet接口任意文件上传漏洞
  • uni-app 微信小程序之好看的ui登录页面(四)
  • JM中ref_pic_list_modification bug记录
  • 金融行业文件摆渡,如何兼顾安全和效率?
  • 视频封面提取:精准截图,如何从指定时长中提取某一帧图片
  • 性能优化一条龙
  • Spring Boot的日志
  • 【PyTorch】模型的基本操作
  • html电子签名
  • vue+echarts实现桑吉图的效果
  • 策略模式终极解决方案之策略机
  • Jquery easyui异步提交表单的两种方式
  • Vue练习 v-model 指令在状态和表单输入之间创建双向绑定
  • Vue3集成ThreeJS实现3D效果,threejs+Vite+Vue3+TypeScript 实战课程【一篇文章精通系列】
  • stm32f103使用hal库函数读写内部flash
  • 【分布式微服务专题】从单体到分布式(二、SpringCloud整合Nacos)
  • TR转发路由器测评—云企业网实现跨地域跨VPC的网络互通测评实战【阿里云产品测评】
  • tomcat环境搭建
  • 深入理解Dubbo-1.初识Dubbo
  • Csharp(C#)无标题栏窗体拖动代码