自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 资源 (37)
  • 收藏
  • 关注

转载 Q&A——渲染优化

渲染优化Q1:在Android平台上,PlayerSettings里开启/关闭Multithreaded Rendering,在性能和稳定性上有多大的区别? 一般是勾还是不勾?就我们目前深度优化过的项目而言,Android App中开启多线程渲染确实可以在渲染模块中带来较大的性能提升,但我们并没有详细地定量分析过,所以很难给出“到底能提升多少”的定量说明。对于稳定性来说,现

2017-03-31 18:26:08 1682

转载 Q&A——资源管理(十四)

资源管理Q1:我的游戏运行一段时间之后,已经切换到一个空场景了,然后手动调用了System.GC.Collect(); Resources.UnloadUnusedAssets();为什么还是会有这么多贴图资源被引用呢。我猜可能是由于一些脚本中的静态变量引用导致,请问有办法查出来是哪些静态变量吗?很大可能是这些资源直接或间接被其他Container缓存了,这种情况在我们进行内存

2017-03-31 18:22:15 494

转载 Q&A——UI性能

UI 性能Q1:UWA建议“将较多的动态UI元素分组放在不同的UI Panel中”,那么请问如果是ScrollView里面多个item的话,是否意味着每个Item都加一个Panel会更好一些?“动态元素”其实是相对的。在 ScrollView 中,一般情况下,如背包,其中的Item在滑动过程中是相对静止的,因此这种情况下只需要将这些Item放在一个UIPanel中即可。但在类似

2017-03-31 18:18:34 457

转载 Q&A——资源管理(十三)

资源管理Q1:如下图,在UWA性能报告中,我们发现Camera.Render下CreateVBO的开销较高,请问这个是如何引起的?从图中可以看出,Mesh.CreateVBO是在半透明渲染的开销之下,说明这是半透明物体的渲染引起的。在我们目前测评过的项目中,仅使用NGUI的项目会在此处出现不同程度的CreateVBO的CPU开销。对此,建议研发团队首先确认其UI系统是否使用

2017-03-31 18:12:57 509

转载 Q&A——资源管理(十二)

资源管理Q1:我们在做依赖打包改进,比如UIAtlas这种脚本,AssetBundle包里脚本没有做依赖,每个包里都有这个脚本,会导致Mono堆内存增大么?对于“脚本也是资产”这一点理解的不是很透彻。脚本在AssetBundle里是不会启动,但是会出现脚本丢失。本身没有做依赖打包的话脚本是冗余在AssetBundle中吧?首先,需要说明的是,脚本本身的内容是不会被打包到Asse

2017-03-31 18:06:23 933

转载 Q&A——资源管理(十一)

资源管理Q1:怎么去掉Mesh中的Colors属性?我把FBX里的LayerElementColor字段都删了,这个Colors还是存在。默认情况下,在3d建模软件中并不会导出Color属性。以3ds max为例,Color通常是通过modifier添加的,因此只需要在导出前将其删除即可。另外也可以通过fbx sdk来直接对文件进行处理,但这种做法就需要查看官方的文档了。

2017-03-31 17:52:25 796

转载 Q&A——UI Mesh 渲染

UI Mesh 渲染Q1:在GPU分析器里面看到,同一个NGUI的图集被绘制了很多次。请问是否是由于各个界面Panel不一样导致的?这种情况下如何优化?图片中红框处的内容其实并不是同一个Atlas被多次渲染,而是拥有同一Atlas的不同Widgets在进行渲染。这些Widgets的Mesh是动态生成的,且在不同的Draw Call中,NGUI在生成它们时根据所使用的At

2017-03-31 17:50:54 569

转载 Q&A——资源制作(一)

Q1:Unity UI图集不是正方形,使用PVRTC格式的话,会出现问题么?比如是512x1024的原始比例。如果纹理尺寸长宽不相等,那么即便是2的幂次,也不会被压缩成PVRTC格式纹理。建议在iOS平台中,尽可能保证纹理尺寸为2的幂次且长宽相等。

2017-03-31 17:45:24 718

转载 Q&A——动画(一)

动画Q1:我在Profiler中看到Animator.Initialize这个耗时很大,这个有什么建议么?Animator.Instance 是因为Animator过多造成的吗?由图中可知,Animator.Initialize主要是在Instantiate实例化时引起(实际上,GameObject.Active操作也会引起Animator.Initialize),而其具体的耗时原

2017-03-31 17:44:03 1569

转载 Q&A——资源管理(十)

资源管理Q1:关于定位游戏中冗余资源引用的问题。UWA的报告中能定位到具体的引用代码么? 在Profiler只能看到ManagedStaticReferences但是具体不到引用的位置。比如Static ClassA引用一个ClassB,ClassB上引用了一个资源,就定位不出这个引用的过程。请问这种情况下有没有比较好的方法找到引用关系呢?该问题在Unity 5.3 之前的版本

2017-03-31 17:38:18 1187

转载 Q&A——资源管理(九)

资源管理Q1:我在UGUI里更改了Image的Color属性,那么Canvas是否会重建?我只想借用它的Color做Animation里的变化量。如果修改的是Image组件上的Color属性,其原理是修改顶点色,因此是会引起网格的Rebuild的(即Canvas.BuildBatch操作,同时也会有Canvas.SendWillRenderCanvases的开销)。而通过修改顶

2017-03-31 17:24:17 450

转载 Q&A——性能优化(二)

性能优化Q1:Draw Call和Setpass Call,这两个指标主要是看哪一个?关于这点众说纷纭,很多地方都是说看SetPass Call,但是在UWA的性能测试中,还是把Draw Call当成唯一指标。在 Unity 5.x 中,SetPass Call与 Draw Call相比,SetPass Call的指标与性能相关性更大(比如Static Batching

2017-03-31 17:15:17 634

转载 Q&A——资源管理(八)

资源管理Q1: 我使用Shader.WarmupAllShaders操作,在后续加载资源还是有CreateGPUProgram出现。(Shader都在一个AssetBundle文件中,都是常驻内存的,不会删掉)是必须使用ShaderVariantCollection来加载Shader吗?A:以上这种问题的较大可能是:Shader被打包到不同AssetBundle中了,WarmupA

2017-03-31 17:08:07 485

转载 Q&A——开发技巧(一)

开发技巧Q1:我移动一个物体从A点到B点,当到达B点后执行另一个事件。我现在是每帧计算物体到B点的距离,当距离小于某个值后算是到达,感觉有点浪费。有没有什么推荐的办法呢?如果每帧只进行一次距离上的判断计算,那么该耗时开销本身是很小的。当然,开发团队可以在B点放置一个Trigger,当A进入Trigger后,通过其回调函数来进行物体的后续操作。

2017-03-31 17:04:25 893

转载 Q&A——资源管理(七)

资源管理Q1:我想请教一下,下图这个函数中,每次我都申请了一个List temp = list();在这里存放6KB的数据,但是如果不做GC处理,这6KB是否就一直累加,直到做GC处理了才会释放掉,是这样么?如果调用次数很多,每次都调用一点点,也会推高内存占用吗?A:是的,这个6KB堆内存会随着Update的执行一直分配内存,所累积的堆内存会在GC触发时进行销毁。一般来说,研发

2017-03-31 17:02:27 840

转载 Q&A——内存管理(三)

内存管理Q1:有没有办法可以减少游戏中Mono内存占用的大小?我现在读完游戏表以后就占用了60MB,我看其他游戏读完配置表也才10MB左右,这个是怎么做到的呀?如果刚进入游戏后,Mono堆内存就达到了60MB,那么你的游戏项目极有可能在一开始加载了一个非常大的配置表。对此,我们建议出现该问题的研发团队对配置文件的初始加载进行详细检测,查看是否可以精简配置文件信息。如果不行,则尝试将

2017-03-31 16:57:08 664

转载 Q&A——资源管理(六)

资源管理Q1:请教个问题,我用Unity 5 里提供的Sprite Packer把A.png,B.png打进一张图集,在运行时我怎么方便地加载这两张图呢?使用场景:某个Image控件根据不同的条件显示A,或者显示B。目前通常是在脚本序列化信息中保留这两个Sprite的引用,在切换时直接通过对Image.sprite进行赋值来切换。

2017-03-31 16:54:05 1089

转载 Q&A——UI输入(二)

UI输入Q1:关于UI的Mask遮挡特效,能否提供一些解决思路呢?目前由于UI与粒子系统是两个相对独立的模块,因此两者的Mask遮挡并没有简单直接的方法。我们建议从以下几种方式来考虑实现:将粒子系统转为序列帧,通过纯UI的方式来实现;通过RenderTexture,添加一个相机来实现方形的“裁剪”;参考UI的内置Shader,编写一个受Stencil B

2017-03-31 16:51:52 717

转载 Q&A——资源管理(五)

资源管理Q1:Unity中的SerializedFile是怎么产生的?请问用Unload(false)可以清除吗?因为读取了Bundle里面的内容后已经赋值给其他物体了。而且我把图片都打成了Bundle,然后读取出来,图片的大小应该是超过了这个SerializedFile的大小的?SerializedFile是AssetBundle加载时产生的序列化信息,一般为LoadFr

2017-03-29 18:26:53 723

转载 Q&A——资源管理(四)

资源管理Q1:Unity 5.x 能把指定集合的Mesh烘焙到一张Lightmap里吗?Unity 5.x 是没有这样的功能项的。据我们的判断,这样的需求通常是为了动态加载,因此可以尝试将Mesh分组到不同的场景分别烘焙。而在加载时可通过脚本动态地合并Lightmap,同时将物件的Lightmap Index进行正确的偏移即可。资源管理Q2:请问

2017-03-29 18:11:44 460

转载 Q&A——资源管理(三)

资源管理Q1:StreamingAssetPath 和 PersistantDataPath下可以不Load AssetBundle ,直接放资源Load吗?这是可以的,但非常有限。因为不通过 AssetBundle 加载,只能通过 Unity 提供的有限的接口来直接加载外部资源,如通过 WWW.audioClip 直接加载 mp3文件,通过 WWW.texture 直接加载

2017-03-29 17:43:04 378

转载 Q&A——资源管理(二)

资源管理Q1:Prefab中的GameObject的tag设置为EditorOnly仍然会被打进Resoures包吗?有其它EditorOnly方案吗?EditorOnly理论上只对场景中的 GameObject起效。因此 Project 目录中的 Prefab 打上 EditorOnly 后,放在 Resources 目录下依然会被打进游戏包中。但只要将其放在 Resourc

2017-03-29 17:18:50 683

转载 Q&A——图形渲染(二)

图形渲染Q1:以前端游时代,材质根据Pass不同、光照环境不同可以离线预编译成ShaderCache,运行时并不需要拼材质再实时编译,只要加载二进制代码就好了。那Unity有没有做这件事呢?我们是根据平台和环境预编译的Shader。对于支持 Binary Shader 加载的设备,在首次编译某个 Shader 的时候是会生成其对应的 Binary Shader Cache ,生

2017-03-29 17:18:02 673

转载 Q&A——性能优化(一)

性能优化Q1:如图,我们在UI打开或者移动到某处的时候经常会观测到CPU上的冲激,经过进一步观察发现是因为Instantiate产生了大量的GC。想请问下Instantiate是否应该产生GC呢?我们能否通过资源制作上的调整来避免这样的GC呢?如下图,因为一次性产生若干MB的GC在直观感受上还是很可观的。准确的说这些 GC Alloc 并不是由Instantiate 直

2017-03-29 16:53:17 625

转载 Q&A——骨骼优化

骨骼优化Q1:勾选了“Optimize GameObject”这个选项后,虽然性能优化了,可骨骼的TransForm会消失,有些需求又是需要在某个骨骼的TransForm上面挂特效的,这种情况下有什么比较好的处理方案吗?在选择Optimize GameObjects后,可在Extra Transforms中加入你想挂载特效的骨骼结点,这样该骨骼结点将不会进行优化处理,即其Tra

2017-03-29 16:47:09 517

转载 Q&A——AssetBundle(资源打包)

Q1:如果我有一个Prefab,它的Dependencies都在Resources文件夹中,那么,当我在AssetBundle打包时,只打包这个Prefab(不指定BuildAssetBundleOptions.CompleteAssets和BuildAssetBundleOptionsCollectDependencies)的话,这个Prefab能够正确实例化吗?这是不能正确实例化的

2017-03-29 16:38:01 247

转载 Q&A——光照贴图

Q1:Lightmap在PC上显示正常,但是转到Android平台上存在色差,颜色普遍偏暗。一般来讲,有两种情况可能会导致色偏和亮度差异。1.Unity烘焙的Lightmap是32bit的HDR图,而移动设备通常不支持HDR图(32bit per channel),会按照LDR图(8bit per channel)的形式进行处理,因此会出现色偏问题。因此我们建议:在

2017-03-29 16:34:33 267

转载 Q&A——版本Bug(一)

版本BugQ1:在把Unity升级到5.3之后,项目中缓存的粒子特效无法正常播放了(只能播放一次),是否还需要修改粒子的设置呢?这个问题是Unity的Bug,5.4.0B3 release note 为:Particles: Fixed particle system only playing once.(会在新版本5.4修复)目前我们推荐通过另一种方法可以暂

2017-03-29 16:16:24 271

转载 Q&A——UI输入(一)

UI输入Q1:在使用NGUI时,我们通常会将很多小图打成一个大的图集,以优化内存和Draw Call。而在UGUI时代,UI所使用的Image必须是Sprite;Unity提供了SpritePacker。 它的工作流程和UGUI Atlas Paker有较大的差别。在Unity Asset中,我们压根看不到图集的存在。 问题是:1. SpritePacker大概的工作机制是什么样的

2017-03-29 16:02:48 837

转载 Q&A——内存管理(二)

内存管理Q1:我们在Profiler中发现了一个AssetDatabase的内存占用,其存在于Assets中,单个占用内存非常大。 请问该占用是如何发生的呢?是否可以避免?理论上开发者在真机运行项目时是不会看到此选项的,只有在 Editor 中运行时能看到。由于在 Editor 下运行游戏时,Profiler 中获取的内存是包含了 Editor 本身占用的内存的,因此并不准

2017-03-28 18:31:30 828

转载 Q&A——物理性能

物理Q2:UWA的报告中指出我们所使用的刚体超出了限制,我们经过测试发现只要使用CharacterController就会产生一个隐藏的刚体。而我们的角色移动是会使用CharacterController的。 为了避免这种情况,我们使用了CapsuleCollider来替代CharacterController接受点击,同时使用设置位置的方法来替代CharacterController的m

2017-03-28 18:21:46 329

转载 Q&A——运行性能(一)

运行性能Q1:如下图,我们发现WaitingForJob这个函数消耗过高导致了卡顿,请问该卡顿是否由于渲染压力过大导致?从图中看,该线程最后是在等待 Canvas.sortjob,而这是 UI 排序造成的开销(自Unity5.2版本开始,UGUI的部分计算已经移出了主线程)。详情参考:http://blogs.unity3d.com/2015/09/07/mak

2017-03-28 18:20:27 343

转载 Q&A——NGUI

NGUIQ1:NGUI变形,如下图走样了,请问是不是图片压缩导致的?当UI纹理在设备上的显示分辨率低于原始分辨率时,会因为出现aliasing现象,导致UI局部变形。通常对于粗线条、块状的UI图素,变形通常是不明显的,但对于细线条的UI图素,则可能非常明显。通常该问题可以考虑三种方式来改善:在NGUI中将UIRoot的Scaling

2017-03-28 18:15:08 240

转载 Q&A——UI

UIQ1:能否在NGUI多分辨率适应方面提供一些解决方案或者思路?多分辨率适应涉及到以下几个方面:布局。通常可以通过 NGUI 中的 Anchor 组件来实现,能够保证 UI 到屏幕上指定锚点的距离;UI 背景图比例。通常我们建议将背景图的长宽比放大,以适配不同长宽比的屏幕,但要注意两边需要留空,或者保留可被裁掉的元素;UI 的整体缩放。可以通过 UIR

2017-03-28 18:05:57 268

转载 Q&A——图形渲染(一)

图形渲染Q1:当关闭预渲染GI时会出现IndirectResolution,这个参数有什么用,为什么调大了以后会大大增加渲染时间,但是烘培出来却没有什么效果。该值主要控制的是GI的烘焙密度,数值越大,表示每个单位距离内的Texel越多,即烘焙得越精致,自然烘焙的时间也越长。该值并非越大越好,场景越小建议该值越低。该值为1时,对于多数场景,其烘焙效果已经足够了,升高该值,其效

2017-03-28 17:58:58 592

转载 Q&A——资源加载(一)

资源加载Q1:怎样动态加载Navmesh?目前Navmesh不支持动态加载,只能随场景一起加载, 因此可以考虑将带有Navmesh的场景打包成AssetBundle,然后使用LoadLevel加载AssetBundle中的场景。Navmesh的动态加载已经在Unity的Roadmap中。而当前,Navmesh是和场景绑定的,也就是说目前只能通过LoadLevel(不支持Lo

2017-03-28 17:57:20 265

转载 Q&A——资源管理(一)

资源管理Q1:iOS上PVRTC不支持NPOT的贴图压缩,在Android上可以用ETC2,但在iOS上不能压缩,内存消耗大。请问在iOS上有没有好的处理方案?ETC2仅能在支持OpenGL ES3.0的手机上进行使用,请研发团队在使用前谨慎考察支持ES3.0的手机在国内的覆盖范围。PVRTC不支持NPOT的贴图压缩,这是Apple规定的,上层应用无权对此更改。我们仅能建议

2017-03-28 17:56:02 452

转载 Q&A——内存管理(一)

内存管理Q1:如图,在Editor中查看Profiler里的内存详细信息,发现Used Total中有个“Unity”,请问是什么意思?为什么会特别大?在Editor中运行时,“Unity”大是正常的,因为在Editor中运行项目时,引擎包含了所有的资源占用的内存(除了部分纹理和Mesh是在GFX中),同时自身会进行很多的辅助操作来记录各种游戏运行信息。一般来说,在查看

2017-03-28 17:51:24 346

原创 NGUI开发优化技巧(下)

NGUI更新开销:NGUI进行自身的数据更新以及生成网格的过程中所产生的开销,目前UI部分的CPU耗时大部分都是这部分的开销;NGUI的更新开销几乎全部来源于UIPanel.LateUpdate中;一般超过3~4ms,说明这部分更新开销较高;UI更新的数量和频率通过合理的布局,可以把这部分的开销限制在很多小的范围里面;在关卡的切换或点击一些UI界面时,可以出现一些较高的峰值;但

2017-03-24 15:34:40 2611

原创 NGUI开发优化技巧(上)

UGUI和NGUI的区别:使用率:NGUI占大多数,NGUI和UGUI的使用占比为81% : 19%;易用性:NGUI占一定优势,UGUI仍在慢慢改善;性能:如果都合理搭配,UGUI在性能上还是有一点优势的,在Unity5.2、5.3之后UGUI有一部分网格合并的操作是放在多线程中进行,相对来讲,性能有一定的提升;但NGUI的优化相对更简单一些,主要是因为NGUI的Drawca

2017-03-24 15:17:43 890

Unity Shader 技能冷却效果

使用Unity Shader实现技能冷却效果,与NGUI插件中的技能CD效果类似。

2018-05-03

UnityShader 用Plane实现旗帜飘扬效果

UnityShader 用Plane实现简单旗帜飘扬效果

2018-05-02

Simple LOD v1.6.unitypackage

SimpleLOD,除了同样拥有Mesh Baker所具有的Mesh合并、Atlas烘焙等功能,它还能提供Mesh的简化,并对动态蒙皮网格进行了很好的支持。该插件可在Run-time和Editor中都可以使用,同时开放了源码,大家可以根据项目的实际情况而作修改。

2018-04-17

Unity3d 动画重定向 动力学骨骼插件DynamicBone

通过动态计算角色位移和动画,产生的飘带物理效果,可用在各种动画效果制作,比如:制作头发飘动动画效果;

2018-04-03

VS调试利器autoexp.dat

VS调试利器,可以查看调试时看不到的值,使用方法(以VS2010为例): 1:替换到Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger  2:重启visual studio

2017-07-05

Visual assist x trial key破解补丁

Visual Assist X 试用期一个月, 试用是全功能的, 这点还不错. 但是到期的话就不能继续了,先把visual studio软件关闭,运行vax_patch.exe,重启visual studio后,就可以使用了!

2017-06-24

Visual Assist X 2114

Visual Assist X是一款非常好的Microsoft Visual Studio插件,它可以完全集成到您的Microsoft开发环境中,升级了您的IDE,在不改变编程习惯的同时就可以感受到Visual Assist X为您带来的好处。软件支持Microsoft Visual Studio 2003-2012,C/C++,C#,ASP,VisualBasic,Java和HTML等语言,能自动识别各种关键字、系统函数、成员变量、自动给出输入提示、自动更正大小写错误、自动标示错误等。使用Visual Assist X有助于提高开发过程的自动化和开发效率。

2017-05-18

Avatar换装系统

它是一个Unity项目,显示如何在Unity中构建Avatar换装系统。 换装系统在游戏中非常重要,特别是在MMO游戏中。 通常,换装系统包含两个重要部分。 由于装备的外观不同(网格不同),因此将这些网格合并在一起是必要的。 第二,合并网格后,新网格包含许多材料(在此项目中,它有4种材质),这意味着它至少有4个drawcalls(依赖于着色器)。 所以合并材料在一起将减少drawcalls和提高游戏性能。

2017-03-21

Fast Shadow Receiver

阴影是3D空间中非常重要的方面。 然而,阴影渲染是GPU密集的过程。 快速阴影接收器通过最小化阴影绘制区域使阴影渲染更快。 这是低端移动设备上阴影性能问题的真正解决方案。

2017-03-07

Build Report Tool 自述文件

您的游戏版本想试图减少小于 50 MB 吗?需要去看,你的资产正在吃占用的磁盘空间? 此工具提供了一个很好前端为Unity的生成信息。它显示包含在build 时的资产和多少存储空间。

2017-03-01

Unity资源热更新之AssetBundle

包含旧版本的AssetBundle(Unity5.0以前)与新版本的AssetBundle(Unity5.0以后)的操作,以及AssetBundle的批量命名及打包操作

2016-12-07

Unity_LZMA方式的压缩与解压

使用LZMA压缩与解压Unity的Assetbundle包

2016-11-30

Unity3D 自定义树组件(树形菜单)

这是一个完整的Unity树形菜单项目工程,菜单可以进行折叠,点击某个节点,可以显示出所点击菜单的信息。

2016-11-05

Unity框选效果

Unity框选场景中的对象,被选中的对象,边缘高亮显示

2016-11-01

Unity3D-XML与JSON导出还原场景

将Unity游戏场景中游戏对象的、旋转、缩放、平移与Prefab的名称导出在XML与JSON中。然后解析刚刚导出的XML或JSON,通过脚本把导出的游戏场景还原

2016-10-26

Unity3D-XML与JSON解析

融合了XML与JSON的合成与解析(包括创建、更新、添加、删除、显示等操作)

2016-10-26

Unity 粒子系统缩放示例

这是一个完整版的Unity粒子系统缩放Demo,代码、资源、场景俱全,可直接看演示效果

2016-10-26

3D游戏引擎 源码+演示

一个小型商业版的3D游戏引擎,具有平常游戏所具有的的元素,如:场景、视角变换、图像、声音等众多元素

2013-12-28

获取本机的IP地址和MAC地址

在VC++6.0和VS下能顺利编译,获得本机的IP地址和MAC地址,并输出,里面为详细的源码,望大家学习与研究

2013-12-24

Unpause.zip

Use for make Unity3D animations and particles not pause when you set the Time.timeScale to 0. It's useful when you want to play some pause menu animation or make some good effect while the game is paused by setting Time.timeScale 0.

2019-05-17

Unity Shader - Sprite Shader之简单抠图

在PhotoShop中我们经常会用到抠图操作,现在就用Shader实现一个简单的抠图效果。使用当前像素颜色与需要抠掉的颜色相减作比较,然后与一个指定的阈值比较以决定是否将其显示出来;

2018-05-30

Unity Shader-后处理:景深

通过两张图片,一张清晰的,一张经过高斯模糊的,然后根据图片中每个像素的深度值在两张图片之间差值,就可以达到景深的效果了。

2018-05-26

Unity Shader - 后处理:高斯模糊

高斯模糊(Gaussian Blur),又叫做高斯平滑。高斯模糊主要的功能是对图片进行加权平均的过程,与均值模糊中周围像素取平均值不同,高斯模糊进行的是一个加权平均操作,每个像素的颜色值都是由其本身和相邻像素的颜色值进行加权平均得到的,越靠近像素本身,权值越高,越偏离像素的,权值越低。

2018-05-25

Unity Shader-后处理:简单均值模糊

所谓模糊,也就是不清楚,清晰的图片,各个像素之间会有明显的过渡,而如果各个像素之间的差距不是很大,那么图像就会模糊了,极端一点的情况,当一张图片所有的像素之间颜色都差不多时,那么这张图片也就是一个纯色的图片了。

2018-05-23

Unity Shader - 后处理:简单的颜色调整(亮度,饱和度,对比度)

我们在做游戏的时候,虽然现在有了Unity等引擎,不用我们自己处理一些繁琐的东西,但是不管怎么样,最后显示在屏幕上的还是一些RGB的像素信息,了解这些基本的概念,肯定对我们做游戏有更大的帮助。

2018-05-23

Unity Shader - 隐身效果

根据模型空间的y坐标范围,我们在vertex阶段记录一下vertex坐标,传递给fragment阶段,在fragment阶段用这个值和一个设定好的阈值进行比较,不满足条件的像素点直接discard,逐渐调整阈值,就可以得到让模型按照某个方向消失的效果了。

2018-05-23

Unity Shader - 3D流光效果

3D流光需要将流光贴图的UV坐标和模型UV的XY坐标对应了起来,再将它进行UV动画移动起来,就实现了3D的流光效果。

2018-05-22

Unity Shader-死亡溶解效果

溶解(dissolve) 效果常见于游戏中的角色死亡、地图烧毁等效果。在这些效果中,消融往往从不同的区域开始,并向看似随机的方向扩张,最后整个物体都将消失不见。

2018-05-22

UnityShader 法线贴图(Normal Map)与视差贴图(Parallax Map)

主要研究一下怎样增强法线贴图的效果,法线贴图的进阶版-视差贴图(Parallax Map)。

2018-05-21

UnityShader 浮雕凹凸贴图BumpMap与法线贴图NormalMap的原理及其区别

凹凸映射和纹理映射非常相似。然而,纹理映射是把颜色加到多边形上,而凹凸映射是把粗糙信息加到多边形上。

2018-05-20

UnityShader 渲染队列,ZTest,ZWrite,Early-Z

Unity渲染引擎一般都会先对物体进行排序,再渲染。常用的方法是: (1)先渲染所有不透明物体,并开启它们的深度测试和深度写入。 (2)把半透明物体按它们距离摄像机的远近进行排序,然后按照从后往前的顺序渲染这些半透明物体,并开启它们的深度测试,但关闭深度写入。

2018-05-18

UnityShader 描边效果

描边效果是游戏里面非常常用的一种效果,一般是为了凸显游戏中的某个对象,会给对象增加一个描边效果。

2018-05-17

UnityShader 边缘光(静态、动态及遮罩)效果

思路:用视方向和法线方向点乘,模型越边缘的地方,它的法线和视方向越接近90度,点乘越接近0。那么用 1-减去上面点乘的结果,来作为颜色分量,来反映边缘颜色强弱。

2018-05-16

UnityShader 漫反射(兰伯特与半兰伯特光照模型-逐顶点和逐像素光照)

漫反射光照是用于对那些被物体表面随机散射到各个方向的辐射度进行建模的。在漫反射中,视角的位置是不重要的,因为反射是完全随机的,因此可以认为在任何反射方向上的分布都是一样的。但是,入射光线的角度很重要。

2018-05-15

UnityShader 序列帧动画效果

序列帧动画的主要的思想是设置显示UV纹理的大小,并逐帧修改图片的UV坐标。

2018-05-15

UnityShader 实现3D模型颜色渐变效果

使用Unity Shader使模型的颜色产生简单的两种颜色过渡的渐变效果。

2018-05-11

UnityShader 实现2D流光效果

很多游戏Logo中都可以看到流光效果,实现方案就是对带有光条的图片uv根据时间进行移动,然后和原图进行叠加实现。

2018-05-09

空空如也

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

TA关注的人

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