美文网首页
GPU Skinning不生效问题

GPU Skinning不生效问题

作者: 侑虎科技 | 来源:发表于2020-03-03 20:49 被阅读0次

    1)GPU Skinning不生效问题
    2)勾选凸包报的警告问题
    3)Unity 2019 图片压缩格式选择
    4)Android Export打包对压缩的影响
    5)Android内存中的Unknown部分泄漏


    这是第192篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

    UWA 问答社区:answer.uwa4d.com
    UWA QQ群2:793972859(原群已满员)

    Rendering

    Q:Unity版本:2019.3.0f6
    Shader:GPUSkinningUnlitSkin2
    测试Scene :Adam_Player_Crowd
    测试手机 :Samsung S5

    请问我使用Git上的GPU Skinning在PC上测试DrawCall数是有降低的,同时没有Animator.update的消耗,而且有Instancing,但build到Samaung S5上用Unity Profiler监看没有Animator.update的开销,但DrawCall没有降低,也没有Instancing,请问是有什么部分没有设定好吗?

    另外GPU Skinning若要使用Instancing仅限于OpenGL ES 3.0吗? 还是OpenGL ES 2.0也能使用?

    PC

    Samsung S5

    A:参考官网文档,如下描述,并不支持OpenGL ES 2.0。


    官方文档:https://docs.unity3d.com/Manual/GPUInstancing.html

    感谢郑骁@UWA问答社区提供了回答,欢迎大家转至社区交流:
    https://answer.uwa4d.com/question/5e4b325bfd2e373ffa7eac5d


    Mesh

    Q:有个复杂模型报警告:
    Couldn’t create a Convex Mesh from source mesh “ ** ” within the maximum polygons limit (256). The partial hull will be used. Consider simplifying your mesh.
    我用SimpleLod减面之后也没有减到256个面,但是不报这个警告了,这个警告到底是怎么回事?建模时候应该如何避免?

    A:生成的Convex Mesh最多只能有255个三角形。你原来的模型太复杂,255个三角形不够用,不足以表示轮廓。

    感谢fubbi1000@UWA问答社区提供了回答,欢迎大家转至社区交流:
    https://answer.uwa4d.com/question/5e4eaca8fd2e373ffa7eac65


    Texture

    Q:关于图片压缩格式选择的问题,看了之前的博客,安卓选择ETC2,苹果选择 PVRTC。现在项目升级到了Unity 2019.2.21f1,多了很多格式,想请教一下,下面几个问题:(Unity版本:2019.2.21f1)
    1. 新版本Unity 2019,Format中安卓和苹果格式该如何选择?
    2. 安卓现在可以使用ASTC格式了吗,市场份额是多少?
    3. Resize Algorithm,Override ETC2 fallback,分别代表意思以及如何选择?
    4. HDR ,6X6,10X10,如何选择好?

    麻烦科普下,不胜感激,谢谢!

    A1:个人觉得:
    问题1,iOS选ASTC,Android选ETC2比较好;
    问题3&4,可以看看Texture的官方文档,看完这个基本上你就能够明白了,然后根据项目需求,相信能够有个较为好的选择。
    感谢fubbi1000@UWA问答社区提供了回答

    A2:现在tx新上线的项目已经开始普及ASTC的使用了,所以全面选择ASTC,2019可以默认import的时候选择ASTC,尤其是对光照贴图和法线有很好的效果。Unity现在默认是6x6,也可以根据项目选择其它大小。

    感谢郑骁@UWA问答社区提供了回答,欢迎大家转至社区交流:
    https://answer.uwa4d.com/question/5e4d17b886a3954891983920


    AssetBundle

    Q:在Android Gradle项目中,build.gradle有如下配置:

    aaptOptions
    {
    noCompress ‘.unity3d’, ‘.ress’, ‘.resource’, ‘.obb’
    }
    
    

    现测试如果不将AssetBundle配置到非压缩的情况下,包体会缩减一些,大概和对AssetBundle进行LZMA压缩的效果差不多。如果是用这种方式对压缩包进行二次压缩,解压流程是怎么样的?对运行时性能有什么影响吗?

    现在根据我个人的经验猜测,Android APK包是安装时解压。也就是说,安装完成后,无论是否二次压缩,在硬盘里面都是一个样子。还望有相关经验的朋友讲解一下。

    A:Android的APK包再安装后是不解压的,所以理论上运行时获取里面“二次压缩”的Bundle还需要一个解压步骤。也确实有开发者反馈过,如果改成了“二次压缩”,AssetBundle的加载以及从AssetBundle中加载资源的耗时都会明显变大。

    所以,修改前建议用自身项目的AssetBundle资源做一下测试,看这两部分的耗时差异是否明显。

    该回答由UWA提供,欢迎大家转至社区交流:
    https://answer.uwa4d.com/question/5e3cf6c3fd2e373ffa7eabd2


    Memory

    Q:请教一下,Android内存中Unknown这部分一般都是什么?反复进出一个场景,Unity的资源正常释放,没有泄漏,但是这个Unknown一直在增长。

    A:这块是通过mmap分配的匿名内存,用了LuaJIT,Lua内存是在这里的;常规Lua的内存是通过malloc分配的,会出现在Native Heap;另外一个大头就是Mono内存了,Boehm GC在安卓上也是通过mmap分配的;再就是第三方so库的内存分配。

    感谢littlesome@UWA问答社区提供了回答,欢迎大家转至社区交流:
    https://answer.uwa4d.com/question/5e259954fd2e373ffa7eab72

    封面图来源:Shaders
    Unity中编码着色器。


    今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

    官网:www.uwa4d.com
    官方技术博客:blog.uwa4d.com
    官方问答社区:answer.uwa4d.com
    UWA学堂:edu.uwa4d.com
    官方技术QQ群:793972859(原群已满员)

    相关文章

      网友评论

          本文标题:GPU Skinning不生效问题

          本文链接:https://www.haomeiwen.com/subject/ahsclhtx.html