unity3d
文章平均质量分 72
_hiJ
独立游戏开发者
展开
-
Unity SRP初识之URP
URP是Unity基于SRP提供的兼顾表现与性能的渲染管线。URP前身命名为LWRP(轻量级渲染管线),后更名为URP。URP已包含在新建工程的工程模板中URP使用简化的基于物理的照明和材质来实现高质量的快速渲染。 URP使用单遍正向渲染,以在多个平台上优化实时性能官方配置说明文档:https://docs.unity3d.com/Packages/[email protected]/manual/universalrp-asset.html.原创 2021-08-25 15:48:27 · 2079 阅读 · 0 评论 -
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 · 423 阅读 · 0 评论 -
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 · 685 阅读 · 0 评论 -
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 · 803 阅读 · 0 评论 -
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 · 1995 阅读 · 0 评论 -
Unity开启HDR在个别真机上黑屏现象
2017版本的Unity有个严重的HDR渲染错误,当开启相机HDR功能后,在个别GPU上会出现黑屏花屏现象。Unity官方贴出了一个在2018.3中已经修复的Bug:实际上我使用oppoR9(MALI-T860)一样会出现同样的情况。即使使用SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.DefaultHDR)接口检测设...原创 2018-12-25 14:03:49 · 3907 阅读 · 0 评论 -
程序生成TimeLine资源等ScriptableObject资源
TimeLine资源,.playable文件,也是可脚本化对象ScriptableObject的子类,ScriptableObject是Unity中用来保存数据,而又不需要挂载在game object上的类。可以添加[CreateAssetMenu]属性标记在类名前面,将资源创建添加到右键菜单中,然后手动创建。也可以使用程序代码自动创建。以下是程序代码生成的步骤,及一些坑点: Timelin...原创 2019-01-16 18:30:46 · 434 阅读 · 0 评论 -
Unity TimeLine相关整理
简单的UML:几个比较重要的类:PlayableDirector:导演组件,以组件形式运行。处理TimeLine的播放及TimeLine对场景物件的引用绑定TimeLineAsset:一份TimeLine资源,含有轨道列表,而轨道上又有剪辑的列表。是ScriptableObject的子类。包含了程序创建TimeLine资源的接口。继承自PlayableAssetPlayab...原创 2019-02-25 17:43:13 · 956 阅读 · 0 评论 -
Unity解决特效创建时的异常拖尾问题
实例化带拖尾的特效时,如果是使用goEff = Instantiate<GameObject>(特效预制体);goEff.transform.position = 目标位置这种形式创建,在创建时就会出现一条移动拖尾,一遍这种不是我们想要的。而如果使用goEff = Instantiate<GameObject>(gbjEff, 目标位置, 朝向);...原创 2019-07-09 19:36:03 · 2519 阅读 · 0 评论 -
Unity音频资源设置解读
Force To Mono:将多声道音频混合为单声道Load In Background:在独立线程加载音频剪辑Ambisonic:是否环绕声LoadTypeDecompressOnLoad:在音频加载后马上解压缩。对较小的压缩声音使用此选项可以避免动态解压缩的性能开销。 请注意,在加载时解压缩Vorbis编码的声音将使用大约十倍于内存的内存(对于ADPCM编码约为3.5倍),因...原创 2019-07-09 19:41:10 · 1255 阅读 · 0 评论 -
Substance与PBR工作流总结
PBR介绍PBR即基于物理的渲染,是一套尝试基于真实世界光照物理模型的渲染技术合集,使用了一种更符合物理学规律的方式来模拟光线,达到更真实的渲染效果,而且可以直接通过物理参数来直观地达到想要的结果,不用通过拙劣的各种参数调整。物理参数一般直接通过贴图来传递给Shader。 2.关于SubstanceSubstance是Allegorithmic公司的一套PBR美术制作工具,包括Substa...原创 2018-05-11 14:07:24 · 19705 阅读 · 2 评论 -
Adreno GPU Profiler 和 Snapdragon Profiler工具总结
Adreno GPU Profiler 和 Snapdragon Profiler 都是高通的安卓应用分析工具,可以让我们非常直观全面地分析安卓应用在实机CPU和GPU的详细数据,甚至内存,网络数据等。可以用来分析自己的游戏的一些性能问题,或者看看其他厂家游戏的技术实现,非常强大。功能包括实时性能分析,抓帧分析等。 下载地址:https://developer.qual...原创 2018-04-20 18:10:42 · 7240 阅读 · 0 评论 -
[算法]3D三角面片与包围盒相交交点求法
最近在研究复制包围盒内相交网格的问题,有一个要解决的难题就是获得一个任意三角面片与指定包围盒的交点。原创 2017-08-15 11:26:03 · 3849 阅读 · 1 评论 -
着色器实现未上线图像灰色效果
头像使用了为材质动态加载贴图。为了实现灰色效果,网上找了段着色器。Shader "GrayscaleLol" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 20原创 2013-03-12 15:02:22 · 1288 阅读 · 0 评论 -
iTween中的大数值精度问题
使用iTween时,如果传入的int或double参数数值过大(8位或8位以上),会引起精度损失。原因是iTween内部会将传入的int或double类型数据强制转换成float,而float的精度只有7位。原创 2013-06-04 11:49:55 · 941 阅读 · 0 评论 -
unity开发经验集
记录开发过程中的一些经验感悟。UI布局尽量使用预制排版,不要用代码控制。当UI调整时,调整代码是份繁琐的工作。- 3/2由于英文水平不同,不同人对同一种事物的翻译不尽相同。制定一份表格,指定单词。-3/2原创 2013-03-02 15:37:58 · 616 阅读 · 0 评论 -
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 · 7752 阅读 · 1 评论 -
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 · 8337 阅读 · 0 评论 -
通过蒙板测试在NGUI中简单实现蒙板效果
经常会有需要镂空一张贴图的时候,比如新手引导的界面。使用自定义NGUI Shander可以简单的实现原创 2016-06-21 11:31:06 · 1952 阅读 · 0 评论 -
Unity使用光照贴图进行动态光照模拟
Unity使用光照贴图进行动态光照模拟原创 2017-01-12 15:42:55 · 3210 阅读 · 0 评论 -
Unity中使用Shader实现3D打印机效果
思路很简单,我们指定一个裁剪高度_ConstructY,如果模型上某个点的的世界坐标高度大于裁剪高度,就discard(擦除)掉,而裁剪高度到边缘光(白色的扫光)高度之间的点,使用指定颜色渲染。然后我们动态改变_ConstructY,就能实现这个效果。表面着色器代码: void surf (Input IN, inout SurfaceOutputStandard o) { if (I原创 2017-01-18 18:25:47 · 2929 阅读 · 0 评论 -
用PSD文件自动生成NGUI界面
日常开发中,UI制作一般是美术在PS中制作效果图,然后编写文档告诉客户端UI使用了哪些图片,图片的像素大小,字体的大小等等,客户端程序再根据这些文档制作UI布局。耗时耗力!客户端程序员难以通过肉眼确定UI图片的具体位置,图片的大小也经常没有在文档中指定出来,制作非常麻烦。如果能直接将美术制作的PSD文件解析并自动在Unity中生成UI,可以节省很多时间精力。利用PS的脚本功能,我们可以编写PS脚本原创 2017-03-24 14:22:04 · 2713 阅读 · 4 评论 -
unity开发插件,工具分享
2d插件:tk2d缓动插件:iTween。实际上只需添加一个类库,程序调用就可以了。可以简化对物体运动,透明度,缩放的控制。非常强大的一个类库,可以上官网看看演示。2d精灵动画编辑:Spriter。2d骨骼动画编剧软件,比较强大GIF处理:Ulead GIF Animator 5。将一些gif素材进行逐帧分割,然后添加到游戏中。结合播放器逐帧截取画面,就可以把视频动画搬到游戏里了。矢量图绘制软原创 2013-02-25 12:49:06 · 1863 阅读 · 0 评论