
这是第418篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。
UWA社区主页:community.uwa4d.com
本期目录:
- OpenGL中Shader LOD失效
- DoTween的GC优化
- 开发微信小程序游戏有没有类似Debug真机图形的方法
- 射线和Mesh三角面碰撞检测的算法
Rendering
Q:我切换为OpenGL之后,发现切换Shader LOD的功能不能用了,切换为Vulkan没问题,但是OpenGL就不行。同样的Shader代码,同样的LOD配置。有什么解决思路吗?
切换为OpenGL之后,Frame Debugger抓帧,都看不到那些本来要绘制的物体,感觉是完全没有找到对应的LOD SubShader。
A:Unity引擎里没有处理好关于CBuffer变量的问题。如果CBuffer中有Shader用不到的变量,并且这个变量没有在Properties中定义,那么就会导致对应的Pass直接不渲染。
修改方法就是,要么直接去掉这些不用的CBuffer中的变量,要么增加对应Properties中的定义。
感谢付炳楠@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/6784ada03d306f3e9d594e0f
Script
Q:为什么DoTween中的APIGetTweener会有GC?因为没有DoTween的源码,不知道有什么替代方案吗?
A1:可以参考以下文章:
Demigiant/dotween: A Unity C# animation engine. HOTween v2
https://github.com/Demigiant/dotween
感谢zerolj@UWA问答社区提供了回答
A2:可以参考以下文章:
AnnulusGames/LitMotion: Lightning-fast and Zero Allocation Tween Library for Unity
https://github.com/AnnulusGames/LitMotion
感谢菜鸟@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/676698093d306f3e9d594dd0
Rendering
Q:开发微信小程序游戏有什么科学的Debug真机图形的方法吗?比如RenderDoc?
A1:推荐Frame Debugger,团结可用。
感谢tmp@UWA问答社区提供了回答
A2: 1. 游戏可以在浏览器跑的话,可以用SpectorJS( https://github.com/BabylonJS/Spector.js/ )。
2. RenderDoc曾经也可以抓Chrome,但后来官方禁了,可能需要自己魔改编译一个RenderDoc。
3. 也可以用MuMu模拟器+RenderDoc抓微信,MuMu需要开启Vulkan模式,RenderDoc开全局Hook,Attach到MuMu的进程上,但是抓到的是Vulkan的API。
感谢littlesome@UWA问答社区提供了回答
A3: RenderDoc可以考虑,但需要旧版本的RenderDoc。
或者配合模拟器截帧,或者Root的手机都可以,或者用浏览器都行,方式很多,个人推荐模拟器+截帧。
感谢司马老师@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/677250003d306f3e9d594de3
Physics
Q:请问有没有射线和Mesh所有三角面碰撞检测的算法?
A:非常古早的DX9官方示例里面就有:
https://www.tutorialspoint.com/directx/directx_picking.htm
感谢Dang@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/6784b469682c7e5cd61bf9f2
封面图来源于网络
今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。
UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com
点击下方名片关注我们,将我设为星标,及时接收小编每日推送哦,性能优化不迷路~
近期精彩回顾
热门跟贴