<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>小山田 晃浩 &#8211; HTML5Experts.jp</title>
	<atom:link href="/yomotsu/feed/" rel="self" type="application/rss+xml" />
	<link>https://html5experts.jp</link>
	<description>日本に、もっとエキスパートを。</description>
	<lastBuildDate>Sat, 07 Jul 2018 03:14:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.19</generator>
	<item>
		<title>初心者でも絶対わかる、WebGLプログラミング＜three.js最初の一歩＞</title>
		<link>/yomotsu/5225/</link>
		<pubDate>Fri, 07 Feb 2014 02:00:07 +0000</pubDate>
		<dc:creator><![CDATA[小山田 晃浩]]></dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[3DCG]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WebGL]]></category>
		<category><![CDATA[three.js]]></category>

		<guid isPermaLink="false">/?p=5225</guid>
		<description><![CDATA[連載： WebGLプログラミング (2)WebGLはとても高度な技術である一方、APIは低レベルであるためそのまま使うにはどうしても冗長な準備を行う必要があります。一方で、JavaScriptライブラリーを通して高レベル...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webgl-news/" class="series-154" title="WebGLプログラミング" data-wpel-link="internal">WebGLプログラミング</a> (2)</div><p>WebGLはとても高度な技術である一方、APIは低レベルであるためそのまま使うにはどうしても冗長な準備を行う必要があります。一方で、JavaScriptライブラリーを通して高レベルなAPIとしてWebGLを利用する方法があります。こうしたJavaScriptライブラリーとしてはthree.js、Away3D.js、Babylon.jsなどが有名です。その中でも特に人気があるthree.jsを通して、WebGLを利用する方法を解説します。(three.jsのリビジョンは執筆現在の最新であるr65を利用します)</p>

<p><span id="more-5225"></span></p>

<h2>three.jsを手に入れる</h2>

<p>three.jsは<a href="http://threejs.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">http://threejs.org/</a>から手に入れることができます。downloadから、zipファイルを手に入れましょう。</p>

<p>ダウンロードしたファイルを展開すると多くのファイルが格納されていますが、必要なライブラリー本体はbuildフォルダ内にthree.min.jsとして配置されています。three.min.jsのみを取り出しましょう。three.min.js以外のファイルは不要です。</p>

<p><img src="/wp-content/uploads/2014/02/1.png" alt="" /></p>

<h2>three.jsにおける抽象化された概念</h2>

<p>まずは、基本的なコードを書きながらthree.jsにおける概念を知りましょう。ここでは皆さんの理解が深まるように図を見ながらコードの解説を進めます。</p>

<h2>コードを書き始める</h2>

<p>HTMLファイルを新規作成し、three.min.jsを読み込みます。合わせて、あなたがコードを書いていく場所も用意しましょう。今回はこれをmainという名前の関数とし、DOM構築完了を待ってから実行します。</p>

<p></p><pre class="crayon-plain-tag">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta charset="utf-8"&gt;
&lt;title&gt;get started with three.js&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;script src="three.min.js"&gt;&lt;/script&gt;
&lt;script&gt;
var main = function () {
  // ここにあなたのコードを書いていきます
};

window.addEventListener( 'DOMContentLoaded', main, false );
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;</pre><p></p>

<h2>シーンを作る</h2>

<p>まずはシーンを作ります。シーンはこれからあなたが作る3Dの世界となります。ただし、この段階ではシーンの内容は空の状態です。</p>

<p></p><pre class="crayon-plain-tag">var main = function () {
  var scene = new THREE.Scene();
};</pre><p></p>

<p><img src="/wp-content/uploads/2014/02/2.png" alt="" /></p>

<h2>カメラを作る</h2>

<p>シーンの状態を撮影するカメラを作ります。カメラに写った内容が最終的にブラウザー上で表示されることになります。</p>

<p></p><pre class="crayon-plain-tag">var main = function () {
  var scene = new THREE.Scene();

  var width  = 600;
  var height = 400;
  var fov    = 60;
  var aspect = width / height;
  var near   = 1;
  var far    = 1000;
  var camera = new THREE.PerspectiveCamera( fov, aspect, near, far );
  camera.position.set( 0, 0, 50 );
};</pre><p></p>

<p>PerspectiveCameraは4つの引数が必要です。これらは、カメラが写す範囲を示しています。</p>

<ul>
<li>fovは画角を示します。</li>
<li>aspectは撮影結果の縦横比を示します。</li>
<li>nearはニアークリップの距離を示します。nearより近い領域は表示されません。</li>
<li>farはファークリップの距離を示します。farより遠い領域は表示されません。</li>
</ul>

<p><img src="/wp-content/uploads/2014/02/3.png" alt="" /></p>

<p>つまり、指定した画角と縦横比によって作られる四角錐の内、nearからfarまでの間が表示されるわけです。</p>

<p>このあと3Dオブジェクトを追加することを考え、カメラの位置を中心から少し手前に引いておきます。カメラインスタンスはpositionという位置を示すプロパティーがあり、positionはx、y、zの3つのプロパティーを持っています。初期ではx、y、zの値は全て0です。この値を変更するにはsetメソッドを利用します。setメソッドの引数はx, y, zの3つを順に渡します。上記のコードではset( 0, 0, 50 )としているので、カメラはzの正方向、つまり手前に50の位置に設置されるわけです。</p>

<p><img src="/wp-content/uploads/2014/02/4.png" alt="" /></p>

<p>※ 古いリビジョンのthree.jsでは、作成したカメラインスタンスをscene内に追加する必要がありましたが、現在はその必要がありません。</p>

<h2>レンダラーをDOM上に設置する</h2>

<p>ここまでで基本状態が用意できました。ただし、この状態ではHTMLと紐づいておらず表示結果を求めることができません。three.jsでは、レンダラーをDOMに設置することでこれを実現します。</p>

<p></p><pre class="crayon-plain-tag">var main = function () {
  //ここまでの内容は省略

  var renderer = new THREE.WebGLRenderer();
  renderer.setSize( width, height );
  document.body.appendChild( renderer.domElement );
};</pre><p></p>

<p>レンダラーのサイズとして渡しているwidthとheightは、先ほどカメラのアスペクトを求める際に利用した値を流用します。これでbody要素内に、横600px縦400pxのレンダラーを展開することができます。</p>

<h2>光源を追加する</h2>

<p>ここまでのコードでは空（から）のシーンとそれを写すカメラを用意できています。ここに光源を追加してみましょう。three.jsでは様々なタイプの光源を利用できますが、今回は平行光源を追加します。</p>

<p>平行光源はインスタンスを作る際に2つの引数を渡します。第一引数は光の色、第二引数はオプションで光の強さを渡します。この例では第一引数に0xffffffを渡し、白色の光としています。</p>

<p></p><pre class="crayon-plain-tag">var main = function () {
  //ここまでの内容は省略

  var directionalLight = new THREE.DirectionalLight( 0xffffff );
  directionalLight.position.set( 0, 0.7, 0.7 );
  scene.add( directionalLight );
};</pre><p></p>

<p>平行光源は光の角度を変えることができます。その場合、positionプロパティーで光源の角度を決定します。directionalLight.position.set( 0, 0.7, 0.7 )であれば上方向と手前方向、つまり斜め上前からの光となるわけです。</p>

<p><img src="/wp-content/uploads/2014/02/5.png" alt="" /></p>

<h2>物体を追加する</h2>

<p>物体を追加してみましょう。今回は箱を設置します。three.jsでは、原始的な図形を作成するためのクラスがいくつか用意されています。もちろん、3Dモデリングツールでつくった3Dモデルを読み込むこともできますが、自作のモデルを読み込む方法はまたの機会に解説します。</p>

<p>three.jsではジオメトリー(形状)とマテリアル(表面素材)を用意した上で、メッシュ(物体)を作成するという手順が必要です。</p>

<p><img src="/wp-content/uploads/2014/02/6.png" alt="" /></p>

<p></p><pre class="crayon-plain-tag">var main = function () {
  //ここまでの内容は省略

  var geometry = new THREE.CubeGeometry( 30, 30, 30 );
  var material = new THREE.MeshPhongMaterial( { color: 0xff0000 } );
  var mesh = new THREE.Mesh( geometry, material );
  scene.add( mesh );
};</pre><p></p>

<p>まずはジオメトリーを作ります。箱型のジオメトリーはCubeGeometryクラスで作成可能です。横幅、高さ、奥行きの順に数値で引数を渡します。</p>

<p>次に、マテリアルを作ります。three.jsでは様々なタイプのマテリアルが用意されていますが、今回はフォンシェーディングで表示できるMeshLambertMaterialを利用します。引数には色やカラーテクスチャ、光沢などをオブジェクトで指定することができます。今回は赤色（0xff0000）のカラーのみを指定します。</p>

<p>そして、ジオメトリーとマテリアルからメッシュを作成し、メッシュをシーンに追加します。</p>

<p><img src="/wp-content/uploads/2014/02/7.png" alt="" /></p>

<h2>表示する</h2>

<p>これで、シーン、カメラ、レンダラーを用意しシーンの中には光源と物体がある状態ができました。これをレンダリング（表示）してみましょう。</p>

<p>レンダラーインスタンスはrenderというメソッドを持っており、ここに任意のシーンとカメラを渡すことで、該当のシーンをレンダリングします。</p>

<p></p><pre class="crayon-plain-tag">var main = function () {
  //ここまでの内容は省略

  renderer.render( scene, camera );
};</pre><p></p>

<p>レンダリング結果は次の通りです。</p>

<p>(invalid jsdo.it code)</p>

<p>これを見ただけでは3Dには感じられないかもしれませんね。しかし、この状態でしっかりと3Dで赤色の箱が<strong>真正面から</strong>静止した状態で表示されています。</p>

<h2>回転アニメーション</h2>

<p>止まった状態で正面からレンダリングしても面白い結果にはなりませんでした。3Dのよさを引き出すために、箱を少しずつ回転させながら、レンダリングを繰り返してみましょう。こうすることでアニメーションで表示されます。</p>

<p>(invalid jsdo.it code)</p>

<p></p><pre class="crayon-plain-tag">var main = function () {
  //ここまでの内容は省略

  ( function renderLoop () {
    requestAnimationFrame( renderLoop );
    mesh.rotation.set(
      0,
      mesh.rotation.y + 0.01,
      mesh.rotation.z + 0.01
    )
    renderer.render( scene, camera );
  } )();
};</pre><p></p>

<p>名前付きの即時実行関数を用意し、requestAnimationFrameで自分自身を呼び出し続けることで、レンダリングを繰り返すことができます。</p>

<p>関数内部ではmesh、つまり箱のrotationプロパティーの値を少しずつ変え、直後にレンダリングを行います。これにより箱が回転するアニメーションとなるわけです。rotationプロパティーはpositionプロパティーと同様にsetメソッドで内容を変更することができます。</p>

<h2>まとめ</h2>

<p>最後にコード全文を示します。</p>

<p></p><pre class="crayon-plain-tag">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta charset="utf-8"&gt;
&lt;title&gt;get started with three.js&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;script src="three.min.js"&gt;&lt;/script&gt;
&lt;script&gt;
var main = function () {
  var scene = new THREE.Scene();

  var width  = 600;
  var height = 400;
  var fov    = 60;
  var aspect = width / height;
  var near   = 1;
  var far    = 1000;
  var camera = new THREE.PerspectiveCamera( fov, aspect, near, far );
  camera.position.set( 0, 0, 50 );

  var renderer = new THREE.WebGLRenderer();
  renderer.setSize( width, height );
  document.body.appendChild( renderer.domElement );

  var directionalLight = new THREE.DirectionalLight( 0xffffff );
  directionalLight.position.set( 0, 0.7, 0.7 );
  scene.add( directionalLight );

  var geometry = new THREE.CubeGeometry( 30, 30, 30 );
  var material = new THREE.MeshPhongMaterial( { color: 0xff0000 } );
  var mesh = new THREE.Mesh( geometry, material );
  scene.add( mesh );

  ( function renderLoop () {
    requestAnimationFrame( renderLoop );
    mesh.rotation.set(
      0,
      mesh.rotation.y + .01,
      mesh.rotation.z + .01
    );
    renderer.render( scene, camera );
  } )();
};

window.addEventListener( 'DOMContentLoaded', main, false );
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;</pre><p></p>

<p>three.jsでは、今回解説した流れが最も基本であり、お決まりです。この抽象化された概念とシーン構築から表示までの流れを覚えておきましょう。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WebGLプログラミング]]></series:name>
	</item>
		<item>
		<title>初心者でも絶対わかる、WebGLプログラミング＜基礎知識編＞</title>
		<link>/yomotsu/2897/</link>
		<pubDate>Tue, 15 Oct 2013 22:00:12 +0000</pubDate>
		<dc:creator><![CDATA[小山田 晃浩]]></dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[3DCG]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WebGL]]></category>
		<category><![CDATA[three.js]]></category>

		<guid isPermaLink="false">/?p=2897</guid>
		<description><![CDATA[連載： WebGLプログラミング (1)HTML5に関連する技術のひとつに、WebGLがあります。WebGLは、ブラウザー上で3DCGプログラミングを実現できる技術です。今回のレポートでは、WebGLプログラミングの基礎...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webgl-news/" class="series-154" title="WebGLプログラミング" data-wpel-link="internal">WebGLプログラミング</a> (1)</div><p>HTML5に関連する技術のひとつに、WebGLがあります。WebGLは、ブラウザー上で3DCGプログラミングを実現できる技術です。今回のレポートでは、WebGLプログラミングの基礎知識についてご紹介します。</p>

<p><span id="more-2897"></span></p>

<h2>WebGLって？</h2>

<p>WebGLでどんなことができるのか──百聞は一見にしかず。まずは例を見てみましょう。demo内のスライダー部分をドラッグすることでカメラの位置などを任意に変更できますので、リアルタイムでレンダリングされていることがわかるでしょう。</p>

<p>(invalid jsdo.it code)</p>

<p>このように、ブラウザー上で<strong>プラグインに頼ることなく</strong>、なめらかな表面、自然な影、高FPSでのリアルタイムレンダリング（アニメーション）など、まるで最近の家庭用ゲーム機にも匹敵する高度な3DCG表現ができるわけです。</p>

<p>WebGLは2013年10月現在、Chrome、Firefox、Operaで標準対応されており、加えてIE11でも対応される予定です。また、Safariも現状では設定が必要なものの、WebGLを利用する準備は整っており、WebGLは多くの環境で利用できるようになりつつあります。</p>

<p><img src="/wp-content/uploads/2013/09/1.jpg" alt="when can i useのキャプチャ" />
<a href="http://caniuse.com/webgl" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Can I use WebGL?</a>より</p>

<p>WebGLの仕様自体は、クロノスグループから<a href="http://www.khronos.org/registry/webgl/specs/latest/1.0/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebGL 1.0</a>が2011年3月に正式リリース（W3Cでいう勧告）されています。従って今後APIが変更されることはなく、またWebGLのAPIはブラウザ上で「<code>WebKit</code>」や「<code>Moz</code>」といったような接頭辞なしで利用することができます。さらに2013年9月には<a href="http://www.khronos.org/registry/webgl/specs/latest/1.0/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebGL 2.0</a>の仕様策定が開始されています。</p>

<p><img src="/wp-content/uploads/2013/09/2.png" alt="WebGL 1.0" /></p>

<hr />

<h3>【コラム】WindowsなのにOpenGL系?</h3>

<p>WebGLはその名前の通り、OpenGL由来のAPIです。一方で、Windowsの一般的なグラフィックAPIはOpenGLではなく、DirectXです。しかし安心してください。Windows上でのWebGLは、最終的にDirectXに自動翻訳されて実現しています。つまり、WindowsでもMacでもAndroidでも、WebGLはプラットフォームの垣根を気にせず利用できる、共通のグラフィックAPIというわけです。</p>

<p>例えば、以下はWindows IE11におけるWebGLの仕組みです。なお、Windows用のChromeやFirefoxでも、ブラウザー内部に組み込まれた<a href="https://code.google.com/p/angleproject/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ANGLE</a>というライブラリにより、IE11と似た仕組みでWindows上のWebGLを実現しています。</p>

<p><img src="/wp-content/uploads/2013/09/3.png" alt="" />
<a href="http://channel9.msdn.com/Events/Build/2013/4-072" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Hyper-Fast Web Graphics with WebGL</a>より</p>

<hr />

<h2>WebGLプログラミングで実現できること</h2>

<p>WebGLはJavaScriptから利用するAPIです。Web開発者はJavaScriptを書くことで、閲覧者のOSに関係なくブラウザーを通してデバイスのGPU（CPUと対となる、描画処理を専門に行うためのハードウェア）にアクセスすることができます。これによりWebGLは高度な3DCG表現を実現できるわけです。</p>

<p><img src="/wp-content/uploads/2013/09/4.jpg" alt="" />
筆者のPC内に搭載されているGPU、Geforce GTX 760。ノートPCなどではGPUがCPUに内蔵されている場合も多い。</p>

<p>さて、WebGLはGPUにアクセスできるという点に少し注目してみましょう。非Web技術の話になりますが、PCで動作する3Dのオンラインゲームなどは、ネイティブのグラフィックAPIを通して、GPUでその描画を行っています。一方で、ブラウザー上で動くWebGLも同様にGPUでその描画を行います。つまりデバイスのGPUの性能にも依存しますが、WebGLは近年のPC用3Dオンラインゲームと同じレベルの描画ができるということになります。</p>

<p>例えば以下は2013年5月に公開された<a href="http://www.unrealengine.com/html5/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Epic Citadel HTML5</a>というデモで、WebGLで動いています。(
「Firefoxに最適化されている」と表示されますが、Chromeでも問題なく動作します)</p>

<p><img src="/wp-content/uploads/2013/09/5.jpg" alt="PCgameのキャプチャ" /></p>

<p>もし今あなたがモバイル端末などでこの記事を読んでいてWebGLを再生できない場合は、以下の動画を見てみるといいでしょう。</p>


<!-- iframe plugin v.4.3 wordpress.org/plugins/iframe/ -->
<iframe width="560" height="315" src="//www.youtube.com/embed/XsyogXtyU9o" frameborder="0" 0="allowfullscreen" scrolling="yes" class="iframe-class"></iframe>


<p>また、WebGLの実態はJavaScriptと先に少し触れましたが、これはWebGLが他のWeb標準技術との相性がいいということを意味します。XHRでデータを取得したり、HTMLで用意したボタンやinput要素で3Dモデルを操作したり、JavaScriptのイベントを利用したり、といった応用が可能なのです。これにより、ただ表示するだけではなく、さまざまなWebアプリケーションへの応用も期待できます。</p>

<p>例えば、地図に利用したり、教育目的に利用したり、あるいはWebの技術でゲームを作ったりすることも可能です。</p>

<p><img src="/wp-content/uploads/2013/09/6.jpg" alt="" />
現在プレビュー版として提供中の<a href="http://www.google.com/maps/about/explore/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">新しいGoogleマップ</a>でもWebGLが使われている。東京都庁周辺の様子を見ると、高層ビル群が立体的に表示されている。</p>

<p><img src="/wp-content/uploads/2013/09/7.jpg" alt="" />
<a href="http://stations.aeracode.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ロンドンの地下鉄マップ</a>。3Dで表現するなら、複雑な立体構造の情報も提供しやすい</p>

<p><img src="/wp-content/uploads/2013/09/8.jpg" alt="" />
<a href="http://workshop.chromeexperiments.com/stars/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">銀河の観察</a>。WebGLは、教育目的のWebアプリケーションにも応用できるだろう</p>

<h2>WebGLは難しい？</h2>

<p>ここまで「WebGLはJavaScript」と繰り返しましたから、Web制作者にとって、WebGLを利用するための敷居が低く感じるかもしれませんね。しかし実際のところ、WebGLを利用するにはとても冗長な手順を踏む必要があります。さらに加えて、3DCGプログラミング（OpenGLやDirectX）の基礎知識、行列やベクトルといった線形代数学の知識、GLSLという言語の知識など、これまでWeb制作者にとってほとんど馴染みがなく、かつ学習コストの高いさまざまな知識を要します。</p>

<p>WebGLを利用する手順を図にしてみました。これを見るとWebGLの冗長さがわかるでしょう。</p>

<p><img src="/wp-content/uploads/2013/09/9.png" alt="WebGLのフロー" /></p>

<p><strong>しかし安心してください</strong>。こうした、手間のかかるところ、難しいところを吸収し、より直感的にJavaScriptでWebGLを扱うためのライブラリーがあります。</p>

<h2>WebGLのラッパーライブラリー「three.js」</h2>

<p><a href="http://threejs.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">three.js</a>は、現在最も有名なWebGLのラッパーライブラリーです。WebGL界のjQueryのような存在です。WebGLを採用した多くのプロジェクトは、既に当たり前のようにthree.jsを利用しています。</p>

<h3>three.jsの事例</h3>

<ul>
<li><a href="http://www.findyourwaytooz.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Find Your Way to Oz</a></li>
<li><a href="http://www.chromeweblab.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Web Lab</a></li>
<li><a href="http://www.pajamaclubmusic.com/3d/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Pajama Club : 3D</a></li>
</ul>

<p>Web制作者は、OpenGLのお作法、GLSLという未知の言語、線形代数学などのWebGLのための学習コストが高い関連知識がなかったとしても、JavaScriptと、わずかな3Dの基礎知識さえあればthree.jsを利用し、WebGLをコントロールすることができます。もしあなたがWebGL初心者であるならば、three.jsを利用してみるといいでしょう。</p>

<p>three.jsはWebGL上級者にも愛されているライブラリーです。行列計算のためのAPI、自身で用意した頂点データをVBOに適用するAPI、自作のGLSLをシェーダーに適用するAPIなども備えています。</p>

<p>また、<a href="http://www.webgljobs.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">海外のWebGL関連のジョブボード</a>を見てみても、three.jsがWebGL界のディファクトスタンダードライブラリーという裏付けにもなります。いくつかのWebGL関連の求人では、three.jsの経験が求められています。</p>

<p><img src="/wp-content/uploads/2013/09/10.png" alt="" /></p>

<p>three.js本体の開発はGitHubで管理されており、three.js制作者であるMr.doob氏が中心となり、世界中の多くのコミッターに支えられています。このこともthree.jsがディファクトスタンダードなライブラリーとして支持される理由でしょう。</p>

<p>こうしたさまざまな背景もあるので、もしあなたがWebGLに興味を持ったのなら、まずはthree.jsを使ってみることをおすすめします。</p>

<h2>まとめ</h2>

<p>今回はWebGLがいかに汎用的であるか、そしてそのWebGLをより簡単に利用するための手段となる、three.jsの存在についてレポートしました。
また近いうちに、three.jsの実際の利用方法についてご紹介していきます。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WebGLプログラミング]]></series:name>
	</item>
	</channel>
</rss>
