Spu*_*ley 19
有这么多不同的3D选项的原因是因为整个事物仍然处于不稳定的状态 - 浏览器中的3D不是完成的标准,而且你列出的选项中唯一适用于所有选项的选项可用的浏览器是Canvas.
特别是IE不太可能给你带来太多的快乐 - 正如你所说,此时甚至还没有为IE10提供3D.话虽如此,SVG在当天晚些时候被添加到了IE9,所以总有希望.但是,微软不太可能只支持已经正式批准为标准的功能.
在您列出的技术中,Canvas是迄今为止最受支持的技术,但Canvas不是3D技术; 它是一个2D画布,如果你想在其中有3D效果,你需要自己编写它们,它们不会是硬件加速的.
我想问题的真正答案取决于该功能对您网站的重要性.如果它只是眼睛糖果,不受支持的浏览器的用户可以没有,那么无论如何使用一些3D CSS.但是如果您需要在所有当前浏览器中使其保持一致,那么使用Canvas进行操作.
我倾向于建议不要在你的情况下使用WebGL,因为这听起来对你正在做的事情来说太过分了.
3D CSS可能是正确的答案,但现在使用Canvas,直到其他浏览器添加对3D CSS的支持.
我知道这是2岁,但我想我会在这里发布这个给未来的读者.
选择什么取决于您的需求.
你需要一个没有动画或简单动画的简单3D形状吗?尝试使用CSS3,这是迄今为止最简单的.对于IE,您可能会获得一个提供支持的库.
你需要一些具有漂亮图形的甜美3D模型,它可以做各种各样的东西吗?转到WebGL,你不能要求在浏览器中为3d提供更多的控制和性能.
你需要3D形状可以做各种各样的东西,但不需要纹理,可以在任何地方工作,不需要太多的性能?去画布.
CSS3只是为了让人眼前一亮.您可以轻松地制作它,以您想要的任何方式设计它并且非常容易维护.一旦你想要做的不只是眼睛糖果,戴上你的手套,因为这将需要一些工作.
使用2d Canvas,您可以制作3d内容.如果你是新手,那将是非常烦人和复杂的(举一个例子;你需要知道矩阵),你几乎可以用2d画布做任何事情你可以用WebGL做但有些事情会更容易在WebGL中(严重的是,如果使用2d Canvas,不要尝试使用纹理,这是一场噩梦).WebGL使用OpenGL,简而言之,它意味着它总是胜过2d Canvas.
但是,WebGL要求用户拥有兼容的视频卡.
我真的要看你想要做什么.简单有多简单?
3D CSS远非可用.它只是刚刚进入firefox.它在firefox和chrome中都有问题.它在OSX上的FF9测试版中不起作用.它在Chrome中也遇到了至少16个问题.请参阅http://greggman.com/downloads/examples/intersecting-elements-3d-css.html并将OSX上的Safari与几乎任何其他浏览器进行比较.
three.js(https://github.com/mrdoob/three.js/)曾经(也许仍然如此)使用canvas提供一些简单的3d.
否则如果你想要任何有趣的东西去WebGL并选择一个库(three.js,SceneJS等等)
你必须做出选择.使用WebGL并放弃IE,使用Flash 11,使用Unity3D,使用Canvas并获得非常有限的3D,或者不做3d.
WebGL已被主要网站使用.CNN现在正在使用WebGL http://www.stinkdigital.com/en/work/ecosphere
每个人可能都听腻了“视情况而定”,但是……视情况而定!
关于使用 Canvas 还是 HTML/CSS3 是否更好,存在一些“战争”,即因为 Canvas 在旧机器/设备上比 DOM 慢。是的,DOM 在某些情况下更快,而 canvas 在大多数现代浏览器/设备上更快。
WebGL - 2D 和 3D 的最佳选择,但由于它在浏览器和设备上的支持不够好,您必须在必要时提供对画布或 DOM 的回退。
Canvas - 与 WebGL 相比不太适合 3D,但更适合兼容性、社区、工具等
DOM - 比大多数人想象的要快,如果使用得当,支持最高,但你不能太花哨的动画/游戏。
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
31867 次 |
| 最近记录: |