コアポイント
- Three.jsとBabylon.jsはどちらも強力なWebGLフレームワークであり、Web開発者にアニメーションロゴや完全にインタラクティブな3Dゲームなどの機能が豊富なWebGL作品を作成するための抽象的な基盤を提供します。
- Three.js(2009年に開始)は、Webベースのレンダラーを使用してGPU強化3Dグラフィックスとアニメーションを作成することを目的としており、ユニバーサルWebアニメーションに最適なツールになります。 Babylon.js(2013年にMicrosoftが発売)は、Webベースのゲーム開発や衝突検出やアンチエイリアスなどの機能に焦点を当てた、よりターゲットを絞ったアプローチを採用しています。
- 両方のフレームは、シーン、レンダラー、カメラ、オブジェクトアニメーションモデルに続き、同様の3Dアニメーションを作成するために使用できます。ただし、Babylon.JSは、エンジンやカスタム照明などの従来のゲームエンジンのニーズに焦点を当てることにより、3.JSと区別しています。
- 3つのbabylon.jsは両方とも高性能を提供しますが、Three.jsは初心者または小規模プロジェクトに適している、その単純さと使いやすさで知られています。より複雑なプロジェクトのために。
今日のWebブラウザは、ティムバーナーズirリーと彼のNexusソフトウェア時代以来、大きな進歩を遂げています。 WebGLのような優れたJavaScript APIのおかげで、最新のブラウザは、サードパーティのプラグインを使用して高度な2Dおよび3Dグラフィックスを完全にレンダリングできます。専用のグラフィックスプロセッサのパワーを活用することにより、WebGLを使用すると、Webページが動的なシェーディングと現実的な物理効果にアクセスできます。ご想像のとおり、このような強力なAPIは通常、欠点を引き起こします。もちろん、WebGLも例外ではなく、その欠点はその複雑さにあります。しかし、心配しないでください。WebGLを使用するときに、それをより簡単に、さらに効率的にするために設計された2つの強力なフレームワークを検討しました。
3Dフレームワークの起源
人気のあるThree.jsと新しいBabylon.jsは、アニメーションのロゴから完全にインタラクティブな3Dゲームに至るまで、Web開発者が機能豊富なWebGL作品を作成するための抽象的な基盤を提供します。 Three.jsは2009年4月に開始され、もともとActionScriptで書かれ、後にJavaScriptに翻訳されました。 WebGLが導入される前に作成されて以来、Three.jsにはモジュラーレンダリングインターフェイスのユニークな利点があり、WebGLに加えてSVGおよびHTML5のキャンバス要素で動作します。 Babylon.JSは、2013年の夏に逃亡者としてリリースされました。 Microsoft、Babylon.JS、Internet Explorer 11によって開発された11は、初めてWebGL APIを正式にサポートしています。レドモンドの研究室での起源にもかかわらず、Babylon.JS(および3.JS)は依然としてオープンソースライセンスを維持しています。
微妙なデザインの違い
3.jsとbabylon.jsはどちらも、webglアニメーションの複雑さを処理するための使いやすいライブラリを提供します。次のシーン、レンダラー、カメラ、およびオブジェクトアニメーションモデルでは、これらのフレームワークはWebGLの使用方法が非常に似ています。 HTMLでそれらを使用することは、対応するJavaScriptファイルをリンクするのと同じくらい簡単です。注:Babylon.jsにはいくつかの依存関係があり、オープンソースHand.jsも含める必要があります。
3.js:
<🎜>
babylon.js:
<🎜> <🎜>
これら2つのフレームワークの主な違いは、その目的の使用です。両方のフレームワークを使用して同じ3Dアニメーションを作成できますが、各フレームワークの作成目標を理解することが重要です。 Three.jsには、Webベースのレンダラーを使用してGPU強化3Dグラフィックとアニメーションを作成するという目標が1つしかありません。したがって、このフレームワークは、単一のアニメーションフィールドに焦点を当てることなく、Webグラフィックスに対する非常に広範なアプローチを採用しています。この柔軟なデザインにより、Three.jsは、ロゴやモデリングアプリケーションなどのユニバーサルWebアニメーションに理想的なツールになります。 Three.JSはWebGLに幅広いアニメーション機能を提供しようとしますが、Babylon.JSはよりターゲットを絞ったアプローチを取ります。もともとSilverlightゲームエンジンとして設計されたBabylon.JSは、依然としてWebベースのゲーム開発と衝突検出やアンチエイリアスなどの機能を好みます。前述のように、Babylon.jsは依然として一般的なWebグラフィックとアニメーションが完全に能力があります。
webglテクノロジーの並んでデモンストレーション
これら2つのフレームワークの類似性と相違点をさらに実証するために、高速3Dアニメーションを構築しましょう。選択したアイテムは、非常にシンプルなキューブで、ゆっくりと回転します。これら2つのサンプルプロジェクトを作成するとき、これらの2つのテクノロジーが徐々に分岐し、独自の強みを実証する方法を理解し始める必要があります。始めましょう。ほぼすべてのタイプの創造的なプロジェクトを構築する最初のステップは、3Dアニメーションを含む空白のキャンバスを含むことです。
3.js:
<div style="height:250px; width: 250px;" id="three"></div>
var div = document.getElementById('three');
babylon.js:
<div style="height:250px; width: 250px;" id="babylon"> <canvas id="babylonCanvas"></canvas> </div>
var canvas = document.getElementById('babylonCanvas');
3つのjsでは、アニメーションコンテナとして空のdivを作成する必要があります。一方、Babylon.jsは、明確に定義されたHTML5キャンバスを使用して3Dグラフィックを保存します。次に、レンダラーをロードします。レンダラーは、シーンの準備とキャンバスに描画する責任があります。
3.js:
var renderer = new THREE.WebGLRenderer(); renderer.setSize(width, height); div.appendChild(renderer.domElement);
babylon.js:
var engine = new BABYLON.Engine(canvas, true);
ここではあまりにも派手なものはありません。レンダラー(Babylon.jsの場合のエンジン)を初期化し、キャンバスに取り付けます。私たちの次のステップは、カメラとキューブを収容するためのシーンをセットアップするため、もう少し複雑になりました。
3.js:
var sceneT = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(70, width / height, 1, 1000); camera.position.z = 400;
babylon.js:
var sceneB = new BABYLON.Scene(engine); var camera = new BABYLON.ArcRotateCamera ("camera", 1, 0.8, 10, new BABYLON.Vector3(0, 0, 0), sceneB); sceneB.activeCamera.attachControl(canvas); var light = new BABYLON.DirectionalLight ("light", new BABYLON.Vector3(0, -1, 0), sceneB); light.diffuse = new BABYLON.Color3(1, 0, 0); light.specular = new BABYLON.Color3(1, 1, 1);
ここでは、ほぼ同じ方法でシーンを作成し、カメラを実装します(両方のフレームはさまざまな種類のカメラをサポートします)。そこから実際に作成されたシーンを表示します。カメラに渡されたパラメーターは、視野、アスペクト比、深さなど、カメラの視聴角のさまざまな詳細を決定します。また、Babylon.jsの方向アライトを含め、後で暗いアニメーションを見るのを避けるために、私たちのシーンに添付しました。
キャンバス、シーン、カメラを使用すると、レンダリングとアニメーションの前にキューブ自体を描くだけです。
3.js:
var cube = new THREE.CubeGeometry(100, 100, 100); var texture = THREE.ImageUtils.loadTexture('texture.gif'); texture.anisotropy = renderer.getMaxAnisotropy(); var material = new THREE.MeshBasicMaterial({ map: texture }); var mesh = new THREE.Mesh(cube, material); sceneT.add(mesh);
babylon.js:
<🎜>
最初に、指定されたサイズのキューブオブジェクトを作成し、次にキューブに描画される材料/メッシュ(テクスチャを考えてください)を作成します。任意の画像ファイルはテクスチャとして使用でき、どちらのフレームワークもBlenderなどの3Dモデリングツールからのメッシュエクスポートをサポートしています。最後のステップでは、わずかな回転をアニメーション化してから、シーンをレンダリングします。
3.js:
<🎜> <🎜>
babylon.js:
<div style="height:250px; width: 250px;" id="three"></div>
Three.jsとbabylon.jsはどちらもアニメーションまたはレンダリングループを使用してキャンバスを更新し、新しい回転グラフィックを描画します。また、3つのjsがBabylon.jsとはわずかに異なることに気付くでしょう。これは、レンダリング時にカメラを取り付けます。私たちの最終製品は、空気中を優しく回転する2つの立方体です。とてもシンプルですよね?
2つのフレームのストーリー
それだけです。 2つの非常に強力なWebGLフレームワークは同じ基盤で構築されていますが、強化されたWebグラフィックのさまざまな側面に焦点を当てています。次のシーン、レンダラー、カメラ、オブジェクトパラダイムの両方で、彼らのアプローチがアニメーションでどれほど似ているかを直接見ました。類似点にもかかわらず、Babylon.JSは、エンジンやカスタム照明などの従来のゲームエンジンのニーズに焦点を当てることにより、巧妙に区別しています。最終的に、これら2つの比較的若いフレームワークにより、Web開発者はWebGLが提供する強力な3D機会を簡単に利用できます。したがって、3D Web開発に興味のある人なら誰でも、この最先端の技術を慎重に研究する必要があります。
(これには、デモコードをダウンロードするためのzipファイルリンクが含まれている必要があります)
(Three.jsとBabylon.jsの比較に関するよくある質問をここに含める必要があります)スペースの制限のため、FAQセクション全体をここに追加することはできません。 ただし、提供された元のテキストのFAQセクションに基づいて、より簡潔で明確なバージョンに再編成して磨くことができます。
以上がThree.jsおよびBabylon.js:WebGLフレームワークの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。
