- 博客(32)
- 资源 (2)
- 收藏
- 关注
原创 Unity SRP初识之URP
URP是Unity基于SRP提供的兼顾表现与性能的渲染管线。URP前身命名为LWRP(轻量级渲染管线),后更名为URP。URP已包含在新建工程的工程模板中URP使用简化的基于物理的照明和材质来实现高质量的快速渲染。 URP使用单遍正向渲染,以在多个平台上优化实时性能官方配置说明文档:https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@11.0/manual/universalrp-asset.html.
2021-08-25 15:48:27
2166
原创 SRP批处理
https://docs.unity3d.com/Manual/SRPBatcher.htmlSRP批处理可以加速CPU渲染,降低DC间的CPU消耗。使用相同的Shader变体的材质球 URP,HDRP,自定义SRP都支持批处理可以在运行时切换批处理开关,默认开启GraphicsSettings.useScriptableRenderPipelineBatching = true;兼容性SRP批处理与标准SRP渲染是不同的代码路径。要使用SRP批处理 渲染物体必须是me
2021-08-25 15:44:12
441
原创 Unity SRP初识笔记
https://docs.unity3d.com/Manual/ScriptableRenderPipeline.html可编程渲染管线(SRP)是Unity内置渲染管线的替代方法。Unity提供了HDRP(高清渲染管线)和URP(通用渲染管线)两种模板 更自由灵活的自定义管线 使用SRP,可以通过C#脚本控制和定制渲染 。 这样,您可以根据需要稍微修改或完全构建和自定义渲染管道。与内置的Unity渲染管道相比,SRP提供了更多的粒度和自定义选项。 可以使用一种预先构建的SRP来满足您的特
2021-08-25 15:41:14
740
原创 Additive方式加载场景真机上存在的光照贴图问题
在场景光照贴图这块,最近遇到了一个场景莫名变暗的问题。记录如下在AB模式下,使用Additive方式加载场景(3D物件场景,有进行烘焙) 加载3个场景a,b,c 卸载掉一个场景a 然后执行AB卸载(true方式卸载),会发现剩下两个的场景b,c的光照贴图变暗了(场景光照贴图卸载ab后与卸载ab前对比) 再加载回场景a,发现变暗的光照贴图恢复了,但是场景b,c的光照贴图UV错乱了。场景a的光照贴图正常分析在mac用ab模式执行了测试后,采集了在上述几个步骤中,光照贴图数组(Light...
2020-05-19 16:14:50
835
原创 GPUInstancing在真机上失效问题
问题场景草使用了GPUInstancing批处理技术,但是发现草原场景帧数比较低,真机调试后发现DC已经高达7千,GPUInstancing失效了原因官方文档有相关说明:Unity strips instancing variants if GPU Instancing is not enabled on any GameObject in the Scene. To override the stripping behaviour, open theGraphicssettings ..
2020-05-15 09:27:10
2149
原创 Unity音频资源设置解读
Force To Mono:将多声道音频混合为单声道Load In Background:在独立线程加载音频剪辑Ambisonic:是否环绕声LoadTypeDecompressOnLoad:在音频加载后马上解压缩。对较小的压缩声音使用此选项可以避免动态解压缩的性能开销。 请注意,在加载时解压缩Vorbis编码的声音将使用大约十倍于内存的内存(对于ADPCM编码约为3.5倍),因...
2019-07-09 19:41:10
1300
原创 Unity解决特效创建时的异常拖尾问题
实例化带拖尾的特效时,如果是使用goEff = Instantiate<GameObject>(特效预制体);goEff.transform.position = 目标位置这种形式创建,在创建时就会出现一条移动拖尾,一遍这种不是我们想要的。而如果使用goEff = Instantiate<GameObject>(gbjEff, 目标位置, 朝向);...
2019-07-09 19:36:03
2684
原创 Unity TimeLine相关整理
简单的UML:几个比较重要的类:PlayableDirector:导演组件,以组件形式运行。处理TimeLine的播放及TimeLine对场景物件的引用绑定TimeLineAsset:一份TimeLine资源,含有轨道列表,而轨道上又有剪辑的列表。是ScriptableObject的子类。包含了程序创建TimeLine资源的接口。继承自PlayableAssetPlayab...
2019-02-25 17:43:13
991
原创 程序生成TimeLine资源等ScriptableObject资源
TimeLine资源,.playable文件,也是可脚本化对象ScriptableObject的子类,ScriptableObject是Unity中用来保存数据,而又不需要挂载在game object上的类。可以添加[CreateAssetMenu]属性标记在类名前面,将资源创建添加到右键菜单中,然后手动创建。也可以使用程序代码自动创建。以下是程序代码生成的步骤,及一些坑点: Timelin...
2019-01-16 18:30:46
455
原创 Unity开启HDR在个别真机上黑屏现象
2017版本的Unity有个严重的HDR渲染错误,当开启相机HDR功能后,在个别GPU上会出现黑屏花屏现象。Unity官方贴出了一个在2018.3中已经修复的Bug:实际上我使用oppoR9(MALI-T860)一样会出现同样的情况。即使使用SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.DefaultHDR)接口检测设...
2018-12-25 14:03:49
3989
原创 Substance与PBR工作流总结
PBR介绍PBR即基于物理的渲染,是一套尝试基于真实世界光照物理模型的渲染技术合集,使用了一种更符合物理学规律的方式来模拟光线,达到更真实的渲染效果,而且可以直接通过物理参数来直观地达到想要的结果,不用通过拙劣的各种参数调整。物理参数一般直接通过贴图来传递给Shader。 2.关于SubstanceSubstance是Allegorithmic公司的一套PBR美术制作工具,包括Substa...
2018-05-11 14:07:24
19801
2
原创 Adreno GPU Profiler 和 Snapdragon Profiler工具总结
Adreno GPU Profiler 和 Snapdragon Profiler 都是高通的安卓应用分析工具,可以让我们非常直观全面地分析安卓应用在实机CPU和GPU的详细数据,甚至内存,网络数据等。可以用来分析自己的游戏的一些性能问题,或者看看其他厂家游戏的技术实现,非常强大。功能包括实时性能分析,抓帧分析等。 下载地址:https://developer.qual...
2018-04-20 18:10:42
7398
原创 【Unity】【Shader】写一个初步的水波模拟Gerstner Waves
最近看《GPU Gems》,第一章讲解了自然中水波的模拟:https://developer.nvidia.com/gpugems/GPUGems/gpugems_ch01.html,其中提到了广泛使用(没看之前我也是不懂哈哈)的Gerstner Waves,在正弦波的基础上,这个函数能模拟出水波的尖锐波峰效果下面是我初步模拟出的结果数学及物理理论可以自己看
2017-10-24 14:51:01
6611
2
原创 [算法]3D三角面片与包围盒相交交点求法
最近在研究复制包围盒内相交网格的问题,有一个要解决的难题就是获得一个任意三角面片与指定包围盒的交点。
2017-08-15 11:26:03
3970
1
原创 【Shader】简单的屏幕喷血渐溶效果
一般FPS中的屏幕溅血效果可以使用UI贴图制作,简单,缺点是效果生硬,不够逼真。这边提供一种方案思路,可以随机生成血液喷溅并慢慢溶解的效果。首先是全屏特效的实现。可以用OnPostRender实现,但是消耗太大,有点浪费。我们可以在相机前放置一个Quad面片,然后其渲染至整个屏幕。再在这个面片上进行纹理绘制即可。 v2f vert(appdata_base v) { v2f o; o
2017-05-11 11:37:38
2870
1
原创 用PSD文件自动生成NGUI界面
日常开发中,UI制作一般是美术在PS中制作效果图,然后编写文档告诉客户端UI使用了哪些图片,图片的像素大小,字体的大小等等,客户端程序再根据这些文档制作UI布局。耗时耗力!客户端程序员难以通过肉眼确定UI图片的具体位置,图片的大小也经常没有在文档中指定出来,制作非常麻烦。如果能直接将美术制作的PSD文件解析并自动在Unity中生成UI,可以节省很多时间精力。利用PS的脚本功能,我们可以编写PS脚本
2017-03-24 14:22:04
2786
4
原创 Unity中使用Shader实现3D打印机效果
思路很简单,我们指定一个裁剪高度_ConstructY,如果模型上某个点的的世界坐标高度大于裁剪高度,就discard(擦除)掉,而裁剪高度到边缘光(白色的扫光)高度之间的点,使用指定颜色渲染。然后我们动态改变_ConstructY,就能实现这个效果。表面着色器代码: void surf (Input IN, inout SurfaceOutputStandard o) { if (I
2017-01-18 18:25:47
2989
原创 Unity2D动态设置SpriteRender的Sprite(Multipe)
Sprite被为设置Multiple的情况下,如何根据子Sprite的名字设置精灵图片呢:找不到直接根据名字取子Sprite的方法,但是我们可以通过 Sprite[] sprites = Resources.LoadAll("path"); // path为Sprite在Resources中的路径来访问到所有子Sprite。只有我们初始化时遍历这些子Sprite,以name为key
2015-07-24 17:01:00
8406
原创 Unity打包场景对包大小的影响
包大小中比重比较大的一部有:模型,贴图,音频以及场景文件,即日志中的Levels数据。Levels大小跟场景中物体个数有关,测试了下,如果场景中有1000方块,Levels会占260K左右大小,但是,如果这1000个方块是static的,这个大小会变成1.6M。可见static对包大小影响还是挺大的。
2015-07-15 17:26:58
4189
原创 Unity4.x升级5.0出现的32位dll问题
Unity4.x工程升级到5.0版本,如果项目中有使用sqlite3.dll,可能会出现以下运行错误:Failed to load 'Assets/Plugins/sqlite3.dll', expected 64 bit architecture (IMAGE_FILE_MACHINE_AMD64), but was IMAGE_FILE_MACHINE_I386.这是应为项目中的d
2015-07-08 22:12:33
5586
原创 Unity2D实现贴图凹凸感并接受实时光照效果
先看最终效果:我们的原图是一个3D模型的截图:这一效果是通过Shader实现的:(Shader代码来自国外博客:http://www.thomas-joncorpuz.com/blog/2014/11/30/custom-unity-2d-sprite-shader)Shader "Custom/SpriteNormal" { Properties
2015-07-03 16:47:09
7786
1
原创 Unity中批处理对Shader的影响
最近处理一个Shader效果时发现批处理对Shader会有影响。具体表现为:1:Shader中的顶点函数根据顶点位置(物体空间)进行了计算,如把顶点颜色设置为顶点位置值(物体空间)2:当只渲染一个物体时,Shader表现正常3:当渲染多个物体时,且这些物体Unity进行了批处理,会发现Shader异常了,顶点函数中的顶点位置(物体空间)原点已经不在物体的中心4:官方文档说添加禁用批
2015-05-23 11:27:10
1998
原创 iTween中的大数值精度问题
使用iTween时,如果传入的int或double参数数值过大(8位或8位以上),会引起精度损失。原因是iTween内部会将传入的int或double类型数据强制转换成float,而float的精度只有7位。
2013-06-04 11:49:55
964
原创 mono中的中文问题
mono默认编码是ANSI,只要用记事本打开,另存为UTF-8编码就可以了。将所有UI文本放到一个静态类中,这样只需转化这个类文件的格式,项目中的其他地方就可以正确地引用中文文本了
2013-04-21 10:04:36
1256
原创 关于Shader wants normals, but the mesh doesn't have them的问题
问题很明显,着色器需要网格mesh的法线值。但是mesh的法线值为空。即mesh.normals是空的数组。如果mesh是代码实例化生成,则需手动给normals填充值:调用mesh.RecalculateNormals()就ok啦。此外,官方api的一句话需要注意:After modifying the vertices it is often useful to update the no
2013-03-14 17:58:38
7344
1
原创 着色器实现未上线图像灰色效果
头像使用了为材质动态加载贴图。为了实现灰色效果,网上找了段着色器。Shader "GrayscaleLol" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 20
2013-03-12 15:02:22
1321
原创 unity开发经验集
记录开发过程中的一些经验感悟。UI布局尽量使用预制排版,不要用代码控制。当UI调整时,调整代码是份繁琐的工作。- 3/2由于英文水平不同,不同人对同一种事物的翻译不尽相同。制定一份表格,指定单词。-3/2
2013-03-02 15:37:58
626
原创 《洞窟物语》感悟
这两天迷上了这个独立游戏:洞窟物语。为什么如此吸引人呢充满悬念而有趣的故事。微解密。场景中的提供的线索让玩家自己探索发现挑战的地方藏有奖励出色的音乐。让出色的故事更加妙趣横生简单而爽快的战斗行行色色有趣的怪物
2013-02-27 19:22:48
850
原创 unity开发插件,工具分享
2d插件:tk2d缓动插件:iTween。实际上只需添加一个类库,程序调用就可以了。可以简化对物体运动,透明度,缩放的控制。非常强大的一个类库,可以上官网看看演示。2d精灵动画编辑:Spriter。2d骨骼动画编剧软件,比较强大GIF处理:Ulead GIF Animator 5。将一些gif素材进行逐帧分割,然后添加到游戏中。结合播放器逐帧截取画面,就可以把视频动画搬到游戏里了。矢量图绘制软
2013-02-25 12:49:06
1898
原创 unity模型缩放被自动修改
如果一动画有对模型进行缩放,那么在播放播放动画后,模型的缩放将被修改。模型的其他属性,如位置,旋转应该也是同样道理
2013-02-25 11:28:58
1464
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人