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

怎么健免费网站吗/培训心得体会2000字

怎么健免费网站吗,培训心得体会2000字,大学生网页设计,ps制作博客网站界面文章目录 前言一、动态合批的规则1、材质相同是合批的前提,但是如果是材质实例的话,则一样无法合批。2、支持不同网格的合批3、动态合批需要网格支持的顶点条件二、我们导入一个模型并且制作一个Shader,来测试动态合批1、我们选择模型的 Mesh…

文章目录

  • 前言
  • 一、动态合批的规则
    • 1、材质相同是合批的前提,但是如果是材质实例的话,则一样无法合批。
    • 2、支持不同网格的合批
    • 3、动态合批需要网格支持的顶点条件
    • 二、我们导入一个模型并且制作一个Shader,来测试动态合批
    • 1、我们选择模型的 Mesh ,可以查看模型的顶点信息
    • 2、我们先来测试一下 300 个顶点限制的动态合批
    • 3、我们来测试一下Shader中使用了 Position、normal 、uv0 、uv1 和 tangent 最多只能180个顶点以下的动态合批


前言

我们来解析一下上篇文章中提到的 Batching 中的 动态合批

  • Unity渲染Stats分析

一、动态合批的规则

在这里插入图片描述

动态合批是Unity默认去执行的,我们无法控制中间的步骤,我们只能按照Unity指定的规则去做

1、材质相同是合批的前提,但是如果是材质实例的话,则一样无法合批。

什么情况下会产生材质实例呢?
在之前使用协程控制Shader材质变化的文章中,修改材质使用 .material 来修改会导致生成材质实例

  • Unity中C#使用协程控制Shader材质变化

2、支持不同网格的合批

3、动态合批需要网格支持的顶点条件

  • 单个网格最多 300 个顶点,900个顶点属性。(顶点属性的上限未来可能会调整)
  • 如果Shader中用到了网格的Position、normal 和 uv 的话,则最多300 个顶点
  • 如果Shader中用到了网格的Position、normal 、uv0 、uv1 和 tangent 的话,则最多是 180 个顶点
  • 负方向缩放会导致无法动态合批,早期Unity缩放不一致也会导致无法动态合批

这里的顶点属性,指的是 顶点位置信息、顶点法线信息、顶点切线信息 等这些属性


二、我们导入一个模型并且制作一个Shader,来测试动态合批

1、我们选择模型的 Mesh ,可以查看模型的顶点信息

在这里插入图片描述

可以在Mesh信息中,了解到入下信息:

  • 顶点有 200 个,占用 9.4k
  • 顶点属性包含Position,Normal,Tangent,UV0

2、我们先来测试一下 300 个顶点限制的动态合批

Shader "MyShader/P2_6_2"
{Properties{}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);return o;}fixed4 frag (v2f i) : SV_Target{return 1;}ENDCG}}
}
  • 我们给 这个顶点数小于 300 的模型,使用这个Shader材质,我们会发现只有两个批次

在这里插入图片描述

  • 我们复制一份该模型,因为使用了同一个材质,所以被动态合批了,还是只有两个批次

在这里插入图片描述

  • 我们创建一个新的球体,因为使用了不同的材质,所以现在渲染了3批次

在这里插入图片描述

  • 但是,我们给该球使用同一材质时,会发现还是使用了3个批次

原因是:该球体的Mesh顶点数超过了300,不支持动态合批

在这里插入图片描述

3、我们来测试一下Shader中使用了 Position、normal 、uv0 、uv1 和 tangent 最多只能180个顶点以下的动态合批

如果这几个属性只是在Shader的appdata中声明,并不算真正的用到该属性

Shader "MyShader/P2_6_2"
{Properties{_Color("Color",Color) = (1,1,1,1)}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;float3 normal : NORMAL;float3 tangent : TANGENT;float2 uv1 : TEXCOORD1;};struct v2f{float2 uv : TEXCOORD0;float4 pos : SV_POSITION;float2 uv1 : TEXCOORD1;float3 normal : TEXCOORD2;float3 tangent : TEXCOORD3;float3 worldPos : TEXCOORD4;};fixed4 _Color;v2f vert (appdata v){v2f o;o.pos = UnityObjectToClipPos(v.vertex);o.worldPos = mul(unity_ObjectToWorld,v.vertex);o.uv = v.uv;o.uv1 = v.uv1;o.normal = v.normal;o.tangent = v.tangent;return o;}fixed4 frag (v2f i) : SV_Target{return i.worldPos.y * 0.15 + _Color;}ENDCG}}
}
  • 可以看出,虽然我们的物体还是之前的两个板凳。但是批次变成了3次。说明没有动态合批成功

在这里插入图片描述

相关文章:

Unity中Batching优化的动态合批

文章目录 前言一、动态合批的规则1、材质相同是合批的前提,但是如果是材质实例的话,则一样无法合批。2、支持不同网格的合批3、动态合批需要网格支持的顶点条件二、我们导入一个模型并且制作一个Shader,来测试动态合批1、我们选择模型的 Mesh…...

2022年第十一届数学建模国际赛小美赛B题序列的遗传过程解题全过程文档及程序

2022年第十一届数学建模国际赛小美赛 B题 序列的遗传过程 原题再现: 序列同源性是指DNA、RNA或蛋白质序列之间的生物同源性,根据生命进化史中的共同祖先定义[1]。DNA、RNA或蛋白质之间的同源性通常根据它们的核苷酸或氨基酸序列相似性来推断。显著的相…...

【Linux】静态库与动态库制作及运行原理

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法…感兴趣就关注我吧!你定不会失望。 本篇导航 0. 静态库与动态库1. 制作与使用静态库2. 制作与使用动态库3. 动态库是如何被加载到内存?3.1程序地址空间 0. 静态库…...

工具站推荐

自己搭了一个文本工具站 TextTool,包含了常用的文本功能。 我自己比较常用 行转列、列转行、下划线替换的功能。 欢迎各位大佬提意见和建议...

【JS】toFixed()无法精准保留小数的解决方案

情景复现: 发现用 toFiexd() 四舍五入保留小数有时不是很精确,接下来用 a 8.0345,b8.045,举例如下: var a 8.035; console.log(a.toFixed(2)) // 8.04 var b 8.045; console.log(b.toFixed(2)) // 8.04 不难看出…...

vue3版本学习

1,响应式ref或者reactive const aa ref(hello) const bb reactive({ aa: hello, ss: workd }) 2,计算属性 响应式属性经过计算得到的值(ref),放到模板中,只会随着响应式author.books属性变化而变化 const autor …...

【WPF.NET开发】创建简单WPF应用

本文内容 先决条件什么是 WPF?配置 IDE创建项目设计用户界面 (UI)调试并测试应用程序 通过本文你将熟悉在使用 Visual Studio 开发应用程序时可使用的许多工具、对话框和设计器。 你将创建“Hello, World”应用程序、设计 UI、添加代码并调试错误。在此期间&#…...

视频智能分析国标GB28181云平台EasyCVR加密机授权异常是什么原因?

国标GB28181视频汇聚/视频云存储/集中存储/视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、云存储、智能分析等。 近期有用户选择使用加密机进行EasyCVR授…...

Mysql安全之基础合规配置

一、背景 某次某平台进行安全性符合型评估时,列出了数据库相关安全选项,本文特对此记录,以供备忘参考。 二、安全配置 2.1、数据库系统登录时的用户进行身份标识和鉴别; 1)对登录Mysql系统用户的密码复杂度是否有要…...

前后端分离项目跨域请求

一、前端vue项目 在项目中创建request.js文件,添加以下内容 import axios from "axios"; const api axios.create({ //这里配置的是后端服务提供的接口baseURL: "http://localhost:8080/web-demo",timeout: 1000} ); export default api; …...

OpenEuler系统桌面终端设置字体

初始界面 终端的字体间距过大,阅读起来不方便。 调整终端字体 点击菜单,选择“配置文件首选项” 未命名 ---- 文本---- 勾选 自定义字体 ---- 选择 "DejaVu LGC Sans Mono"字体 你也可以根据自己的喜好,选择其他字体。 修改好了…...

repo常用命令解析(持续更新)

1 同步 1.1 将本地仓库更新到最新状态。它会从远程服务器下载最新的代码,并将本地仓库与之同步。如果本地仓库中已经存在某个项目,repo sync会自动检测本地仓库中该项目的版本,并将其更新到最新状态。 类似于git fetch和git merge命令组合使…...

关于小红书商单变现的一些答疑

AI小红书商单训练营也过去1个月了,今天给大家汇总几个常遇到的问题,希望对大家在运营过程中有所帮助。 1.账号封面是否要统一模版? 为了让账号主页呈现整洁美观的效果,建议统一封面设计,视频开头可以设置一个固定画面…...

使用 Kubernetes Agent Server 实现 GitOps

目录 温习 GitOps 极狐GitLab Kubernetes Agent 极狐GitLab GitOps workflow 极狐GitLab KAS 的配置 创建极狐GitLab agent 创建 agent token Kubernetes 上安装 agent(agentk) 极狐GitLab GitOps workflow 实践 写在最后 温习 GitOps GitOps …...

Day12 qt QMianWindow,资源文件,对话框,布局方式,常用ui控件

QMianWindow 概述 QMainWindow 是一个为用户提供主窗口程序的类,包含一个菜单栏( menu bar )、多 个工具栏 (tool bars) 、多个铆接部件 (dock widgets) 、一个状态栏 (status bar) 及 一个中心部件 (central widget) 许多应用程序的基础…...

Python实现广义线性回归模型(statsmodels GLM算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 广义线性模型(Generalized Linear Model,简称GLM)是一种广泛应用于回归分析和分类问题的统…...

GNSEC 2022年第8届全球下一代软件工程线上峰会-核心PPT资料下载

一、峰会简介 新一代软件工程是指利用新的理论、方法和技术,在软件开发、部署、运维等过程中,实现软件的可控、可预测、可维护的软件生产方式。它涵盖了多个领域,如软件开发、测试、部署、运维等,旨在提高软件生产效率和质量。 …...

nVisual能为数据中心解决什么问题?

nVisual通过可视化的管理方式,使数据中心管理者能够有效且高效地管理数据中心的资产、线缆、容量、变更;使数据中心管理者能够获得如下问题的答案,以便能够快速做出更好、更明智的决策: 1.资产管理 我们有什么&#x…...

Android--Jetpack--Databinding详解

不经一番寒彻骨,怎得梅花扑鼻香 一,定义 DataBinding, 又名数据绑定,是Android开发中非常重要的基础技术,它可以将UI组件和数据模型连接起来,使得在数据模型发生变化时,UI组件自动更新。是 MVVM 模式在 An…...

Node.js入门指南(完结)

目录 接口 介绍 RESTful json-server 接口测试工具 会话控制 介绍 cookie session token 上一篇文章我们介绍了MongoDB,这一篇文章是Node.js入门指南的最后一篇啦!主要介绍接口以及会话控制。 接口 介绍 接口是前后端通信的桥梁 &#xff0…...

MySQL和Java通用加密解密方式

加密方式使用 AES 加密,再转成 Base64。 SQL -- 加密 update your_table set your_columnto_base64(aes_encrypt(your_column, "password"));-- 解密 select aes_decrypt(from_base64(your_column) ,"password") from your_table; 使用原生 …...

若依前端APP版使用教程

1 增加页面流程 新增Page>新增API>新增组件>新增样式>新增路径(page.json) {"path": "pages/mes/pro/feedback/index","style": {"navigationBarTitleText": "工单报工"}} <template><view class&quo…...

2023 年工程师不可错过的 AI 主要发展趋势

从对未来的好奇到关键的企业工具&#xff0c;人工智能的发展证明了它对工程师的价值。不久前&#xff0c;Gartner 预测&#xff0c;采用人工智能工程实践来构建和管理自适应人工智能系统的企业&#xff0c;在实施人工智能模型方面的表现将优于同行至少 25%&#xff0c;这为各组…...

记录 | 安装地平线工具链install_ai_toolchain.sh出现cython版本问题报错解决

安装地平线工具链 install_ai_toolchain.sh&#xff1a; cd ddk/package/host/ai_toolchain bash install_ai_toolchain.sh出现报错&#xff1a; Requirement already satisfied: packaging>20.0 in /root/.local/lib/python3.8/site-packages (from matplotlib>2.1.0-…...

Java8流操作

Java8流操作 1. 双层Map一层List 1. 双层Map一层List 代码片 // 开始分组Map<String, Map<Object, List<ProjectGeographyVO>>> collect4 vos.stream()// 注释了下行没用市级项目,只有区// .filter(data -> String.valueOf(data.getCode()).length() …...

vue-socket.io以及原生websocket的使用

vue3使用socket.io 1、安装 npm install vue-socket.io2、创建socket.js文件 export const registerSockets (sockets, proxy) > {sockets &&Object.keys(sockets).forEach((t) > {// console.log(t);// "subscribe" ! t &&// "un…...

谷歌推出功能最强大的大语言模型Gemini;大规模语言模型:从理论到实践

&#x1f989; AI新闻 &#x1f680; 谷歌推出功能最强大的大语言模型Gemini 摘要&#xff1a;谷歌正式推出其迄今为止功能最强大、最通用的大语言模型Gemini。Gemini在许多测试中表现出了最先进的性能&#xff0c;在大部分基准测试中击败了OpenAI的GPT-4。谷歌发布了三种不同…...

Android studio 工程的 module 依赖关系图绘制 、 Android Module 依赖关系的可视化实现

整体步骤&#xff1a; 1、利用gradle脚本生成dot&#xff1b; 2、利用graphviz将dot可视化转为图片 利用gradle脚本生成dot 下载projectDependencyGraph.gradle脚本 下载 projectDependencyGraph.gradle &#xff0c;放在项目根目录&#xff0c; 源码如下&#xff1a; t…...

Qt之QGraphicsView —— 笔记1.2:将QGraphicsView放置主窗口上,绘制简单图元(附完整源码)

效果 相关类介绍 QGraphicsView类提供了一个小部件,用于显示QGraphicsScene的内容。QGraphicsView在可滚动视口中可视化。QGraphicsView将滚动其视口,以确保该点在视图中居中。 QGraphicsScene类 提供了一个用于管理大量二维图形项的场景。请注意,QGraphicsScene没有自己的视…...

linux的权限管理

在Linux系统中&#xff0c;文件和目录的权限管理是通过用户、组以及其他用户对文件和目录的读&#xff08;r&#xff09;、写&#xff08;w&#xff09;和执行&#xff08;x&#xff09;权限来实现的。以下是有关Linux权限管理的详细解释&#xff1a; 文件和目录权限&#xff1…...