egret-labs/egret3d

3d骨骼蒙皮动画 渲染不出来的问题

Opened this issue · 11 comments

5.3.2的egret游戏引擎,对于骨骼蒙皮动画支持不很好啊,同样的模型在layabox,babylon等引擎,在ios浏览器下都能正常显示,而在egret3d中就无法显示,上次官方技术说骨骼数量限制问题,同样的硬件跟运行环境别人可以,egret3d不行,这下一个版本是修复还是就只能27个以内,如果是这样的引擎,那还我们只能转到别的3d的引擎做游戏了。

akdcl commented

非常感谢你的反馈,这个问题确实是由于 ios 设备的常量寄存器普遍比较低造成的,而 egret3d 目前的发布版还仅支持使用常量寄存器上传骨骼数据,ios 设备通过该值支持的骨骼最大值通常都是 27,pc 设备或安卓设备能支持从一千到几百不等,目前我添加了通过浮点纹理上传骨骼数据的功能,来解决你遇到的问题,通常这也需要硬件设备和浏览器支持浮点纹理才可以使用,你可以尝试使用该功能,还有什么问题也欢迎继续反馈。

laya跟babylon的貌似同样的模型是可以显示的,当前这个引擎也好久没更新升级了。基础的3d都无法保障,没法用啊

akdcl commented

是说这个问题没有被修复吗?我用修复的分支测试你的模型在 ios 上设备是正常的呀?

问题还在的,我把模型发给你把,我当前更新的是你最新的5.3.x的分支,手机还是不显示。。。模型我再发给你看下吧。仍然不显示!
Prefab.zip

akdcl commented

我就是用的你的这个模型测试的,你确定是用的这个分支测试的对吧?
https://github.com/egret-labs/egret3d/tree/refactor/texture/core/bin
https://github.com/egret-labs/egret3d/tree/refactor/texture/editor/bin

我clone的是refactor/texture这个分支,我清理一下缓存,在清理手机。这个3d引擎编译方式您要不发给我一下,我按照官方的步骤在执行一遍,顺便看下音频的bug是否修复了

akdcl commented

理论上只需要直接把我上面发的两个链接中的 .js 和 .d.ts 文件替换掉你项目的文件就行,如果还是有问题可以加我的 qq 20743265

换完之后,代码调整到新的这个分支的接口,清理缓存,可以显示了。先让客户看到一些东西,他们其实比我们还紧张-_-!。辛苦大神修复比较紧急的bug!
我们在提几个5.3.2的几个问题:1、音频加载播放容易假死,奔溃;2、阴影渲染开启的时候系统会很卡;3、多重采用开启与不开启效果变化不大,锯齿感比较明显;4、同样的场景,光照的效果与unity3d或layabox里面显示不太一样,着色器那块等待新版本有所改善。

akdcl commented

1、音频的问题是在 ios 的浏览器出现的吗?这个问题可能跟 3d 无关,音频目前用的是 2d API,我不是很清楚。
2、阴影开启会增加 drawcall 的数量,而且灯光数量越多,增加的越多,尤其是点光源,不要使用过多的光源,只要是前向渲染的引擎都是这个问题。
3、抗锯齿是否生效目前要看浏览器或平台是否支持,目前微信已经对 ios 和安卓支持抗锯齿了,但是浏览器的话似乎 ios 的浏览器一直是不支持抗锯齿的,什么 webgl 引擎都一样的,这个问题后续我们会增加脱离平台的后期渲染抗锯齿的功能,不过这样肯定会对性能有一定的影响。
4、是哪里不一样能提供给我们参考吗,或许只是参数设置不对?比如环境光,雾等

我们再测试一下,现在显示了,一两个模型的时候还算正常,3个模型放到场景里面,整个模型执行动画的时候,抖动的很厉害。我们看一下其他几个游戏引擎里面什么情况,是硬件不支持还是引擎引起的