1)TMP的阴影性能如何
2)CommandBuffer.DrawMeshInstanced无法画阴影问题
3)Unity编辑器在Require大量加载Lua文件时,经常报出not enough memory
4)场景制作的时候,2D资源受后处理调色影响比较大
这是第335篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。
TextMeshPro
Q:请问TMP的阴影性能如何?TMP的描边没办法改成外描边吗?看起来Outline是内外都扩的,如果想要改成外扩只能改源码吗?
A1:UGUI的Outline会让对象多渲染n次,TMP的Outline并不会让对象的渲染次数增加,性能更好。
在这个Shader中把“+outline”删除,Outline就会只往外扩散了。
感谢Xuan@UWA问答社区提供了回答
A2:TMP的阴影性能非常不错,因为它使用的是基于距离场的渲染技术,这种技术可以在保持高质量的情况下减少渲染时间。这意味着,即使在文本中使用多个阴影效果,也可以获得良好的性能表现。
至于TMP的描边效果,它是支持外描边的。默认情况下,TMP的描边是内外都扩的,但是你可以通过更改材质属性来将其改为外描边。
具体来说,你可以在使用TMP组件的对象上找到对应的材质,然后将材质的Outline Width属性设置为负数,这样就可以将描边扩展到文本的外部。
需要注意的是,TMP的材质是使用ShaderLab语言编写的,如果需要修改其内部逻辑,可能需要一定的编程知识。但是,对于简单的修改,例如更改描边效果,你可以尝试使用Shader Graph工具来简化修改过程。
感谢NG週@UWA问答社区提供了回答
Rendering
Q:想用CommandBuffer.DrawMeshInstanced画阴影,使用的是URP的Lit Shader,ForwardLit 是可以的,且可以AfterRenderingOpaques。但是阴影是画不出来,请问有什么解决方法吗?以下是代码(代码不是原创):
Question - CommandBuffer, DrawMeshInstanced, & ShadowCasting - Unity Forum
部分代码截图:
针对以上问题,有经验的朋友欢迎转至社区交流分享:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技
Rendering
Q:场景制作的时候,要不要开着后处理,遇到的问题是2D资源受后处理调色影响比较大?
我们的情况比较复杂:
1. 从性能角度考虑,低配机型是不开后处理的
2. 2D角色、2D建筑、3D场景混合渲染
3. 有半解锁的战争迷雾效果
在这些需求下,场景制作跟后处理要怎么协同呢?
思考了几个方案都不太行:
1. 在UI相机画2D,但无法完美处理深度问题,因为场景的RT是缩放过的,但UI采用全分辨率
2. 2D片写入Stencil,有一些半透的云可能遮住2D片,写入Stencil处理的话可能会有明显的边界问题,且UberPost最后是全屏的,由于场景RT跟界面RT尺寸不同,Stencil也不对应
3. 将后处理的调色放到Opaque之后进行,但这样其他的半透则无法参与调色,且这种方案带来更多的RT切换,在移动端并不明智
现在想着是在不开后期的情况下设计场景,然后后期调色只是进行微调,尽量不影响2D,如果效果甚微的话,就不开启后期调色了,不知这样处理如何?主要是2D与3D混合的场景,不是说UI,UI相机本身是不开后期的,不知大家有什么方案?
针对以上问题,有经验的朋友欢迎转至社区交流分享:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技
Lua
Q:在Unity 2018编辑器上跑时,启动Require大量加载Lua文件时,经常报出not enough memory,很频繁但非必现,在Windows/Android/iOS上都不会,用的是toLua。
A:可以在编辑器里面用System.IO.File的接口读Lua,避开TextAsset在编辑器不能卸载的问题。或者尝试升级Lua版本。
感谢欧月松@UWA问答社区提供了回答
封面图来源于网络
今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。
UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com