首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在UI界面设计中使用8pt网格系统?(附静电的思考和吐槽)

—————————————————— 8pt网格(栅格)系统可以用于平面设计,图标,或者页面布局。 ? 在本文中,我会说服你为什么要使用8pt的网格系统,因为这是最好的定位网格系统。...为iOS导出16×16像素的图标将得到16、32和48像素的完美呈现的图标 如果你打算使用其他尺寸的图标,建议你在16X16像素的网格上设计,并在20x20的像素网格上设计另一个版本。...我自己选择在移动设备上使用6列布局,尽管当我尝试使用2列布局时,最终结果并不是最差。 对于375pt宽的屏幕,我建议使用以下设置: ?...这里作者的解释有点尴尬了。) 到此为止,本文就结束了,作者还有本系列的第二篇文章,讲述的是如何设计基于8pt的网格设计系统。...在Ui设计领域,作者仅仅从图标和文字角度解释了为什么需要使用8的倍数来进行设计,无非是换算中比较容易一些。但是我的观点是:如果不使用8pt网格系统,除了换算容易之外,还有什么其它优势吗?

2.9K20

进阶渲染系列(一)——平坦和线框着色(导数和几何体)

修复线宽度2.7 配置线 本文重点: 1、使用屏幕空间导数查找三角形法线 2、通过几何着色器找出三角形法线 3、使用生成的重心坐标创建线框 4、是线框固定宽度并且可配置 本教程介绍如何添加对平面着色的支持以及如何显示网格的线框...除了平面着色,显示网格的线框也可能有用或看起来时尚。这使得网格的拓扑更加明显。理想情况下,可以使用自定义材质 在一个单一的pass下,对任何网格进行平面着色和线框渲染。...为了确定表面法线,我们需要知道三角形在世界空间中的方向。这可以通过三角形顶点的位置来确定。假设三角形不退化,则其法线向量等于三角形两个边缘的归一化叉积。如果它是退化的,则无论如何都不会渲染。...在三角形之外,片段的插值数据会推到顶点所定义的范围之外。 创建一个使用我们的Flat Wireframe着色器的新材质。使用此材质的任何网格均应使用平面着色渲染。...它们看起来是多面的,如果你同时使用法线贴图时可能很难看清。所以, 在本教程的截图中,会使用标准的胶囊网格,材质为灰色。 ? ?

2.5K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Unity性能调优手册4:资源优化,Texture,Mesh,Material,Animation,ParticleSystem,Audio,ScriptableObject

    此设置通常用于3D对象,以减少远距离对象的锯齿和纹理传输。对于2D精灵和UI图像来说,它基本上是不必要的,所以应该禁用它。...不必要的顶点数据将根据使用的着色器自动确定。这将减少运行时的内存和存储。 可以在“Project Settings -> Player ”下的“Other ”中进行设置。...当只绑定网格资源时,不正确的材质设置可能会导致不必要的顶点数据。这在只提供网格参考的情况下很常见,例如在粒子系统中。 Material 材质球是决定物体如何渲染的重要功能。...译者增加部分 如果项目中无法避免new材质球,可以使用对象池管理材质球 Animation 调整skin weights 的数量 在内部,运动通过计算每个顶点对每个骨骼的影响程度来更新每个顶点的位置。...Particle System 游戏效果对于游戏呈现来说是必不可少的,Unity经常使用粒子效果 系统。在本章中,我们将从性能调优的角度介绍如何使用粒子系统,以及如何避免错误。

    1.6K32

    Unity-Optimizing Unity UI(UGUI优化)01 导航、Unity UI的基础概念与原理

    然而,在实际情况中,任何使用绘制调用重载GPU的项目更有可能受到填充率过度使用的约束。 下面将给出一些基本概念,算法和Unity UI的底层代码。...Unity UI的基础 理解Unity UI系统的各个部分是重要的。这里有几个基础的类和组件。本章首先定义了一些文中使用的术语,Unity UI关键系统的底层实现细节。...网格数据从Canvas中的Canvas Renderer组件中拿取,不包含Sub-canvas。 计算batches需要对网格进行排序和验证它们是否被覆盖,是否有共享的材质等等。...使用排序后的Layout组件对Layouts进行重建,Layout组件改变UI元素的位置和大小。...Graphic组件实现这个方法并在重建中实行两步: 如果顶点数据被标记为dirty(eg:RectTransform改变了size),之后网格将进行重建 如果材质资源被标记为dirty(eg:组件的材质或者贴图发生了变化

    2.4K30

    基础渲染系列(十一)——透明度

    但是,当你使用这种材质选择一个四边形时,你会看到一个大致为圆形的选择轮廓。 ? (在不透明四边形上展示选中的轮廓) 如何得到选中的轮廓? Unity 5.5引入了新的选择轮廓的显示方法。...在alpha值变为零的位置绘制轮廓。 1.1 确定Alpha值 要检索alpha值,我们可以将GetAlpha函数添加到“My Lighting”包含文件中。...因此,我们将使用UI设置自定义渲染队列,而不是使用标记,它会取代着色器的队列。通过在检查器处于调试模式下进行选择,可以找出材质的自定义渲染队列是什么。...由于这些属性取决于渲染模式,因此我们不会在UI中显示它们。如果不使用自定义UI,则可以使用HideInInspector属性将其隐藏。无论如何,我都会添加这些属性。 ?...因此,必须以其他方式绘制透明的几何图形。首先绘制最远的对象,最后绘制最接近的对象。这就是为什么透明的东西比不透明的东西要贵得多的原因。 为了确定几何图形的绘制顺序,Unity使用其中心的位置。

    3.8K20

    Unity Mesh基础系列(一)生成网格(程序生成)

    它可以来自于其他软件制作的3D模型进行导入,可以是由代码动态生成出来的,也可以是一个sprite、UI元素或者是粒子系统,这些统统都是要用到mesh的,就连一些屏幕的后处理特效都需要使用mesh来渲染。...第一个是mesh filter,它决定了你想展示那个mesh;第二个是mesh renderer,它决定了你应该如何渲染mesh,比如使用什么材质球,是否接受阴影或者投影等等。 ?...(凹凸不平的表面,使金属产生戏剧性的效果) 但只将这种材质球应用到我们的网格中会产生凸起,是不正确的。我们需要在网格中添加切线向量来正确地定位它们。 切线是如何作用的? 法线映射是在切线空间中定义的。...Unity的着色器执行此计算的方式要求我们使用−1。 因为我们是一个平面,所以所有的切线都指向相同的方向,也就是右边。 ? ?...(平坦的表面假装凹凸不平) 现在,你已经知道了如何创建一个简单的mesh,并使它看起来像是使用了很复杂的材质。mesh需要顶点位置和三角形,通常也需要UV坐标--最多四组(经常是切线)。

    10.4K41

    【Unity面试篇】Unity 面试题总结甄选 |Unity性能优化 | ❤️持续更新❤️

    不停滚动会导致合批网格重构、渲染裁剪 使用对象池进行优化 网格重构优化 UI展示与关闭优化 对象池运用 当程序中有重复实例化兵不断摧毁的对象时需要使用对象池进行优化 每个需要使用对象池的对象都需要继承对象池的基类对象...例如Ul上的字体Texture使用的是字体的图集,往往和我们自己的UI图集不一样,因此无法合批。还有UI的动态更新会影响网格的重绘,因此需要动静分离。...原理:Unity会检测哪些GameObject使用了同一个共享材质,然后去合并这些使用了同一个共享材质的网格顶点数据,形成一个新的大网格,然后传给显存,直接渲染这个大网格就相当于渲染了所有的被合并的小网格...UI图集完成合批的条件:深度 贴图 材质 => 排序好的列表当前这个依次和前面对比是否贴图和材质ID相同决定是否合批。 19. 请简述GC(垃圾回收)产生的原因,并描述如何避免?...保证资源随场景而卸载,不常驻内存,确定哪些是预加载,哪些泄漏。

    2K32

    unity drawcall怎么看_unity scrollview

    三、如何优化DrawCall? 1.关于图集、材质、层级的处理,减少DrawCall 想看这些如何进行优化,就需要对他们的工作原理进行理解一下。...这是使用相同的材质和纹理的情况​​​​​​ 所以并不是好多人的认知是只要同一个图集就会占用同一个DrawCall,通过上图分析发现不光是要使用同一个图集,还要使用同样的材质在同一个panel...另外还需要注意一点就是在panel下如果动态的物体,就是为了实现某种效果,需要UI 进行位置移动,这种情况下,最好做成动态分离,因为只要panle下UI有移动,panle就会对清空之前的保存的UIWidget...,通过内存来换取性能,下面我们看下官方的解释: 如果在静态批处理前有一些物体共享了相同的网格(例如这里的两个箱子),那么每一个物体都会有一个该网格的复制品,即一个网格会变成多个网格被发送给GPU。...在上面的例子看来,就是VBO的大小明显增大了。如果这类使用同一网格的对象很多,那么这就是一个问题了,这种时候我们可能需要避免使用静态批处理,这意味着牺牲一定的渲染性能。

    2.8K30

    基础渲染系列(十九)——GPU实例(Instancing)

    该教程使用Unity 2017.1.0f3制作。 ? (数千个球体,只用了极少的批次) 1、合并实例 指示GPU绘制图像需要花费时间。为其提供数据(包括网格和材质属性)也需要时间。...但只有使用相同材质的对象才能以这种方式组合,它是以存储更多网格数据为代价的。启用动态批处理后,Unity在运行时会对视图中的动态对象执行相同的操作。...与动态批处理一样,此操作在运行时针对可见对象完成。这个想法是让GPU一次性渲染同一网格多次。因此,它不能组合不同的网格或材质,但不局限于小网格。这里我们将试试这个方法。...现在,我们可以使用游戏窗口的统计面板来确定如何绘制所有对象。关闭主光源的阴影,以便仅绘制球体以及背景。再将相机设置为使用forward rendering路径。 ?...有了它,就可以在变换顶点位置时使用正确的矩阵。但是,UnityObjectToClipPos没有矩阵参数。它始终使用unity_ObjectToWorld。

    11.3K30

    Golang语言情怀--第128期 全栈小游戏开发:第19节:glTF 模型

    中的资源将会按照以下关系转换为 Creator 中的资源: glTF 资源 Cocos Creator 资源 glTF 场景 预制体 glTF 网格 网格 glTF 蒙皮 骨骼 glTF 材质 材质 glTF...场景根节点 预制体将使用一个不带任何空间转换信息的节点作为根节点,glTF 场景的所有 根节点 将作为该节点的子节点。...节点转换 glTF 节点中的属性将按照下表中的映射关系转换为预制体节点中的属性: glTF 节点属性 预制体节点属性 层级关系 层级关系 位移 位置 旋转 旋转 缩放 缩放 矩阵 解压,并分别设置位置、...(蒙皮)网格渲染组件中的网格、骨骼和材质,都会与转换后的 glTF 网格、蒙皮、材质资源一一对应。 若 glTF 节点指定了初始权重,则转换后的(蒙皮)网格渲染器也将带有此权重。...、WEIGHTS_1,则意味着此 glTF 网格的顶点可能受到多于 4 根骨骼的影响。

    28010

    谁还没有冰墩墩?速来领→

    6、创建地面 本示例中凹凸起伏的地面是使用 Blender 构建模型,然后导出 glb 格式加载创建的。当然也可以直接使用 Three.js 自带平面网格加凹凸贴图也可以实现类似的效果。....displacementMap[Texture]:位移贴图会影响网格顶点的位置,与仅影响材质的光照和阴影的其他贴图不同,移位的顶点可以投射阴影,阻挡其他对象,以及充当真实的几何体。....displacementScale[Float]:位移贴图对网格的影响程度(黑色是无位移,白色是最大位移)。如果没有设置位移贴图,则不会应用此值。默认值为 1。....displacementBias[Float]:位移贴图在网格顶点上的偏移量。如果没有设置位移贴图,则不会应用此值。默认值为 0。...; 一般来讲,需要自己指定顶点来确定粒子的位置。

    4.5K10

    Pixologic ZBrush 2023 macwin(三维数字雕刻工具)

    ZBrush 是领先的行业标准数字雕刻软件。此更新提供的增强功能将帮助您探索新的工作流程,包括通过集成 Redshift 创建高质量渲染的能力。...BasicMaterial2 恢复为默认材质如果图像超过特定大小,某些图像格式将无法在 macOS 上导入。...Local Symmetry 的 Local Symmetry 模式从中心统一缩放独立网格的经典行为已经恢复,可以通过禁用 Local Symmetry (L.Sym) UI 按钮上的“Dynamic”...请注意,与之前一样,只有在网格未离轴旋转时才能执行此特定操作。当“动态”处于活动状态时,它将使用较新的行为,允许 Gizmo 操纵器确定中心。...为了避免与 macOS 上的 UI 功能发生冲突,CMD-W 现在会启动程序关闭。以前这个键可以用来分配一个多组,但关闭会同时发生。多边形分组功能现在已从快捷方式中完全删除。

    1.1K30

    30分钟了解所有引擎组件,132个Unity 游戏引擎组件速通!【收藏 == 学会】

    使用此关节可按照您所决定的位置和角度保持两个对象之间的相互偏移。 用于将两个物体连接在一起,使它们相对运动。...代理 (Agent) 使用导航网格来推断游戏世界,并知道如何避开彼此以及其他移动障碍物。寻路和空间推断是使用导航网格代理的脚本 API 进行处理的。 用于实现游戏对象的导航功能。...光照探针代理体 组件在包围体内生成插值光照探针的 3D 网格。可以在该组件的 UI 中指定此网格的分辨率。插值光照探针的球谐函数 (SH) 系数将上传到 3D 纹理中。...变换组件表示单个点,而矩形变换组件表示可包含 UI 元素的矩形。如果矩形变换的父项也是矩形变换,则子矩形变换还可指定子矩形应该如何相对于父矩形进行定位和大小调整。 用于控制UI元素的位置、大小和旋转。...使用Aspect Ratio Fitter可以创建具有一致纵横比例的UI布局,使UI元素的纵横比例始终保持一致,无论屏幕尺寸和分辨率如何变化。

    2.9K35

    Unity性能调优手册8UI:Canvas,Layout,RaycastTarget,Mask,TextMeshPro,UI显示

    (将文本绘制到屏幕的机制)的调优实践 Canvas分区 在uGUI中,当Canvas中的元素发生变化时,会运行一个过程(重建)来重建整个Canvas UI网格。...UnityWhite是Unity内置的纹理,当Image或RawImage组件没有指定要使用的图像时使用(图8.1)。你可以看到UnityWhite是如何在框架中使用的调试器(图8.2)。...这将允许批处理工作,因为相同的SpriteAtlas将用于相同的材质。 Layout 组件 uGUI提供了一个布局组件,允许您整齐地对齐对象。...布局重建,像网格重建一样,是一个昂贵的过程。 为了避免由于布局重建而导致的性能下降,尽可能避免使用布局组件是有效的。...如果您在创建预制件时使用布局组件,因为它便于放置,在设置好位置后,如果不需要动态调整位置把布局组件删除再保存。

    80931

    Unity-Optimizing Unity UI(UGUI优化)03 Fill-rate,Canvas and Input

    比如要混合游戏物体的色调,不要通过几个游戏物体进行混合,尽量使用材质来实现。不要创建仅仅作为文件夹没有其他意义的节点。...但是这样就不能看到场景中的动画了。 如果Canvas被设置为"Screen Space - Overlay",不管场景中的激活摄像机数量如何,都将绘制它。...这个过程包括动态布局,生成多边形代表UI的字符串,尽可能的合并多边形到一个简单的网格中,去尽可能的减少draw calls。这是一个多步骤的过程。...这里的改变包括UI 对象的表现,精灵图片的渲染,transform的位置和大小,文本网格的文本。 子物体顺序 Unity UI的构建是从后向前的,与对象在hierarchy中的顺序是一样。...改变对象的位置以消除覆盖的空间。 使用Unity Frame Debugger可以很容易的发现可见的draw call数量。

    2.5K30

    Unity通用渲染管线(URP)系列(二)——Draw Calls(Shaders and Batches)

    使用空块创建该结构。 ? 刚才我们其实已经定义了一个最小的着色器,它能编译通过并允许我们创建一个使用它的材质。 ? (自定义的 Unlit 材质) 默认着色器实现将网格实体呈现为白色。...(使用object-space的位置) 网格再次显示出来了,但不正确,因为我们输出的位置在错误的空间中。空间转换需要矩阵,当绘制东西时,矩阵会被发送到GPU。...(一个实例材质) 请注意,基于目标平台以及每个实例需要提供的数据量,批处理大小是有限制的。如果超过此限制,那么最终将导致一批以上。此外,如果使用多种材质,分类仍可以拆分批次。...使用此组件创建一个游戏对象。给它指定了默认的球体网格。 ? (Mesh ball组件) 我们可以生成很多新的游戏对象,但没必要这么做。...这是一种古老的技术,它将共享相同材质的多个小网格合并为一个较大的网格,而该网格被绘制。但如果使用逐对象材质属性(per-object material properties)时,会失效。

    6.4K51

    基础渲染系列(十二)——半透明阴影

    当我们使用Cutout渲染模式时,必须对反照率纹理进行采样。实际上,只有在不使用反照率的Alpha值确定平滑度时,才必须这样做。当满足这些条件时,我们需要将UV坐标传递给片段程序。...注意我们如何使用UnityObjectToClipPos转换“My Shadows”中的顶点位置。我们也可以在“My Lighting”中使用此功能,而不用自己执行矩阵乘法。...UnityObjectToClipPos函数也执行此乘法,但是使用常数1作为第四个位置坐标,而不是依赖于网格数据。 ? 通过网格提供的数据始终为1,但着色器编译器不知道这一点。...不能使用网格的UV坐标,因为它们在阴影空间中不一致。相反,我们需要使用片段的屏幕空间坐标。从光的角度渲染阴影贴图时,这会使图案与阴影贴图对齐。...3.2 为阴影显示 Alpha Cutoff 使用Cutoff阴影时,我们可能想更改Alpha抠像阈值。当前,它仅在使用Cutout渲染模式时显示在我们的UI中。

    3.4K40

    物理画线“救救小鸡”,支持自建关卡!技术教程分享

    游戏关卡 考虑到制作成本,游戏美术使用了简单的手绘风格,用 paletton 选择类似纸张的颜色,拖动色盘,把比较顺眼的方案保存起来,确定游戏整体的风格。...地图编辑 在地图编辑之前,我们先确定整体的网格大小为75像素,设计的最大分辨率是 750x1650,也就是 10x22 个格子,这里定义一个全局的 class 去记录下这些配置。...接下来根据格子的奇数或者偶数决定落点的位置,可以分为 x 和 y 两周轴向分开处理。...当我们检测到碰撞体时候,当前物体的周围就会变红,存在碰撞体的周围位置会表黄。...这里额外支持了 Graphic 的自定义材质,玩家可以在游戏内更换画笔的颜色。 我们把材质的颜色和材质名在入口脚本里进行配置,商店和 gameplay 根据配置进行加载即可。

    2K31

    单图秒变3D对象,还可交互实时编辑!Stability AI中科大校友新作

    利用点云降低网格划分的不确定性,进一步促进了反渲染的无监督学习,从而减少了纹理中的烘托照明。 关键设计 关键的设计选择是使用点云来连接两个阶段。...之后的网格划分阶段将采样点云转换为与可见表面对齐的高精细网格。 点采样的不确定性降低,有利于了在网格划分阶段以无监督方式学习材质和光照。...最后,使用稀疏点云作为中间表示,SPAR3D可以实现人工编辑。 此阶段包括:点扩散框架、去噪器设计和反照率点云。 点扩散框架 该框架基于去噪扩散概率模型。...2)后向过程,去噪器学习如何去除噪音。...因此,在点采样阶段,通过扩散模型直接生成反照率点云,减少了不确定性。 将反照率点云采样输入到后续的网格生成阶段,大大降低了反渲染的不确定性,并使分解学习稳定了下来。

    8910

    个人塔防游戏Demo开发思路(UE4)

    放置静态网格体 为了增加场景细节,可在场景中放置一系列的模型,如本游戏中的石板路实际上由许多静态网格体组成,将多个石子actor合并为一整个静态网格体,就可以很方便的拖拽到场景中组成石板路,下图为合并后的石板路...此时通过蓝图通信可确定每一个路径点的后驱点,类似链表结构,敌人从出生点刷新后即沿着设定好的路径前行到终点。...下图为子弹发射流程图 发射子弹可以使用SpawnAtcorFromClass节点,该节点会在场景中生成一个特定的Actor对象,这里将生成的Actor设置为子弹基类。...在防御塔Actor中新增两个静态网格体,材质选择新建的攻击范围与塔底光环材质,并缩放到合适大小,且根据防御塔等级的不同光环和攻击范围的材质也不同,攻击范围初始为不可见状态。...游戏每一帧都会调用EventTick事件,获取敌人当前向量并用此向量减去开始记录的初始向量得到长度,该长度即为与敌人一帧走过的距离,将该距离与累计路程相加,累加完后再将当前位置设置为上一帧位置。

    1.1K10
    领券