跳到内容

幸福的佛和AltairHyperview®:百万三角网格

如果一个人可以玩巨大的在线3D模型会怎么样?如果您想在线查看分析的动态结果怎么办?如果你只需要理解组件的机制分析,而不需要安装任何东西,这不是很好吗?如果有一个解决方案允许您查看H3D模型(或任何模型),甚至在您的移动设备中,而无需安装任何新的插件或应用程序,也无需考虑计算能力,会怎么样呢?这是一个未来的愿景,还是即将成为现实?

根据摩尔定律,技术设备不断增强的计算能力开辟了一条与复杂、庞大的3D数据集轻松交互的令人兴奋的途径。从2014年开始,可以在web浏览器上执行HyperView®Player。有一个插件,这是一个独立的实用程序,让用户可视化3D CAE数据。主要的即兴创作是,您甚至不需要插件来实现这一壮举。WebGL API允许使用GPU加速渲染交互式3D和2D图形。这有助于与CAE组件的无缝交互,因为在其核心处,它将作为本机图形应用程序运行。WebGL支持大多数现代浏览器,包括Internet Explorer,Mozilla Firefox,Google Chrome,Safari,移动浏览器等。您可以使用一些已经建立的框架获得WebGL的动手体验Three.jsOSGJS巴比伦.JS.等。可以找到一个现有的不同WebGL框架的列表在这里

还有其他技术用于实现互动在线3D内容。然而,最后,经过深刻的审查,它归结为WebGL。以下是各种技术在Web浏览器中目前流行的图形演示文稿:

替代技术 评论
JOGL (Java OpenGL)
  • 没有在手机上运行
  • Java Applet安全问题
谷歌NACL.
  • 在浏览器上运行本机C / C ++
  • 只为Chrome.
帆布2 d
  • 比webgl慢得多
NPAPI插件
  • 插件安全问题,将来被阻止
  • 强制安装
Silverlight 3 d
  • 需要安装插件
  • 没有在手机上运行
  • 不良记录
Flash 3 d阶段
  • 插入
  • 非标准的API
  • Flash着色语言-汇编编程
  • 性能问题
Emscripten
  • 将本机C/ c++和OpenGL转换为JS和WebGL

比较各种技术后,WebGL是明显的技术突破在3d网络图形的领域。它是一种轻量级,零安装客户端,可以处理2D绘图,3D绘图,动画,文本,纹理和高级渲染。它是一个跨平台,免版税Web标准。启用了Web的流和高性能的逐步加载是该技术的一部分。

作为WebGL的快照,以下是其优点和缺点:

好处 缺点

1.没有安装

WebGL不是一个插件。
它是web浏览器实现本身的一部分(12)
因此用户不需要安装任何东西。

1.没有安装

WebGL不是一个插件。它是
Web浏览器实现本身(12)
因此用户不需要安装任何东西。

2.GPU加速

传递给浏览器的顶点数据是
直接复制到顶点缓冲区。
这消除了浏览器的开销
找出顶点所在的位置。WebGL的
渲染器负责跟踪所有对象的顶点。
GPU处理所有的计算。一旦呈现
数据被上传到WebGL数据结构中,
渲染真的很快。WebGL是硬件加速。(1) (11) (12)

3.角度

WebGL可以在没有OpenGL的情况下运行(使用ANGLE库)(10)

4.自动内存管理

WebGL有自动内存管理。
在OpenGL中,内存是显式分配和反分配的。
在WebGL中,内存管理是自动处理的。(13).在WebGL中,自动内存管理作为JavaScript语言的一部分提供(14).它遵循JavaScript中的范围规则,在不再需要时,内存会自动解除分配(17)

5.WebGL适用于跨平台,是低水平3D图像的免版税web标准(15).该方法可成功地用于实现Web上的硬件加速3D图形(16)

6.WebGL是基于JavaScript的,这使得与其他JavaScript库(例如jQuery和其他HTML5技术)集成了WebGL应用bob电竞官方程序更容易(17)

7.WebGL的性能与同等的独立应用程序相当(有一些例外)。bob电竞官方这是由于WebGL能够访问本地图形硬件(17)

1.角的限制

角度是WEBGL渲染后端使用DirectX9的后端。默认为Chrome和Firefox默认,正如许多显卡都有坏或不存在的OpenGL Drivers.directx9不支持宽线。

OpenGL允许比DirectX9更多功能的显卡,其中之一就是设置更大的线宽。

可以从此处获取WebGL最大参数列表(19)

ALIASED_LINE_WIDTH_RANGE给出了行宽度的限制。如果范围是1-1,那么线宽固定为只有1.0 ALIASED_LINE_WIDTH_RANGE: 1-1(7) (8)

2.WebGL仅限于JavaScript的动态性质(9.

3.WebGL渲染数据必须首先上传到特殊的WebGL数据结构中。这意味着将数据从通用内存复制到特定的WebGL内存(缓冲区对象)。数据上传速度一般较慢。(11)

4.WebGL在当前版本中不支持双重精度。(20)

令人惊讶的是,WebGL可以容纳巨大的数据模型以及一个本地图形客户端应用程序。happybuddha是一个很好的例子,演示了WebGL效率,处理了100万三角形的网格。通过结合紧凑的网格压缩,已经实现了这种高性能水平算法.大网格的性能试用正在广泛地进行WebGL的积极结果。我们可以为所有CAE应用程序实现WebGL API,例如HyperView播放器和Sobob电竞官方lidThinking®。但是,虽然WebGL具有当前电源可以支持百万三角形网格尺寸,但它可能无法使用巨大的CFD模型进行操作。LLVM-to-JavaScript编译器的权力,Emscripten将C / C ++转换为JS,可以在很大程度上使用。这是一个突出的编译器,它将本机代码编译为WebGL,而无法从下面的大量返工。

综上所述,基于WebGL正在进行的研究和出色的性能结果,该技术有潜力主导基于web的3D图形。在一个这是流行语,这项技术可以作为密码吗3 d云


参考文献

  1. https://www.scirra.com/blog/58/html5-2d-gaming-performance-analysis.
  2. http://stackoverflow.com/questions/8462421/difference-between-webgl-and-opengl
  3. http://stackoverflow.com/questions/1480982/how-to-render-primitives-in-wireframe-in-open-gl-es
  4. http://stackoverflow.com/questions/3539205/is-there-a-substitute-for-glpolygonmode-in-open-gl-es-webgl
  5. http://stackoverflow.com/questions/14503600/what-are-webgls-draw-primitives
  6. http://stackoverflow.com/questions/9748340/face-colors-not-unique-when-using-8-indexed-vertices
  7. http://code.google.com/p/angleproject/
  8. https://github.com/mrdoob/three.js/issues/309
  9. http://www.irrlicht3d.org/pivot/entry.php?id=1255
  10. http://codeflow.org/entries/2013/feb/02/why-you-should-use-webgl/
  11. https://hacks.mozilla.org/2013/04/the-concepts-of-webgl/
  12. http://bjartr.blogspot.in/2009/10/webgl-what-is-it-and-how-can-i-use-it_04.html
  13. http://www.khronos.org/webl/wiki/webl_and_opengl.
  14. http://en.wikipedia.org/wiki/WebGL
  15. http://www.khronos.org/webgl/
  16. http://news.cnet.com/8301-30685_3-10416966-264.html
  17. “WebGL初学者指南”(2012),Diego Cantor,Brandon Jones
  18. https://web.eecs.umich.edu/~sugih/courses/eecs487/common/notes/APITables.xml
  19. http://alteredqualia.com/tmp/webgl-maxparams-test/
  20. http://blog.hvidtfeldts.net/index.php/2012/07/double-precision-in-opengl-and-webl/