码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 手机端出现Z-Fighting现象


    1)手机端出现Z-Fighting现象
    ​2)不使用Scenes In Build的方式加载场景
    3)同时打包Vulkan和OpenGLES会使得Shader内存翻倍吗
    4)MaterialPropertyBlock修改多材质对象的问题


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

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

    Rendering

    Q:我们的游戏,手机端出现Z-Fighting现象,且不稳定出现。大部分的情况是刚进入大厅场景角色没闪烁,进行战斗一场后切出来容易出现闪烁现象。检查了美术的角色模型,的确有近距离面的问题。

    美术提出来的问题是近距离面,尤其不规则面应该拉多远才行,为何在Unity PC端上一直是正常的?

    A1:你可以先调整一下近平面和远平面,不要差值太大。

    感谢1 9 7 3-311135@UWA问答社区提供了回答

    A2:参考以下几点:
    1. 移动端的深度Buffer精度问题,在PC DX下有usesReversedZBuffer,所以精度Buffer比较均匀,移动端GL稍远一点可能会丢精度,解决方案也是楼上说的调整近平面远平面。
    2. 如果模型导入器开了Mesh压缩,可以去掉试试。
    3. 如果是渲染顺序是固定的,可以考虑在Shader中使用Offset做偏移,也可能会好。

    感谢范世青@UWA问答社区提供了回答

    A3:手机上深度精度低,我们一般设置0.1到3000,就减少大部分闪烁,剩下的还闪的就美术做分离度高一些。

    感谢UDX@UWA问答社区提供了回答,欢迎大家转至社区交流:
    MaterialPropertyBlock对SkinnedMesh上多材质球的其中一个修改会影响所有的材质球,请问如何解决? -- UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


    Script

    Q:想要动态使用名称来加载场景。所以不使用在Scenes In Build的方式,在真机上是可以使用AssetBundle来加载指定名称的场景,但是编辑器里也想保持相同的加载方式,是否有不使用Scenes In Build的方式加载场景呢?

    A:用这个接口就行了:
    UnityEditor.SceneManagement.EditorSceneManager.LoadSceneInPlayMode(string path, SceneManagement.LoadSceneParameters parameters);

    感谢corsair@UWA问答社区提供了回答,欢迎大家转至社区交流:
    MaterialPropertyBlock对SkinnedMesh上多材质球的其中一个修改会影响所有的材质球,请问如何解决? -- UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


    AssetBundle

    Q:同时打包Vulkan和OpenGLES会使得Shader内存翻倍吗?

    A:不会。试了一下对于同一个Shader资源,上图设置里只保留一种图形API和两种都有时的区别,和只有一种API时相比,保留两种图形API,会使打包时这个Shader的变体翻倍,从而使包体大小上升。但运行时该Shader的内存却不会因此翻倍。

    感谢Faust@UWA问答社区提供了回答,欢迎大家转至社区交流:
    MaterialPropertyBlock对SkinnedMesh上多材质球的其中一个修改会影响所有的材质球,请问如何解决? -- UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


    Rendering

    Q:MaterialPropertyBlock对SkinnedMesh上多材质球的其中一个修改会影响所有的材质球,请问如何解决?

    A:对于这个情况我在Unity 2018.4、2019.4、2020.3和2021.1这四个较新稳定版本尝试复现,发现2018.4、2019.4和2020.3中都出现了楼主说的情况,直到2021.1版本中才能正常修改。因此推测为Bug,但去Unity的Release Note中搜索了一番,目前没看到相关的修复条目。

    又试了一下MaterialPropertyBlock对一般MeshRenderer的多材质球的情况,在上述这些版本中都是可以只修改一个并只影响该材质球的,说明该Bug只存在于SkinnedMeshRenderer。

    所以如果确实有分别修改SkinnedMeshRenderer的多材质球的需求,在不适宜通过升级Unity版本来解决该问题的前提下,为了优先实现功能的话,目前建议对于SkinnedMeshRenderer改为对材质本身进行操作(类似于material.SetColor),尽管这样确实会产生更多材质实例。

    感谢Faust@UWA问答社区提供了回答,欢迎大家转至社区交流:
    MaterialPropertyBlock对SkinnedMesh上多材质球的其中一个修改会影响所有的材质球,请问如何解决? -- UWA问答 | 游戏开发者互动问答社区 | 侑虎科技

    封面图来源于网络


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

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

     

  • 相关阅读:
    软件工程与计算总结(八)软件设计基础
    HALCON边缘检测
    免费api推荐,各种各样的都有~
    对抗微信如何要把网页都变成快应用
    自然语言处理nlp小姜机器人(闲聊) nlp_xiaojiang-996station GitHub鉴赏官
    长安链GO语言智能合约编写与编译
    hiveSql 跨N天最大连续统计
    【数学建模竞赛】超详细Matlab二维三维图形绘制
    百趣代谢组学资讯:项目文章Nature,揭示低温暴露抑制实体瘤生长机制,‘饿死’癌细胞
    uniapp微信小程序授权获得手机号
  • 原文地址:https://blog.csdn.net/UWA4D/article/details/126263467
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号