-
Notifications
You must be signed in to change notification settings - Fork 304
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
用 webgl 实现弹幕可以不? #56
Comments
感觉理论上是可以的,之前曾经考虑过,CCL也预留了支持Canvas的能力。踩到的最大的两个坑是:
基于Canvas的弹幕引擎尝试性实现好像在Github上有好多(虽然,目前看排布算法大部分普遍都比较坑),个人见过这个https://github.com/iTisso/DanmuPlayer 完成度还是很高的(虽然有整个一个库去搞Canvas操作)。CCL理论上也可以支持Canvas(需要写一个新的弹幕类,extend CoreComment)。 参考:目前B站的HTML5弹幕回退是基于HTML+CSS3的,A站的播放器(如果没换的话)用得就是CCL。。。 |
@jabbany 赞分析! 那 webgl 的唯一优点是比较快? |
WebGL主要是搞3D的,所以大概优势在于高级弹幕支持?Canvas的优势在于浪费的overhead比较低,毕竟在直接画位图。当然、现当今DOM也是硬件加速的,所以目前CCL最大的性能问题就是 DOM元素的添加和去除(会改DOM树所以是个Blocking操作),其次的性能问题是因为懒没好好写定时器(这个在 dev-cssonly分支通过不再用定时器直接用CSS3动画一部分被解决了)。 |
我记得最耗时间的函数还是获取宽度和高度啊~ On Thu, May 12, 2016, 6:33 PM Jim Chen [email protected] wrote:
|
@Catofes 好吧,准确说其实是因为DOM宽度高度计算是lazy的(插入后只有读才会导致去计算),但是意思差不多。就是有绕不过去的基于DOM的blocking操作。 |
换行其实不需要处理吧,弹幕都是单行的; |
怎么说呢。。。这样做能解决一些情况,但是不是一个靠谱的解决方案。。。有点像是hardcode了字体的高度想对位点高度的比例值。 之前的讨论参考 #26 和 jabbany/ABPlayerHTML5#3 (这个很长) |
嗯……项目需求不同,问题的解决难度也不同……毕竟我压根不需要支持各种高级弹幕 |
弹幕的坑深得不得了23333。。。 |
关于第一点现在以 第二点和第三点……想办法ing。我现在的方案是canvas绘制文字后作为纹理绘制到上下文,因而有这两个问题。 唉,此issue出现各种高中大神…… |
会有什么坑?
The text was updated successfully, but these errors were encountered: