自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

原创 Unity官方文档笔记(四)导入

一、导入模型使用 Scale Factor 和 Convert Units 属性可调整 Unity 对单位的解释。例如,3ds Max 使用 1 个单位表示 10 厘米,而 Unity 使用 1 个单位表示 1 米。使用 Mesh Compression、Read/Write Enabled、Optimize Mesh、Keep Quads、Index Format 或 Weld Vertices 属性可减少资源并节省内存。更多1.1 导入人形动画人形 (Humanoid) 模型是一种非常特别的结

2021-07-31 15:08:43 2283

原创 Unity官方文档笔记(三)Unity性能分析器

一、Profiler窗口入门默认情况下,性能分析器记录并保留游戏的最后 300 帧,并显示有关每一帧的详细信息。可以在 Preferences 窗口(菜单:File > Preferences)中增加其记录的帧数(至多 2,000 帧)。1.1 性能分析器控件Deep Profile启用此设置可对所有 C# 方法进行性能分析。启用此设置后,Unity 会将检测功能添加到所有 Mono 调用,然后便可以对脚本进行更详细的调查。请参阅深度性能分析。Call Stacks要记录用于脚本内存分配的

2021-07-29 19:33:43 2129

原创 Unity官方文档笔记(二)编辑器功能

一、Preference1.1 General属性功能Auto Refresh启用此设置可在资源更改时自动更新资源。Load Previous Project on Startup启用此设置可在启动时始终加载上一个项目。Compress Assets on Import启用此设置可在导入期间自动压缩资源。Verify Saving Assets如果要在退出 Unity 时单独验证要保存的资源,请启用此设置。Script Changes While Pl

2021-07-29 09:50:09 939

原创 Unity官方文档笔记(一)在Unity中操作

前言:本系列文档基于Unity 2019.4版本进行整理一 系统要求1.1 Unity EditorWindows需要Win7(SP1+)及以上系统,仅限64位版本;CPU要求X64架构;GPU要求DX10以上Mac需要Sierra 10.12.6以上系统;仅限X64架构;GPU要求Metal兼容型 Intel 和 AMD1.2 Unity PlayerAndroid4.4(API 19)以上系统;CPU为ARMv7或ARM64;GPU要求OpenGL ES 2.0以上或Vulkan。B

2021-07-22 17:15:19 833 2

原创 Unity渲染基础-Untiy渲染路径

1、基础说明Unity内置管线的渲染路径主要包含了延迟渲染管线和前向渲染管线。(不讨论旧版延迟渲染和旧版顶点光照)Unity内置管线的切换可以在Graphics Setting中更改也可以在摄像机的设置上更改参考Unity官方渲染路径说明...

2020-11-23 20:00:49 351

原创 Unity体积光实现浅析

一、特效方式实现1.1 Billboard特效片实现采用这种方式的体积光实现简单,性能好,但是对于角度有特殊的要求,只适合某些场景使用1.2 ShadowGun实现ShadowGun是2011年的一个使用Unity开发的移动平台的第三人称射击游戏。ShadowGun中把体积光归于是雾的一种应用。雾和体积光有非常多类似的地方,一个大面积的体积光从视觉上来看和雾非常像,它们...

2019-11-26 21:43:18 3149

原创 《计算机图形学》学习笔记(三)画线算法

画线算法:已知点A(x1,y1)和点B(x2,y2),画出点A和点B之间的所有的点。1、DDA(数值微分)算法已知直线方程可以表示为 y = kx + b以下公式仅考虑 |k|<=1(这种情况下,直线在y轴方向增长的速度小等于在x轴方向的速度)已知:y1 = kx1 + by2 = kx2 + b因为x2 = x1 + 1所以y2 = k(x1 + 1) + by2 -...

2019-01-15 16:41:27 1069

原创 几个C#测试说明的问题

1、长引用与短引用var time1 = System.DateTime.Now;int loopCount = 1000 * 1000 * 100;var test1 = test.wrr.test;for (int i = 0; i < loopCount; i++){ if (test1.haha){ }}Debug.Log("[Use Time]_sho...

2018-12-31 22:18:04 154

原创 Unity杂谈(二)字体缺字?加一个!

在做的项目中所使用的字体是华康标题宋w9。好歹不歹夏侯惇中的“惇”字在这个字体中不存在。一般情况下是需要换另外一种字体的,但是还不是其他办法么。。1、下载并安装 FontCreator 软件2、打开FontCreator 软件3、将A字体(缺字体的那个ttf文件)文件拖入软件中,将B字体文件拖入软件中4、在B字体文件中Ctrl+F 查找缺漏的字体,复制,在A字体中新建一个glyph...

2018-10-24 11:33:16 1530

原创 Unity杂谈(一)图集制作与图集分割

1、图集制作1.1、NGUI下的图集制作首先将需要制作成图集的小图放到Unity工程下的某个目录下,再通过NGUI->Open->Atlas Maker。如下图将会打开图集制作界面,如下图。在选择好需要制作成图集的小图后,点击Craete,将生成NGUI生成好的图集。NGUI将生成三个文件,分别是png文件(图集);material文件(材质);prefab文件...

2018-10-12 14:34:00 3809

原创 Mecanim 动画系统(十)反向动力学(Inverse Kinematics)

  角色动画中的骨骼运动遵循动力学原理,定位和动画骨骼包括两种类型的动力学:正向动力学(FK)和反向动力学(IK) 在一套FK系统中,一般的规则是:层级里的一个父节点驱动任意子节点的运动。例如,如果你移动前臂(父),手腕(子)就会随之运动。但是,如果你移动腕节点,前臂还将停留在原处。这是制作动画物体(例如一个行走的角色)的手臂的一种简单、直观的方法,因为动画制作者只需要考虑手臂相对应...

2018-02-08 19:56:01 2499

原创 Mecanim 动画系统(九)动画层与Mask

在Unity中,动作层的主要作用是管理不同身体部位不同行为的复杂状态。如,某个角色下半身可能是stand(站立)、walk(走路)、run(跑步)。上半身可能在shot(射击)、run(摆手)、cast(投掷)等。如果为每一种情况增加一种动画片段,需要比较大的资源,管理也不方便,动画层可以解决这个弊端。建立Animator Controller 动画控制器 后,可以在对应界面的左上角管理动...

2018-02-08 17:30:31 484

原创 Mecanim 动画系统(八)混合树(Blend Tree)

1、混合树在游戏中,游戏角色有时候并不精确地处在某一个状态中,如站立与行走之间的过渡。状态转换是从一个状态平滑转换为另一个状态的一个过程。而混合,则可以看作有多个动画同时进行。要使用混合,参与混合的动作必须有相似性质和时间。混合,可以看做一种特殊的状态。我们可以在动画控制器窗口界面右键->Create State->From New Blend Tree。来创建一个新的混合...

2018-02-08 15:42:10 6223

原创 Mecanim 动画系统(七)动画状态机

1、状态机基本思想是角色在任何给定时间忙于一些特殊的动作。可用的动作取决于游戏类型,但典型动作包括空闲、走路、跑步、跳跃等。这些动作称为状态,在场景中,角色处于走路、空闲等“状态”。通常,角色要进入另一种状况会受到限制,而不是可以直接从任何状态转换成任何其他状态。例如,跑跳仅在角色已经在跑步时而非停滞不前时实现,所以永远无法直接从空闲状态转换成跑跳状态。角色可从当前状态进入下一个状态的选型称为...

2018-02-07 19:23:36 1728

原创 Mecanim 动画系统(六)动画控制器 Animator Controller 界面介绍

在动画器组件Animator的第一个需要的配置的就是动画控制器。我们可以通过右键->Create->Animator Controller来创建一个动画控制器。可生成如下图文件。在上图点击open可以打开动画控制器界面,如下图。左上角显示的是动画层,默认有一个Base Layer。左下角显示的是动画参数,暂时为空。中间有一个Any State的状态,...

2018-02-07 16:26:51 681

原创 Mecanim 动画系统(五)动画器组件Animator

Animator动画控制器组件是Avatar与行为之间的链接。Controller:附加到此角色的动画控制器,后续说明。Avatar:此角色的Avatar。Apply Root Motion:勾选表示应用根运动,即动画本身会产生根运动。否则需程序控制运动。 Update Mode:Normal 表示按Update更新方式;Animate Physics 表示物理方式动画处理;U...

2018-02-07 15:53:07 504

原创 Mecanim 动画系统(四)Avatar系统

我们在设置Animation Type 为Humanoid 模式后,Mecanim会尝试将现有骨骼结构匹配到Avatar骨骼结构。如果匹配成功,可以在Configure 按钮判断一个打勾的标记(如上图),否则会看到叉号标记。我们点击Configure按钮,便可进入到Avatar配置界面。Avatar配置界面有两个选项卡,分别是Mapping(骨骼映射)和Muscles(肌肉)。骨骼映射...

2018-02-07 14:52:48 1489

原创 Mecanim 动画系统(三)动画片段设置

最上面显示的是该动画片段的名称,上图中该动画片段名称为dodge。Start和End表示的是该动画片段的起始帧和结束帧。一般在动画分帧时处理好。LoopTime 勾选上表示该动画片段重复播放。勾选上LoopTime可以开启Loop Pose的勾选。启用Loop Pose可使运动无缝循环。Cycle Offset 表示周期偏移,可以设置相对于循环动画周期的偏移。 Root...

2018-02-06 17:47:40 545

原创 Mecanim 动画系统(二)模型导入设置

Model:Scale Factor : 缩放因子,由于不同建模软件生成的模型文件单位尺度不统一,为了在Unity中统一,就需要进行缩放。Mesh Compression(Off/Low/Medium/High):网格压缩(关闭/低/中/高)。只要不过分影响模型原有形状,在移动平台应该尽量选高压缩。Read/Write Enabled:开启读写,Unity默认打开,但是若无修改模型...

2018-02-05 20:02:54 653

原创 Mecanim 动画系统(一)模型规范

模型方面:1、面数控制,以三角面计算。在移动平台上,普通角色控制在1k~2k之间。尽量在优化的同时不减少画面效果,或者略微减少画面效果。2、所有角色模型位置最好站立在原点。一般以物体对象中心作为轴心。2、尽量不要有超过4边的面3、光滑组,法线4、单位M,单位比例5、中心点6、3Ds Max:RestXfromMaya:freeze transformations...

2018-02-05 15:37:31 368

转载 Unity手游性能优化——从魂斗罗谈起 笔记

源自 http://gad.qq.com/lundao/detail/10000136内存优化方面1、资源优化贴图:贴图压缩成ETC/PVRTC格式;带alpha通道的贴图进行alpha拆分,之后分别压缩模型:网格精度压缩、临近的顶点进行删减动画:临近的一些关键帧进行去除;删除一些冗余的关键帧;声音:压缩成OGG格式粒子:少用粒子,每一个粒子大约占用10k的内存;S

2018-02-03 10:57:05 750

转载 Pass的通用指令开关

转载自https://www.cnblogs.com/sifenkesi/p/4723813.htmlLOD:设置:单个设置Shader.maximumLOD、全局设置Shader.globalMaximumLOD、QualitySettings里面的Maximum LODLevel原理:小于指定值的shader和subshader才能被使用。应用:有时候一些显卡虽然支持很

2017-12-23 15:37:28 987

原创 Unity中键盘按下鼠标异常

今天在写Unity功能进行测试的时候,发现按住键盘后,鼠标位置会隐藏,移动鼠标会闪烁,松开键盘后鼠标位置会在屏幕中间显示。结果是UICamera 下 useController 勾选上就会有这样的问题。对应Editor面板中属性如下图

2017-10-17 17:15:29 886

原创 游戏中一个死亡复活的bug

玩家反馈死亡复活后,其他玩家有时候看不到该玩家复活。出现原因:玩家死亡后,立即点击复活。其他玩家收到服务端消息后,死亡消息进入到消息队列中,放在Update中处理。复活消息直接处理。导致消息处理的时间顺序不对,其他玩家可能先处理复活消息,再处理死亡消息。处理方法:要么去掉消息队列直接处理,要么全部进消息队列。规避方法:代码要统一规范处理,不能一部分用这个,一部分用那

2017-10-16 16:13:05 557

原创 游戏中一个简单的UI问题

通常在设计ui框架的时候,会以类似栈的数据结构(非栈)进行存储管理,将打开界面进行入栈操作,将关闭界面进行出栈操作。同时,在打开某界面的时候,可能将上个界面隐藏,在关闭这个界面的时候,恢复显示上个界面。大致代码如下:private void PushPanel(Panel panel, bool hidePrev = true) { if (panel == n

2017-10-12 18:27:20 399

转载 《计算机图形学》学习笔记(二)

图形显示设备图形输出包括推行的显示和图形的绘制图形显示指的是在屏幕上输出图形图形绘制通常是指把图形画在纸上,也称硬拷贝,打印机和绘图仪是两种最常用的硬拷贝设备。阴极射线管(CRT Cathode Ray Tube)组成:电子枪、加速结构、聚焦系统、偏转系统、荧光屏原理:高速的电子束由电子枪发出,经过聚焦系统、加速系统和磁偏转系统就会达到荧光屏的特定位置。由于

2017-09-02 13:10:09 3155

原创 20170810 Unity项目笔记

今天有个需求。里面涉及到NGUI下的坐标转换。这本来是很简单的事情。获取NGUI下某个控件的屏幕坐标代码如下:UICamera.currentCamera.WorldToScreenPoint(obj.transform.position);然后我也就信心满满地等待结果。结果发现不对劲。我们知道,Camera.WorldToScreenPoint 得到的坐标是以屏幕左下为0,0,右

2017-08-10 18:01:26 308

转载 Unity Shader入门精要学习笔记 - 第17章 Unity的表面着色器探秘

2010年的Unity 3 中,Surface Shader 出现了。表面着色器的一个例子。我们先做如下准备工作。1)新建一个场景,去掉天空盒子2)新建一个材质,新建一个Shader,赋给材质。3)场景中创建一个胶囊体,上步材质赋给它然后我们修改Shader代码:Shader "Unity Shaders Book/Chapter 17/Bumped Diffuse"

2017-06-28 20:27:51 770

转载 Unity Shader入门精要学习笔记 - 第16章 Unity中的渲染优化技术

移动平台的特点为了尽可能一处那些隐藏的表面,减少overdraw(即一个像素被绘制多次),PowerVR芯片(通常用于ios设备和某些Android设备)使用了基于瓦片的延迟渲染(TBDR)架构,把所有的渲染图像装入一个个瓦片中,再由硬件找到可见的片元,而只有这些可见片元才会执行片元着色器。另一些基于瓦片的GPU架构,如Adreno(高通的芯片)和Mali(ARM的芯片)则会适应early-Z

2017-06-27 21:41:33 971

转载 Unity Shader入门精要学习笔记 - 第15章 使用噪声

转载自 冯乐乐的 《Unity Shader 入门精要》消融效果消融效果常见于游戏中的角色死亡、地图烧毁等效果。这这些效果中,消融往往从不同的区域开始,并向看似随机的方向扩张,最后整个物体都将消失不见。我们将学习如何在Unity中实现这种效果。效果如下图所示。要实现上图中的效果,原理非常简单,概括来说就是噪声纹理+透明度测试。我们使用对噪声纹理采样的结果和某个控制消融程度的阈值

2017-06-25 22:47:08 1955

转载 Unity Shader入门精要学习笔记 - 第14章非真实感渲染

转载自 冯乐乐的 《Unity Shader 入门精要》尽管游戏渲染一般都是以照相写实主义作为主要目标,但也有许多游戏使用了非真实感渲染(NPR)的方法来渲染游戏画面。非真实感渲染的一个主要目标是,使用一些渲染方法使得画面达到和某些特殊的绘画风格相似的效果,例如卡通、水彩风格等。卡通风格的渲染卡通风格是游戏中常见的一种渲染风格。使用这种风格的游戏画面通常有一些共有的特点,例如物

2017-06-25 13:56:34 3336

转载 Unity Shader入门精要学习笔记 - 第13章 使用深度和法线纹理

转载自 冯乐乐的 《Unity Shader 入门精要》获取深度和法线纹理虽然在Unity里获取深度和法线纹理的代码非常简单,但是我们有必要在这之前首先了解它们背后的实现原理。深度纹理实际上就是一张渲染纹理,只不过它里面存储的像素值不是颜色值而是一个高精度的深度值。由于被存储在一张纹理中,深度纹理里的深度值范围是[0,1],而且通常是非线性分布的。那么,这些深度值是从哪里得到的呢?总体

2017-06-24 19:09:19 6430

转载 Unity Shader入门精要学习笔记 - 第12章 屏幕后处理效果

建立一个基本的屏幕后处理脚本系统屏幕后处理,顾名思义,通常指的是在渲染完整个场景得到屏幕图像后,再对这个图像进行一系列操作,实现各种屏幕特效。使用这种技术,可以为游戏画面添加更多艺术效果,例如景深、运动模糊等。因此,想要实现屏幕后处理的基础在于得到渲染后的屏幕图像,即抓取屏幕,而Unity为我们提供了这样一个方便的接口OnRenderImage函数。它的函数声明如下:MonoBehav

2017-06-19 23:14:21 4375 3

转载 Unity Shader入门精要学习笔记 - 第11章 让画面动起来

Unity Shader 中的内置变量动画效果往往都是把时间添加到一些变量的计算中,以便在时间变化时画面也可以随之变化。Unity Shader 提供了一系列关于时间的内置变量来允许我们方便地在Shader中访问允许时间,实现各种动画效果。下表给出了这些内置的时间变量。纹理动画纹理动画在游戏中的应用非常广泛。尤其在各种资源都比较局限的移动平台上,我们往往会使用纹理动画来代替复杂

2017-06-17 23:11:46 1774

转载 Unity Shader入门精要学习笔记 - 第10章 高级纹理

立方体纹理在图形学中,立方体纹理是环境映射的一种实现方法。环境映射可以模拟物体周围的环境,而使用了环境映射的物体可以看起来像镀了层金属一样反射出周围的环境。和之前见到的纹理不同,立方体纹理一共包含了6张图像,这些图像对应了一个立方体的6个面,立方体纹理的名称也由此而来。立方体的每个面表示沿着世界空间下的轴向观察所得的图像。和之前使用二维纹理坐标不同,对立方体纹理采样我们需要提供一个三维的纹

2017-06-16 23:06:41 2892

转载 Unity Shader入门精要学习笔记 - 第9章 更复杂的光照

转载自 冯乐乐的《Unity Shader入门精要》Unity 的渲染路径在Unity里,渲染路径决定了光照是如何应该到Unity Shader 中的。因此,如果要和光源打交道,我们需要为每个Pass指定它使用的渲染路径,只有这样才能让Unity知道,“哦,原来这个程序想要这种渲染路径,那么好的,我把光源和处理后的光照信息都放在这些数据里,你可以访问啦!”也就是说,我们只有为Shader ...

2017-06-16 10:36:32 4039 2

转载 Unity Shader入门精要学习笔记 - 第8章 透明效果

转载自 冯乐乐的 《Unity Shader入门精要》透明是游戏中经常要使用的一种效果。在实时渲染中要实现透明效果,通常会在渲染模型时控制它的透明通道。当开启透明混合后,当一个物体被渲染到屏幕上时,每个片元出了颜色值和深度值之外,它还有另一个属性——透明度。当透明度为1时,表示该像素是完全不透明的,而当其为0时,则表示该像素完全不会显示。在Unity中,我们通常使用两种方法来实现透明效果:...

2017-06-08 14:12:54 2166

原创 《计算机图形学》学习笔记(一)

计算机图形学概念:利用计算机研究图形的表示、生成、处理、显示的学科。图形:计算机图形学的研究对象。1)能在人的视觉系统中产生视觉印象的客观印象。2)包括自然景物、拍摄的图片、用数学方法描述的图形等等。构成图形的要素:几何要素:刻画对象的轮廓、形状等非几何要素:刻画对象的颜色、材质等。计算机中表示图形的方法:1)点阵法枚举出图形中所

2017-06-04 21:47:00 4124 1

转载 Unity Shader入门精要学习笔记 - 第7章 基础纹理

转自 冯乐乐的 《Unity Shader 入门精要》纹理最初的目的就是使用一张图片来控制模型的外观。使用纹理映射技术,我们可以把一张图“黏”在模型表面,逐纹素地控制模型的颜色。在美术人员建模的时候,通常会在建模软件中利用纹理展开技术把纹理映射坐标存储在每个顶点上。纹理映射坐标定义了该顶点在纹理中对应的2D坐标。通常,这些坐标使用一个二维坐标(u,v)来表示,其中u是横向坐标,而v是纵向坐...

2017-06-03 23:11:54 5044 1

转载 Unity Shader入门精要学习笔记 - 第6章 开始 Unity 中的基础光照

转自冯乐乐的《Unity Shader入门精要》通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑3种物理现象。首先,光线从光源中被发射出来。然后,光线和场景中的一些物体相交:一些光线被物体吸收了,而另一些光线被散射到其他方向。最后,摄像机吸收了一些光,产生了一张图像。 在光学中,我们使用辐照度来量化光。对于平行光来说,它的辐照度可通过计算在垂直于l的单位面积上单位...

2017-05-20 15:48:52 1367

rotationTest.unitypackage

unity旋转一些测试例子。对应细节可查看http://blog.csdn.net/u010848412/article/details/70833182

2017-04-27

深入浅出MFC.pdf--高清晰版本

侯俊杰的《深入浅出MFC》第二版,虽然是老书,但是经典

2015-01-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除