新型コロナウィルスにより日常の行動が制限されるようになり、自宅に居る機会が多くなった。たまたまインターネットブラウザで3Dを表現できるThree.jsというJavaScriptライブラリに出会った。これまで作成したプログラムを整理しておく。
Three.jsは、ウェブブラウザ上でリアルタイムレンダリング(*1)による3次元コンピュータグラフィックスを描画する、クロスブラウザ対応の軽量なJavaScriptライブラリ(*2)およびAPIである。
HTML5のcanvas要素、Scalable Vector Graphics(*3)、WebGL(*4)との組み合わせが可能である。ソースコードはGitHub(*5)でホストされている。
WebGLというWeb標準技術の登場により、商用のブラウザ拡張機能に頼らずに、HTMLファイル内に埋め込まれたJavaScriptを介して、GPUアクセラレーションによる動的表現を描画することが可能になった。three.jsは、WebGLのAPIを簡略化するためのラッパ(*6)である。(wiki)
*コメント説明
(*1) レンダリング(Rendering)とは、コンピュータプログラムを用い、もととなる数値データを計算し表示を行うこと
(*2) JavaScriptライブラリとは、プログラム言語JavaScriptを使い、汎用的に使える機能を「部品」にして、再利用可能にしたものをいくつかまとめてセットにしたファイル。
(*3) Scalable Vector Graphicsとは、ブラウザー上で画像を表示する際、画像を図形の集合として表現する記述言語
(*4) WebGLとは、ブラウザで3D表示するための標準仕様。スマートフォンを含むすべてのブラウザでWebGLが動作する。WebGLを使ってGPUによって描画が高速化されるため高度なグラフィカル表現が可能になる。
(*5) GitHubとは、世界中の人々が自分の作品(プログラムコードやデザインデータなど)を保存、公開できるようにしたウェブサービスの名称
(*6) ラッパとは、包装紙、カバー、覆うもの、包むもの、などの意味を持つ英単語。ソフトウェア開発で、ある開発環境向けに提供されたプログラムなどを別の環境で利用できるようにするものをラッパという。