WebGLフレームワーク:Three.jsとBabylon.jsICHI.PROWebGLフレームワーク:Three.jsとBabylon.js最高のWebGLフレームワークをめぐる戦い:私が語った物語CineShader.com、threejs.orgで紹介されているウェブサイトおそらく、あなたは上で調査しましたたるみやGithubに、あなたは賛否両論の長いリストを経ていますが、あなたはまだあなたのために働くだろうか確実に伝えることができません。次に、1つだけ選択します。多くの場合、それはおそらくそれほど重要ではありません。1949)それが私がしたことでした。私は、鳥の渡りの経路での視覚化プロジェクトの締め切り前に、新しい開発ツールを手に入れることに勇気を持っていました。選び方あなたが同意するかもしれないならば、これは完全な情報に基づく決定ではありません。決定理論の非常に簡単な背景。チェスは完全情報ゲームです。テキサスホールデムは、情報が隠されているため、他のプレイヤーに公開されていないカードではありません。状況が複雑な場合は、収集した不完全な情報に基づいて、自分にとって最も重要なことを決定する必要があります。これは、あなたが下した決定が実際には最善ではない可能性があることを意味します。あなたが知っているほど、あなたの決定はより良いかもしれません。第一印象ウェブサイトは私にとって第一印象だと考えられています。threejs.orgのランディングページはきれいで、いくつかの非常に印象的なプロジェクトを紹介しています。babylonjs.comのサイトはミニマリストであり、リアルタイムレンダリングの最高の機能を示していますが、すぐには魅力的ではありません。ドキュメンテーションプロジェクトに真剣に取り組んでいる場合は、ソフトウェアツールのドキュメントに注意を払う必要があります。実際、探しているものを見つけた後、three.jsとbabylon.jsの両方に非常に優れたドキュメントがあります。Three.jsは、他のソフトウェアと同じように、期待どおりの方法でドキュメントを整理します。babylon.jsにはいくつかの革新的なアイデアがあります。ドキュメントの例としてPlaygroundが深く絡み合っている場合はそうですが、ナビゲートするのは簡単ではありません。CatmullRomを使用したい場合は、試してみてください。three.jsでそれを見つけるのがどれほど簡単か、babylon.jsのドキュメントシステムがどれほど混乱するかを比較できます。入門Babylon.jsには、three.jsが提供していないPlaygroundがあります。プログラムで何ができるかをすぐに確認できますが、Playgroundを独自のアプリケーションに変換する方法がすぐにはわかりません。開発者の目標は、独自に構築することです。Babylon.jsは、学習するための複数の方法を提供しているようですが、非線形の方法です。次に何を読むかを常に選択する必要がありますが、新しい人が何を学ぶべきかさえ知るのは簡単ではありません。Three.jsは、通常の学習手順を提供します。妥当なプログラミングのバックグラウンドを持っている人にとっては、簡単にフォローできるようです。第1章:Three.js上記のすべての理由から、私はthree.jsを選択しました。締め切りがあったので、直接プロジェクトに取り掛かりました。プロジェクトについて簡単に説明してから、three.jsの説明に戻ります。衛星トラッカーのデータから、鳥の飛行経路を示すインタラクティブな3Dマップを作成したかったのです。地形の3Dモデルは非常に重いので、風景の定型化されたプレゼンテーションとして等高線を使用したいと思います。Zhai)three.jsで作業しているときに、次のことが理想的とは言えないことがわかりました。それはセットアップの多くのステップを必要とします。最適にカスタマイズされた設定を取得するには、新しいプロジェクトでこれらの手順を実行する必要があるようです。それが人々がこれらのステップを何度も繰り返している理由です。非常に便利なチュートリアルの1つは、赤いホッチキスによるものです。彼の一連のthree.jsでは、毎回新しいセットアップが使用されます。それは不必要な根本的な技術的複雑さを明らかにします。WebGLはthree.jsの基盤となるサポートですが、開発者が余分な作業を行ったり、OpenGLのレンダリングループの詳細を理解したりする必要はありません。クラスを設計してクリーンなコードを書くのは少し難しいです。これについて(完全に)three.jsのせいにするべきではありませんが、three.jsの構造と関係があると思います。);JavaScriptを回避する方法がないので、JavaScriptについて文句を言うのをやめるべきだと私は知っています。私のお気に入りのプログラミング言語は実際にはPythonです。Pythonで物事を行う方法を知っていると、JavaScriptに夢中になるのは本当に難しいでしょう。言っても、three.jsでの作業は可能で、鳥の飛翔経路の3Dイラストを作成することはできましたが、思ったよりも進行が遅かったです。重要なのは、私がその経験を楽しんでいないということです、それは厄介に感じました。第2章:Babylon.js私は、babylon.jsの設計哲学を理解しようとして、もう一度見てみることにしました。Projectであることは、オープンソースコミュニティにとって好ましいイメージではありません。Microsoftでさえ、長年にわたってずっと友好的になっています。Babylon.jsの創設者であるDavidCatuheが語った面白いサイドストーリーは、MicrosoftがBabylon.jsが趣味のプロジェクトとして自社の人々によって開発されたことを知らなかったということでした。Babylon.jsはTypeScriptで書かれています。2014年に書かれたこのブログを読んで、Babylon.jsがTypeScriptを採用する決定を説明しました。デザイン哲学これは私がしていることの1つです。オープンソースライブラリを使用する前に、誰がツールを作成したかを調べます。プロジェクトの背後にいる人を知ることはあなたに自信を与えるかもしれません、そして時々あなたの考えを変えて何か他のものを探すかもし​​れません。以前、リカルド・カベッロからのこのプレゼンテーションを見ましたが、とても印象的でした。これがその発明者によるthree.jsの話です。Rousseauの助けを借りて、DavidCatuheとDaveRoussetによって発明されました。maのビュル、彼は(私は以下の英訳を持っている)フランス語で書きました:私たちは皆同じ惑星に住んでいると信じがちですが、実際には同じ場所でホストされているバブルの中に住んでいるような気がします。これらの気泡は、互いに絡み合ったり、閉じ込められたりすることがあり、幸運にも不幸にも、他の気泡から完全に隔離されることがあります。すれば、まるで私たちが平行宇宙に住んでいるかのようです。私たちは、彼らとの相互作用に入ることなく、少しぼやけて、遠くのいくつかを垣間見ることができました。このブログは、Covid-19パンデミックの前の2019年4月5日付けでした。それは彼の個人的な話であり、技術的なことではありませんでしたが、私は深く感動しました。TypeScriptBabylon.jsがTypeScriptでコードベースを書き直すことを決定した瞬間がありました。JavaScriptを使用してBabylon.jsを開発することはできますが、Babylon.jsがいつそのような動きをしたかを知る価値があります。TypeScriptはAndersHejlsbergによって発明されました。longのビット数を覚えていますか)が、TypeScriptの方が実際にははるかに優れています。これは強く型付けされたプログラミングであり、正しく実行されます。責任のあるJavaScriptプログラマーはJavaScriptについて聞いたことがあるでしょう:ダグラス・クロックフォードによる良い部分、この本は古典的な読み物です。JavaScriptには、美しく、エレガントで、表現力豊かな言語があり、善意と失敗の山に埋もれています。TypeScriptはJavaScriptのスーパーセットであり、優れた部分に基づいて構築されています。JavaScriptは、適切に処理されないと非常に混乱する可能性があります。改善されたとしても、プログラミングの際には言語自体に注意を払う必要があります。良い冗談でもない...JavaScriptをお気に入りとして投票する人の数がわかりません。私の疑いは、JavaScriptが選択であるが、他の選択の結果ではないということです。現在、TypeScriptは代替手段を提供します。やってみませんか?良いニュースは、あなたがそれを学ぶことについて心配する必要がないということです。TypeScriptとBabylon.jsを一緒に学ぶことができます。これは申し出でなければなりません拒否することはできません。TypeScriptについて少し理解しておくと、簡単な紹介になります。JavaScriptに耐えてきたのであれば、これは比較になりません。次に、TypeScriptでBabylon.jsを開発するための環境をセットアップできます。せっかちな人のためのBabylon.jsTypeScriptプロジェクトのセットアップその後、遊び場でいくつかの例を試してみてください。Babylon.jsは、遊び場ですべての例のJavaScriptバージョンとTypeScriptバージョンを並べて提供しています。シーングラフ人々はすでにカメラ、照明、素材の概念を理解しているので、コンピュータグラフィックスが映画スタジオから用語を借りるのは自然なことのようです。3Dシーンは非常に複雑になる可能性があります。これは、アニメーションソフトウェアのインターフェイスを一瞥することでわかります。マヤとレンダーマン通常レンダリングと呼ばれる最終的な画像を生成するための処理。3Dシーンは、シーングラフによって記述されます。シーンの構築は、プロジェクト作成の主要な部分です。Three.jsと比較すると、Babylon.jsは、シーンの作成を支援するためにいくつかの追加の手順を実行します。最初にThree.jsを見てください。Three.jsは、プログラミングに必要なすべての手段を提供しますが、それだけでした。WebGLの知識を持っている人なら誰でも、親しみやすさを期待できます。数値を調整するために3Dをプログラミングするワークフローは遅くなる可能性があります。シーングラフBabylong.jsは本当にあなたにもっと助けを与えようとしました。それはあなたがBabylon.jsで働くためのツールのセットとより多くの方法を提供します。すべての善意で、Babylon.jsから始めた人にとってはかなり混乱する可能性があります。遊び場は、ライブコーディングを行うことができる場所です。バージョン管理システムが組み込まれており、これまでに作成されたすべてのものを保持しているようです。遊び場を保存するときにいくつかのタグを追加することを忘れないでください。しないと、タグが見つからない場合があります。サンドボックスは、MayaやBlenderなどのソフトウェアからモデルをロードする必要がある場合に3Dモデルを調べることができる場所です。Editor)は、Babylon.jsがすでに得意な場合に非常に優れています。これは、Mayaのシェーディングネットワークと同様に、シェーダーを開発するためのプロダクション品質のビジュアルプログラミングツールです。エクスポーターは、他のソフトウェアへのエクスポートを許可します。Spector.jsはWebGL検査ツールです。シーングラフ用に最適化された構文three.jsと比較すると、同じタスクで、babylon.jsに必要なコードは少なくなります。これは、three.jsで円柱を作成する方法です。);babylon.jsでは、円柱は上部と下部のサイズが等しい円錐と見なされます。scene);結論すべての比較には結論が必要です。それは本当にあなたが何をしたいかに依存します。一部のプロジェクトでは、WebGLラッパーのみが必要です。そのため、それは本当に重要ではありません。three.jsまたはbabylon.jsを自由に使用してください。Tokyoプロジェクトは、three.jsの例です。モデリングとアニメーションは外部ソフトウェアによって実行されますが、three.jsはそれをロードして表示するだけです。シーンを構築するためにかなりの量のプログラミングを行いたい場合は、three.jsよりもbabylon.jsをお勧めします。TypeScriptでbabylon.jsをプログラミングすることは、babylon.jsで回避する方法を知っていれば楽しいです。当初、babylon.jsはやや異質な感じがします。それはフランス語です。あなたは少し迷子に感じるかもしれませんが、物事はすぐにずっと簡単になっています。three.jsよりもプログラミングの方が速く、数行のコードをよりクリーンな方法で記述できます。フレンチ・イン・アクション、カプレッツ法(1987)エピローグある晴れた日の午後(Covid-19の前後)、誰かが入って来てWebGLについて尋ね始めたとき、私はテーブルのそばに座っていました。私はこの全体の話をしました、そして私は誰かが私を理解したと感じました。(特にあなたが私にプログラマーに起こった場合は、あなたの経験を共有してください。プログラマーに話してもらいたいです。アドレスに変換し、コンピュータが接続できるようにします。プラットフォームの未開発の可能性を活用しながら、革新と成功のスリリングな旅に乗り出しましょう。注目すべき女性起業家であるサプナについての話をさせてください。Bテストに直接進んでください。Bテストは、2つの異なるバージョンのウェブサイトに対するユーザーのエンゲージメントを比較することに焦点を当てたUX調査方法です。今日、AppStoreの多くのアプリは、テーブルビューをスクロールしながらテーブルビューヘッダーのコンテンツをスケーリングするような動作をします。このような動作を実現するための最も簡単なアプローチを紹介します。DOM操作とは何ですか?最初のブログで約束したように、「DOMとは何ですか?」これが「DOM操作」に関するブログです。このブログでは、DOMについて詳しく説明し、DOM操作とは何かとその方法について説明します。Node.jsストリームの動作Node.jsでストリームがどのように機能しているか疑問に思ったことはありませんか?私が持っていた。