新たな挑戦: WebGL

この間、私は Chromium の 8K 高解像度ビデオの再生に苦労していました。以前にいくつかの主要なテクノロジの実装について書きましたが、主な困難はほぼ克服されましたが、それを製品に組み込むと、遅延やフォーマット、サポート、オーディオとビデオの同期のずれなど、多くの実際的な問題を解決する必要があります。過去の関連記事:

ホッと一息ついたところで、新たなトラブルに遭遇、今回の主役はWebGL。

具体的には、オペレーターがビジネスを立ち上げ、その結果がブラウザに次のように表示されます。

c86d97ee7c0ea78e401d9309e4f2209d.png

調査によると、このビジネスのページは WebGL を使用して実装されています。

私にとって、WebGL はまったく新しいものです。名前から見て、この WebGL は OpenGL と多くの関係がありますが、それは本当です。

WebGL は Web ベースの 3D グラフィックス標準で、Web 開発者が JavaScript と OpenGL ES 2.0 を使用して 3D シーンとモデルを作成および表示できるようにします。WebGL では、HTML5 Canvas 要素に JavaScript バインディングを提供することで、ブラウザがシステムのグラフィック カードを直接呼び出して、ハードウェア アクセラレーションによる 3D レンダリングを実現できるようになります。このように、WebGL は Web ページの対話性と視覚効果を向上させるだけでなく、複雑なナビゲーション アプリケーションやデータ視覚化アプリケーション、さらには 3D Web ゲームの開発にも使用できます。

問題は、私も OpenGL に詳しくないことです。

現状は非常に恥ずかしいことで、同じ chromium コードでコンパイルされた Chromium ブラウザまたは Content Shell では問題なく WebGL ページを表示できますが、WebView ベースのブラウザでは問題が発生します。さらに恥ずかしいのは、同じ Chromium コードに基づいてコンパイルされた SystemWebView を他のハードウェア プラットフォームに問題なく配置できることです。

したがって、次の調査には 2 つの方向性があります。

  1. WebView レイヤーとコンテンツ レイヤーは WebGL アクセスにおいて異なりますが、具体的な違いはどこにありますか?

  2. OpenGL ES ドライバーに問題がありますか? ハードウェア プラットフォームが異なると動作が異なるのはなぜですか?

どちらの道も難しく、もともと OpenGL プログラムを書くのは非常に難しいのですが、今度はそれを裏でどのように実装するかを考えなければなりません。特定のハードウェアに深く結びついているハードウェア ドライバーを調査することはさらに困難です。

WebGLといえば比較的馴染みのない人が多いと推測され、実際にはあまり使われていないように思えます。しかし実際には、WebGL は依然として優れたテクノロジーです。

  • WebGL は、クロノス グループによって開発および保守され、複数のブラウザ ベンダーおよびハードウェア ベンダーによってサポートされている、オープンでクロスプラットフォームの無料の標準です。

  • WebGL はプラグインや外部ライブラリをインストールする必要がなく、ブラウザが WebGL をサポートしている限り、任意のデバイスで WebGL アプリケーションを実行できます。

  • WebGL は、HTML、CSS、SVG、DOM、Web オーディオ、WebRTC などの他の Web テクノロジーや API と組み合わせて使用​​して、豊富なマルチメディア機能やネットワーク機能を実現できます。

  • WebGL は既存の OpenGL ES 2.0 または OpenGL ES 3.0 (WebGL 2.0) の知識とリソースを活用でき、開発者は使い慣れたグラフィックス プログラミング言語 (GLSL) とツールを使用できます。

実際には、多くの WebGL アプリケーション シナリオもあります。

  • マップ: WebGL の最もよく知られた例は、Google マップの地形ビューです。地形図や空間配置の形式に関係なく、誰もが 3D 表現の恩恵を受けることができます。ブラウザーでマップを回転、ズーム、パンして、さまざまな角度や詳細を表示できます。ストリートビュー モードに切り替えて仮想現実を味わうこともできます。

  • ゲーム: ゲームは WebGL の最大の応用分野であり、ブラウザでプレイできる優れた WebGL ゲームが数多くあります。たとえば、Unity はゲーム開発で最も人気のあるプラットフォームであり、WebGL ビルド オプションを提供しています。「Tank War」、「House of the Dead」、「Crazy Taxi」など、いくつかの Unity 製ゲームを Web 上でプレイできます。

  • オンライン展示会: WebGL を使用すると、ブラウザーで 3D 仮想展示ホールを作成および閲覧し、アートワーク、衣服、車、建物など、さまざまな種類の作品やコンテンツを表示できます。WebGLの利点は、プラグインやソフトウェアをインストールする必要がなく、WebGLに対応したブラウザさえあれば、オンライン展示会のURLに直接アクセスして、臨場感あふれる体験を楽しめることです。

今回問題が発覚したのはオンラインミュージアムです 問題が発生すると逃げ場がないので真っ直ぐ進むしかありません 次にOpenGLとWebGLの知識を補足する必要があります

フォローアップには利益があり、それを皆さんと共有します。

おすすめ

転載: blog.csdn.net/mogoweb/article/details/131218723