
Unity
雨林一叶
这个作者很懒,什么都没留下…
展开
-
解决PlanarShadow(平面阴影)在camera边缘被裁剪的问题
关于PlanarShadow的实现相关文章很多,这里就不列举了。PlanarShadow有一个问题就是当模型本体全部移动到camera的视椎体外侧时,留在camera内的PlanarShadow会瞬间一起消失掉。其实问题很明显,就是被Frustum Culling干掉了。解决方法其实也挺简单的,参考了这篇文章:Disabling Frustum Culling on a Game Object in Unity « Allen Pestaluky: Blog中心思想就是修改mesh的bounds使得原创 2022-03-17 16:19:40 · 2607 阅读 · 0 评论 -
[Unity]在第二个Camera中读取主Camara的深度图
先上结果图:scene中可以看到几个物体的排列顺序.主Camera: _camera.depthTextureMode = DepthTextureMode.Depth;原创 2020-09-09 11:37:46 · 742 阅读 · 0 评论 -
[Unity]在shader中自定义可随时从0开始的计时器
由于在shader中_Time是从level加载开始就一直继续走的一个不受控制的变量,有时候要从任意时刻在shader中开始一个从0开始的计时器就不能用_Time.y了.其实解决方法也简单,在C#端,Time.timeSinceLevelLoad就是与shader端的_Time.y完全一致的一个变量,只要在shader段暴露一个变量给C#端(假设叫_CustomTime),然后在需要在shader...原创 2020-03-08 22:30:13 · 1601 阅读 · 2 评论 -
[Unity]记录一种大规模骨骼动画的Planar Shadow的生成方法
之前关于可batching的大规模动画总结了一篇文章https://blog.youkuaiyun.com/tlrainty/article/details/88667370主要采用了骨骼烘焙贴图来替代SkinnedMeshRenderer,从而实现可batching.之后在阴影实现时又想到,是不是可以将这个骨骼贴图传给PlanarShadow,让Planar Shadow也可以应用到带骨骼动画...原创 2019-10-29 11:12:51 · 401 阅读 · 0 评论 -
[Unity] vertex-frag形式的shader中接受Unity内置阴影
Unity5之前,想要接受阴影需要一个名为ShadowCollector的Pass.参考这里:https://forum.unity.com/threads/i-put-a-shadowcollector-pass-in-my-shader-but-why-does-it-cant-recieves-shadow-why.160010/但是Unity5之后这个Pass已经没有用了,参见官网...原创 2019-04-18 16:48:03 · 696 阅读 · 0 评论 -
Unity骨骼动画的gpu instancing优化取代方案问题小结
主要参考文章为如下两篇:1.https://www.cnblogs.com/murongxiaopifu/p/7250772.html2.https://blog.youkuaiyun.com/zsy654321/article/details/80865060关于RGBAHalf转RGB24,上面第二篇文章已经提到了.但是实际操作中还存在一些问题.比如filter mode的默认格式会导致在...原创 2019-03-19 17:28:25 · 2310 阅读 · 5 评论 -
[Unity]Curvy插件随机生成装饰物
Curvy插件在生成铁轨,公路,河流等方面确实很方便。教程之前参考了下面这篇教程(这个博主的教程主要囊括了官网视频教程的前两部,第三部的Generator建议再看看视频,可以调出YouTube的字幕看一看)https://blog.youkuaiyun.com/cordova/article/details/52215079本文主要总结下Curvy中随机物体的生成方式(如路边杂草等)。因为实在是没有搜...原创 2019-03-06 18:55:24 · 1869 阅读 · 0 评论 -
总结一个升级XCode10后编译变慢的问题
苹果公司要求的升级最后期限要到了,最近升级了XCode10,但发现Unity做iOS版本的速度比原来慢了一倍。观察log发现是导出的XCode工程的编译速度慢了很多.经过各种瞎蒙推测后确定了问题原因,我们原来的脏话过滤系统的文本是直接放在.cs文件中的一个很长的静态List<String>,存储了各种汉字的脏话.这部分在XCode10之前编译速度是没问题的,但升级XCode10之后...原创 2019-02-27 16:04:37 · 1665 阅读 · 0 评论 -
[Unity]用同一份material在不同mesh上绘制不同图案
假设游戏中有256个相同材质的物体上要分别绘制数字1~256,需要占256个drawcall吗?可以batch到1个drawcall吗?简化一下问题:假如有4个Plane,我们要用下面这张材质分别在它们上面画1,2,3,4四个数字,可以做到只消耗一个drawcall吗?当然可以,关键就是使用顶点色保存uv信息.因为我们不能把uv信息保存在material中或者运行时给它赋值(会破坏batchi...原创 2018-07-20 11:00:25 · 2170 阅读 · 0 评论 -
[Unity] SV_POSITION位置导致的shader问题
今天碰到了一个非常无语的问题,特写下来记录一下。在PC上效果正常的shader,放到手机上就是一片粉。挨个排查后最后发现是因为v2f中SV_POSITION放在最后没有放在最前面,挪到第一个就好了struct v2f{ float4 vertex:SV_POSITION; float2 bumpCoords:TEXCOORD0; //...}这个人也碰到了这个SV_PO...原创 2018-06-20 21:31:53 · 2376 阅读 · 0 评论 -
[Unity]用Enlighten生成lightmap用作模型光照贴图
Enlighten一般都被我们用来生成场景lightmap用,其实也可以用它来生成一张针对某单个模型的光照贴图。具体做法是:场景中只摆放这一个物体,然后用Enlighten渲出lightmap贴图(当然也可以多个物体一起渲,只要调整每个物体在生成的lightmap中的比例,保证每个物体对应一整张exr就行了。这个我没自己试过,美术说的).然后自己写shader来对光照贴图采样。这样,就不是仅仅静态...原创 2018-06-05 16:49:08 · 1942 阅读 · 0 评论 -
[Unity]关于树和阴影的DynamicBatch
关于大规模的可batch的billboard的树的实现,《UnityShader入门精要》11.3.3中提到过“利用顶点颜色来存储每个顶点到锚点的距离值”,具体的操作方法可以参见根据这篇文章: https://blog.youkuaiyun.com/u011047171/article/details/47255233 .而树的阴影在实际项目中一般会直接烘在一个平放的Quad上,然后跟树的模型一起导出,方便同...原创 2018-05-21 12:13:24 · 1278 阅读 · 0 评论 -
[Unity]关于LightMap和LightProbe的一些总结
1. Light的CullingMask只针对实时光,对Bake的光CullingMask是不管用的,也就是说LightMap不分Layer.同样,LightProbe也不支持分层.2. Lightprobe不会影响static物体,只影响非static物体.3. LightProbe其实就是一个采样点,数据存储在LightMap中.LightProbe的信息是否更新仅仅取决于LightMap.在...原创 2018-02-11 18:06:02 · 3480 阅读 · 0 评论 -
[Unity]运行时用AnimatorOverrideController动态加载动画片段
项目中经常会遇到这种情况:很多模型动画的AnimatorController是一模一样的(比如人类男,人类女),但是由于在AnimatorController中需要为每个State指定具体的Motion(比如人类女的Run和Attack要分别指定Human_Female_Run和Human_Female_Attack,如图1),我们并不能简单地在编辑器中给它们指定同一个AnimatorContro原创 2017-01-18 17:58:09 · 18869 阅读 · 0 评论 -
[Unity]保存运行时对Scene中GameObject属性的修改
google中原链接已失效,只剩快照了(unity3d-save-your-in-play-transform-modifications),所以写篇文章记录一下.很多时候,我们想把运行游戏时对场景中物体属性的修改保存下来,但一旦停止运行这些修改就恢复运行前的状态了。对于有原Prefab的物体比较好办,把运行中修改后的物体直接拖回去覆盖原Prefab即可.而对只在Scene中存在的GameOb翻译 2017-08-31 18:19:18 · 11828 阅读 · 1 评论