Mesh概念:Mesh是Unity中的一个数据结构,称为网格。通俗的讲,Mesh是指模型的网格,3D模型是由多边形拼接而成,而多边形实际上是由多个三角形拼接而成的。所以一个3D模型的表面其实是由多个彼此相连的三角面构成。三维空间中,构成这些三角形的点和边的集合就是Mesh。
vertices:
normals:
uv:
tangents:
boneWeights :
colors/colors32:
//顶点位置数组
public Vector3[] vertices ;
//两种方法更改
//public void SetVertices (List<Vector3> inVertices);
mesh.SetVertices(vertices);
mesh.vertices = vertices;
//改变 vertices 后通常需要重新计算包围盒
mesh.RecalculateBounds();
//每一个顶点的法线方向
public Vector3[] normals ;
//uv列表
public Vector2[] uv ;
//网格的切线。
//切线最常用于凹凸贴图着色器中。切线是单位长度的矢量,它顺着网格 表面沿水平 (U) 纹理方向。Unity 中的切线表示为 Vector4, 其“x,y,z”分量定义矢量,而 w 用于在需要时翻转副法线。
//Unity 计算另一个表面矢量(副法线)的方法是获取法线与切线 之间的叉积,然后将结果乘以切线的 w。因此,w 应始终为 1 或 -1。
//如果计划在网格上使用凹凸贴图着色器,则应自己计算切线。 在分配 normals 或使用 RecalculateNormals 之后分配切线。
//注意:若要对 tangents 进行更改,从 Mesh 复制 切线十分重要。复制和更改 tangents 之后,normals 即可重新分配回 Mesh。
public Vector4[] tangents ;
//每个顶点的骨骼权重。
public BoneWeight[] boneWeights ;
//网格的顶点颜色。
//如果没有顶点颜色可用,则返回空数组。
public Color[] colors ;
//与 colors 相同,但是使用 Color32 结构的性能更好。
public Color32[] colors32 ;
//该数组是三角形的列表,包含顶点数组的索引,长度必须始终是 3 的倍数。
//使用此属性分配三角形数组时,subMeshCount 设置为 1。如果要具有多个子网格,请使用 SetTriangles。
public int[] triangles ;
public void SetTriangles (int[] triangles, int submesh, bool calculateBounds= true, int baseVertex= 0);
public void SetTriangles (int[] triangles, int submesh);
public void SetTriangles (List<int> triangles, int submesh, bool calculateBounds= true, int baseVertex= 0);
public void SetTriangles (List<int> triangles, int submesh);
public int[] GetTriangles (int submesh);
public int[] GetTriangles (int submesh, bool applyBaseVertex= true);
public void GetTriangles (List<int> triangles, int submesh, bool applyBaseVertex= true);
public void GetTriangles (List<int> triangles, int submesh);
//决定索引的布局为三角形、四边形等
public MeshTopology GetTopology (int submesh);
//* SetIndices 、GetIndices 、GetIndexStart 、GetIndexCount
//* 子网格的 GetIndices 方法得到索引列表,始终是在 mesh.vertices 中截取的范围,范围的起始索引为 GetIndexStart ,数量为 GetIndexCount。
//* 只能通过 SetIndices 来指定截取的范围。
//* 当为 MeshTopology(网格拓扑) 为 MeshTopology.Triangles(三角形) 时, GetIndices 与 GetTriangles 得到的结果是一致的
public void SetIndices (int[] indices, MeshTopology topology, int submesh, bool calculateBounds);
public void SetIndices (int[] indices, MeshTopology topology, int submesh);
public void SetIndices (int[] indices, MeshTopology topology, int submesh, bool calculateBounds= true, int baseVertex= 0);
public void GetIndices (List<int> indices, int submesh);
public int[] GetIndices (int submesh)
public uint GetIndexStart (int submesh);
public uint GetIndexCount (int submesh);
MeshFilter: 译作 网格过滤器,记载着物体对应的所有Mesh的引用,当渲染GameObject时,通过MeshFilter获取其对应的Mesh。
MeshFilter是一个从Unity老版本留存下来的叫法,实际上它并不过滤任何东西,如果换一个更准确的名字:MeshRefference 可能更好理解。
用来渲染Mesh的组件。

Materials:材质
Size:材质数量
网格渲染器与Unity中的照明进行交互的属性
1)Cat Shadows:投射阴影。有四种模式
1、off:没用投射阴影
2、on:有投射阴影
3、Two Sided:可以从网格的任意一面投射出阴影。适用于半封闭物体
4、Shadows Only:只显示阴影,不显示网格
2)Receive Shadows:这个物体是否接收阴影
3)Contribute Global Illumination:选中此复选框可在游戏对象的 Static Editor Flags 中启用 Contribute GI。取消选中此复选框可在游戏对象的 Static Editor Flags 中禁用 Contribute GI。勾选后,才可以编辑以下内容。
3)Receive Global Illumination :设置此渲染器是从光照贴图还是从光照探针接收全局光照。
Lightmaps:此渲染器从光照贴图接收全局光照。
Light probes:光照探针|此渲染器从光照探针接收全局光照。
5)Prioritize illumination:启用此属性表示在实时全局光照 (Realtime Global Illumination) 计算中始终包含这个游戏对象。这很适合用于影响远离发光游戏对象的游戏对象,而发光游戏对象出于性能原因通常不会受到影响。
仅当在游戏对象的 Static Editor Flags 中启用了 Contribute GI__,项目使用内置渲染管线 (Built-in Render Pipeline),并且在场景中启用了 Realtime Global Illumination(已弃用)时,此属性才可见。

仅当 Receive Global Illumination 设置为 Lightmaps 时,此部分才可见。
1)Scale in Lightmap: 指定游戏对象的 UV 在光照贴图中的相对大小。值为 0 会使游戏对象不进行光照贴图,但仍然有助于为场景中的其他游戏对象提供光照。大于 1.0 的值会增加用于此游戏对象的像素数(光照贴图分辨率),而小于 1.0 的值会减小该像素数。
您可以使用此属性来优化光照贴图,从而更精确地为重要和高度细节化的区域提供光照。例如:一幢具有平坦黑暗墙壁的隔离建筑物将使用低光照贴图比例(小于 1.0),而一组靠近在一起显示的彩色摩托车则需要高比例值。
2)Lightmap Parameters:为此游戏对象选择或创建光照贴图参数资源。
Scene Default Parameters:场景默认参数
Default-HightResolution:默认的高分辨率
Default-LowResolution:默认的低分辨率
Default-Medium:默认的中分辨率
Default-VeryLowResolution:默认的非常低分辨率
Create New…:创建新的自定义
3)Optimize Realtime UVs :指定创作的网格 UV 是否针对实时全局光照 (Realtime Global Illumination) 进行优化。启用此属性后,Unity 会对创作的 UV 进行合并、缩放和打包以实现优化。
禁用此属性后,Unity 会对创作的 UV 进行缩放和打包,但不会合并。
优化机制有时会在原始 UV 贴图中产生关于不连续性的错误。例如,有意锐利的边缘可能被误解为连续表面。
Max Distance:指定用于简化 UV 图表的最大世界空间距离。如果图表在此距离之内,则 Unity 会简化图表。
Max Angle:指定共享 UV 边缘的面之间的最大角度(以度为单位)。如果面之间的角度小于此值,则 Unity 将简化 UV 图表。
4)Ignore Normals:忽略法线,启用此选项可防止 Unity 在实时全局光照的预计算过程中拆分 UV 图表。
5)Min Chart Size:指定用于 UV 图表的最小纹理像素大小。如果需要拼接,则值 4 将创建一个 4x4 纹理像素的图表来存储光照和方向性。如果不需要拼接,则值 2 将降低纹理像素密度并提供更好的光照构建时间和游戏性能。
6)Realtime/Baked Lightmap:烘焙光照数据(菜单:Window > Rendering > Lighting Settings > Generate Lighting)后,此部分还将显示这个渲染器在场景中使用的光照贴图。在此处可以查看有关烘焙光照贴图 (Baked Lightmap) 和实时光照贴图 (Realtime Lightmap) 的相关信息(如果适用)。
部分包含与光照探针 (Light Probes) 和反射探针 (Reflection Probes) 有关的属性。
仅当 Receive Global Illumination 设置为 Light probes 时,此部分才可设置。
1)Light Probes : 设置此渲染器如何从光照探针系统接收光照。
有关更多信息,请参阅光照探针。
Off 渲染器不使用任何插值光照探针。
Blend Probes 渲染器使用一个插值光照探针。这是默认值。
Use Proxy Volume 渲染器使用插值光照探针的 3D 网格。
Custom Provided 渲染器从 MaterialPropertyBlock 提取光照探针着色器 uniform 值。
2)Proxy Volume Override: 设置对另一个具有 Light Probe Proxy Volume 组件的游戏对象的引用。仅当 Light Probes 设置为 Use Proxy Volume 时,此属性才可见。
3)Reflection Probes:设置渲染器如何从反射探针系统接收反射。
Off 禁用反射探针。Unity 将天空盒用于反射。
Blend Probes 启用反射探针。混合仅在反射探针之间发生。在室内环境中,如果角色可能在具有不同光照设置的区域之间过渡,此设置会很有用。
Blend Probes and Skybox 启用反射探针。混合发生在反射探针之间或反射探针与默认反射之间。这对于室外环境很有用。
Simple 启用反射探针,但存在两个重叠的探针体积时,反射探针之间不会发生混合。
4)Anchor Override:网格锚点。当使用光探针或反射探针时,用来决定插值位置。如果两个网格都根据它们自身的边界盒被单独照亮,那么光照在它们的连接点将会不连续。这里可以通过使用相同的Transform来作为两个Mesh Renderers的插值点,来避免这个问题
1)Motion Vectors 设置是否使用运动矢量来跟踪此渲染器从一帧到下一帧的每像素屏幕空间运动。使用此信息可以应用后期处理效果,例如运动模糊。请注意,并非所有平台都支持运动矢量。请参阅 SystemInfo.supportsMotionVectors 以了解更多信息。
Camera Motion Only 仅使用摄像机移动来跟踪运动。
Per Object Motion 使用特定通道来跟踪此渲染器的运动。
Force No Motion 不跟踪运动。
2)Dynamic Occlusion:启用 Dynamic Occlusion 后,线渲染器在摄像机的视图中被静态渲染器 (Static Occluder) 阻挡时,Unity 会剔除线渲染器。默认情况下启用 Dynamic Occlusion。
禁用 Dynamic Occlusion 后,线渲染器在摄像机的视图中被静态渲染器 (Static Occluder) 阻挡时,Unity 不剔除线渲染器。禁用 Dynamic Occlusion 可以实现诸如在墙后绘制角色轮廓之类的效果。
参考文章:
https://www.cnblogs.com/kingBook/p/13496389.html
https://blog.csdn.net/bingliangdeai/article/details/108640579
https://www.baidu.com/link?url=OEd4bGHR3goYezS702eGVxyLO9BzFDK4wVrSy5soT9BItmdNvM2o8FDPhd-Ryk6yNIg29YnKjaOJpMPCw6dhv_&wd=&eqid=b02203c900029b620000000462e9fa63
QNetworkReply理论总结一、概述二、使用1.读取body内容2.获取head属性值3.错误处理一、概述QNetworkReply类包含了与QNetworkAccessManager发送的请求回来的相关的数据和元数据。与QNetworkRequest类似,它包含一个URL和头部(包括解析的和原始的形式),一些关于应答状态的信息和应答本身的内容。这个类的结果本质上和http协议的返回结果一致的。Http协议的话很像下面的这个图简单来看其实就是下面这个图QNetworkReply是一个顺序访问的QIODevice,这意味着数据一旦从对象中读取,就不再由设备保存。因此,如果需要,保存这些数据
一、Mesh网格Mesh概念:Mesh是Unity中的一个数据结构,称为网格。通俗的讲,Mesh是指模型的网格,3D模型是由多边形拼接而成,而多边形实际上是由多个三角形拼接而成的。所以一个3D模型的表面其实是由多个彼此相连的三角面构成。三维空间中,构成这些三角形的点和边的集合就是Mesh。1.顶点、法线、UV、顶点色vertices:normals:uv:tangents:boneWeights:colors/colors32://顶点位置数组publicVector3[]vertices;//两种方法更改//publicvoidSetVertices(ListinVertices);mesh
文章目录⭐运行Demo应用-宠物名字生成器🌟安装-node.js🌟利用git下载Demo应用-宠物名字成器🌟添加API秘钥🌟安装依赖并运行Demo应用-宠物名字成器⭐访问并测试Demo应用-宠物名字成器在上一章节,我们已经对于ChatGPT的“提示(prompt)”与“完成(completion)”有了更深层次的的了解。接下来我们演示一个官方提供的Demo应用,叫做“宠物名字生成器”。⭐运行Demo应用-宠物名字生成器官方已经为我们编写了一些代码来帮助我们入门,我们可以按照接下来的步骤下载代码并运行应用程序。🌟安装-node.js我们要运行的Demo应用-宠物名字成器需要使用到nodejs环境
🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!博主沐沐:当你的才华撑不起你的野心的时候,你就应该静下心来学习!欢迎志同道合的朋友一起加油喔🤺🤺🤺目标梦想:进大厂,立志成为一个牛掰的Java程序猿,虽然现在还是一个🐒嘿嘿谢谢你这么帅气美丽还给我点赞!比个心目录前言 1.定义2.return的用法3.break和return的区别:前言此篇帮助不理解return用法的小伙伴们快速扫盲! 1.定义 return语句可以使其从当前方法中退出,返回到调用该方法的语句处,继续程序的执行。2.return的用法1.在return后面加上变量,表示该方法有返回值,并用return返回,例如返
文末一口气赠书18本,这次就让你high个够。人工智能技术的发展已经逐渐改变了我们的生活和工作方式,其中,语言模型技术是近年来关注度很高的一个领域。在这个领域,ChatGPT是一个备受瞩目的产品,它不仅是一个聊天程序,更是一个能够产生具有连贯性和逻辑性的文本的神经网络模型。ChatGPT最新动态(你好,ChatGPT)2018年6月 :OpenAI发布GPT-1模型,1.1亿参数2018年11月:OpenAI发布GPT-2模型,15亿参数,但由于担心滥用,不向公众开放模型的全部代码及数据2019年2月: OpenAI开放了GPT-2模型的部分代码和数据,但仍然限制了访问2019年6月: O
文章目录⭐什么是ChatGPT⭐OpenAI团队⭐详解ChatGPT聊天机器人⭐ChatGPT的应用领域⭐作为程序员应该为ChatGPT的出现感到恐惧吗有感于最近ChatGPT大火的原因,我这低眉顺眼的XXX也开始来蹭热度了。没办法,这玩意儿的热度太火了,就略准备了一下,希望这个系列能够帮助到更多的小伙伴吧。该系列专栏的目的:由浅入深,从概念、原理、注册、到使用ChatGPT,了解ChatGPT的用法与用途,再到各个OpenAI模型、产品的代码示例,以及实践案例,带领大家学习掌握OpenAI的开发。比如说:使用Python开发一个网页版的ChatGPT聊天机器人,一个基于ChatGPT实现的问
架构设计作为系统开发过程中需求分析阶段后的一个关键步骤,也是系统设计前的不可或缺工作要点之一,架构设计的作用主要包括以下几点:解决相对复杂的需求分析问题。解决非功能属性在系统占据重要位置的设计问题。解决声明周期长、扩展性需求高的的系统整体结构问题。解决系统基于组件需要的集成问题。解决业务流程再造难的问题。IEEE针对软件密集系统进行了架构定义,其对架构定义如下:架构是体现在组件中的一个系统的基本组织、它们彼此的关系与环境的关系及指导它的设计和发展的原则。系统是组织起来完成某一特定功能或一组功能的组件集。系统这个术语包括了单独的应用程序、传统意义上的系统、子系统、系统之系统、产品线、整个企业及感
git是一个常用的代码管理工具,但大家可能更多的是停留在使用上(而且是那一种,可视化界面,点点点的形式),甚至不知道各个命令的具体意义,接下来就扫扫盲吧。gitinit。创建一个名为.git的子目录,其中包含初始化的Git仓库中所有不可或缺的初始化文件。它们是Git仓库的“骨干”。需要明确的是,这个命令仅仅是进行初始化操作,项目中的文件没有被跟踪。gitclone。从Git仓库复制一个已存在的项目到本地。复制涵盖的内容是该Git仓库中几乎所有的数据。而不仅仅是复制工作中的文件。当执行gitclone命令的时候,默认配置是将远程Git仓库中所有文件的每个版本进行拉取。Git仓库的工作目录中的每一
引言:本文我们介绍下DDR3的基础知识,涉及DDR3管脚信号、容量计算、重要参数介绍内容。01.DDR3SDRAM概述DDR3SDRAM全称double-data-rate3synchronousdynamicRAM,即第三代双倍速率同步动态随机存储器。双倍速率(double-data-rate),是指时钟的上升沿和下降沿都发生数据传输;同步,是指DDR3数据的读取写入是按时钟同步的;动态,是指DDR3中的数据掉电无法保存,且需要周期性的刷新,才能保持数据;随机,是指可以随机操作任一地址的数据。以镁光MT41K256M16RH-107为例(以下介绍均以此芯片为例),该芯片容量为512GB(4
首先,需要认识到的是,生活中声音都是模拟信号,比如正弦信号等。但是CPU能处理的信号是数字信号,所以需要进行AD转化,输入到系统处理后,通过DA转换,然后输入到音频系统进行放大等播放出来。一、这里提到的几个过程进行简单描述1.AD转换对模拟信号进行采样-----》保持-----》量化------》编码采样还有许多参数,比如分辨率、采样精度、采样量程等,挑几个在音频中经常使用的描述一下(1)采样频率:AD转换器在单位时间内对模拟信号的采样次数。采样应该遵行采样定理:奈奎斯特采样定理奈奎斯特采样定理https://baike.baidu.com/item/%E9%87%87%E6%