<?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/"
	>

<channel>
	<title>note.x</title>
	<atom:link href="http://blog.r3c7.net/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.r3c7.net</link>
	<description>やってみたコト、行ったトコ、使ってみたモノなどを淡々と記録しています。</description>
	<lastBuildDate>Mon, 26 Jul 2010 05:39:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>3D engine studies 100726</title>
		<link>http://blog.r3c7.net/?p=513</link>
		<comments>http://blog.r3c7.net/?p=513#comments</comments>
		<pubDate>Mon, 26 Jul 2010 05:39:23 +0000</pubDate>
		<dc:creator>rect</dc:creator>
				<category><![CDATA[try]]></category>
		<category><![CDATA[3dengine]]></category>
		<category><![CDATA[blender]]></category>

		<guid isPermaLink="false">http://blog.r3c7.net/?p=513</guid>
		<description><![CDATA[自前エンジンにラスタライザ組み込んだ。やっと一息つけるとこまでできたー。

Rasterizer Test01（要：FlashPlayer10.1）
解像度640×480、△9800のトーラスにフラットシェーディングした [...]]]></description>
			<content:encoded><![CDATA[<p>自前エンジンにラスタライザ組み込んだ。やっと一息つけるとこまでできたー。</p>
<p class="photo"><a rel="shadowbox;width=640;height=480" href="http://blog.r3c7.net/wp-content/uploads/rasterizer100726/01.html"><img src="/wp-content/uploads/rasterizer100726/01.jpg" border="0" /></a></p>
<p><a rel="shadowbox;width=640;height=480" href="http://blog.r3c7.net/wp-content/uploads/rasterizer100726/01.html"  class="ext-link">Rasterizer Test01</a>（要：FlashPlayer10.1）</p>
<p>解像度640×480、△9800のトーラスにフラットシェーディングした状態で、自分の環境の場合30fpsくらい。背面カリングしてるので、実質△4000〜△4500くらい描画してる。ポリゴンあたりの描画面積のほうが影響ありそうなので、何枚描画できるかなんて性能評価の基準にならないかもしれないけど、まあ目安として。初代プレステが（たぶんローレゾで）30フレーム動作だと12000微少ポリゴン描画できるってことだから、なんとか近づけたい。目指せ初代プレステ。</p>
<p>Zバッファ持たせたので交差ポリゴンも問題なし。</p>
<p class="photo"><a rel="shadowbox;width=640;height=480" href="http://blog.r3c7.net/wp-content/uploads/rasterizer100726/02.html"><img src="/wp-content/uploads/rasterizer100726/02.jpg" border="0" /></a></p>
<p><a rel="shadowbox;width=640;height=480" href="http://blog.r3c7.net/wp-content/uploads/rasterizer100726/02.html" target="_blank" class="ext-link">Rasterizer Test02（要：FlashPlayer10.1）</a></p>
<p>テクスチャにもとりあえず対応。アルファブレンドはまだ。</p>
<p class="photo"><a rel="shadowbox;width=640;height=480" href="http://blog.r3c7.net/wp-content/uploads/rasterizer100726/03.html"><img src="/wp-content/uploads/rasterizer100726/03.jpg" border="0" /></a></p>
<p><a rel="shadowbox;width=640;height=480" href="http://blog.r3c7.net/wp-content/uploads/rasterizer100726/03.html" class="ext-link">Rasterizer Test03（要：FlashPlayer10.1）</a></p>
<p>ようやくBlenderローダーが前に進められそうな状況が整ってきたので、とりあえずハデな部分はこのへんで止めて地味な処理を詰める。勝手な解釈で曖昧にしてた部分が全部ひっくり返されて、かなり整理された。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.r3c7.net/?feed=rss2&amp;p=513</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PV3D FrustumClipping and QuadrantRenderEngine issue</title>
		<link>http://blog.r3c7.net/?p=503</link>
		<comments>http://blog.r3c7.net/?p=503#comments</comments>
		<pubDate>Thu, 17 Jun 2010 13:58:01 +0000</pubDate>
		<dc:creator>rect</dc:creator>
				<category><![CDATA[try]]></category>
		<category><![CDATA[papervision3d2.0]]></category>

		<guid isPermaLink="false">http://blog.r3c7.net/?p=503</guid>
		<description><![CDATA[FrustumClipping と QuadrantRenderEngine が混在できないバグが未だにほったらかしっぽいので（Rev.942）、去年MLで流れてた対処法を紹介。とりあえず何とかしたい人向けTips。
F [...]]]></description>
			<content:encoded><![CDATA[<p>FrustumClipping と QuadrantRenderEngine が混在できないバグが未だにほったらかしっぽいので（Rev.942）、<a href="http://papervision3d.758870.n4.nabble.com/Making-FrustumClipping-and-QuadrantRenderEngine-work-together-td782634.html#a782634" target="_blank">去年MLで流れてた対処法</a>を紹介。とりあえず何とかしたい人向けTips。</p>
<p><a href="http://blog.r3c7.net/wp-content/uploads/FrustumandQuadrant/" target="_blank" class="ext-link">FrustumClipping and QuadrantRenderEngine work together Demo</a>（要：FlashPlayer9）</p>
<p>/core/dyn/DynamicTriangles.as の64行目以下</p>
<pre class="code">
triangle.instance = object;
triangle.vertices = [v0, v1, v2];
triangle.uv = [uv0, uv1, uv2];
…
</pre>
<p>の部分を、以下のような感じに。</p>
<pre class="code">
triangle.renderCommand.instance = object; //←この一行を追加
triangle.instance = object;
triangle.vertices = [v0, v1, v2];
triangle.uv = [uv0, uv1, uv2];
…
</pre>
<p>バカ正直に使うと当然負荷が大きくなるわけで、床面が真っ平らで良いならビットマップを透視投影した方が経済的だと思う。<br />
QuadrantRenderEngine使用時は、通常のクリッピングの流れからバイパスして、視錘台の各平面と他のポリゴンとの交差をいっぺんに判定して分割、不可視部分を刈り取るようにすれば結構最適化できそうだけど、そこまでやるなら根本的なデータ構造含めて作り直したいっていう開発サイドの判断で放置されてるのかなぁ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.r3c7.net/?feed=rss2&amp;p=503</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Away3D] BSP-dev Branch</title>
		<link>http://blog.r3c7.net/?p=491</link>
		<comments>http://blog.r3c7.net/?p=491#comments</comments>
		<pubDate>Fri, 09 Apr 2010 06:41:58 +0000</pubDate>
		<dc:creator>rect</dc:creator>
				<category><![CDATA[try]]></category>
		<category><![CDATA[away3d]]></category>

		<guid isPermaLink="false">http://blog.r3c7.net/?p=491</guid>
		<description><![CDATA[
Away3Dに BSP/PVS を実装しようとしてるブランチを見つけてニヤリ。
コミッターはFP10版Away3DにPixelbenderによるシェーディング実装した David Lenaerts。
今どきのリアルタイ [...]]]></description>
			<content:encoded><![CDATA[<p class="photo"><img src="/wp-content/uploads/away3d/bsptest/e_bsppvs.jpg" border="0" /></p>
<p>Away3Dに BSP/PVS を実装しようとしてるブランチを見つけてニヤリ。<br />
コミッターはFP10版Away3DにPixelbenderによるシェーディング実装した <a href="http://www.derschmale.com/">David Lenaerts</a>。<br />
今どきのリアルタイムレンダリングシーンじゃ特に意識しないだろうし、Flash用エンジンに絞っても Alternativa3D とか infinity3d にはとっくに実装されてるし、これといったアドバンテージがあるわけじゃないけど、ライセンス的に緩めなAway3Dに組み込まれるのは本当にありがたい。</p>
<p>今のところObjectContainer3Dを継承したクラスとしてBSPTreeが実装されてて、空間分割されたコンテナをSceneに追加する形で使う。この辺はハナっからScene3DにBSPが組み込まれてる（と思われる）Alternativa3Dのほうがスマートだと頭の悪いオレでも思うので、今後の仕様変更でScene3Dに内包されるかも。そうなれば Zソート・クリッピング・カリング・ポリゴン交差時の分割処理に至るまでパイプラインの至る所で恩恵にあずかれるはず。あと、内部で持ってる物理演算や衝突判定の最適化にも取り入れようとしているみたいなので、ちょっぴり期待しておく。</p>
<p>まだまだガンガン仕様変更があると思うけど、どんな感じになるのか試したくて、以前作った迷路を使ってポータルシステムがどの程度カリングを最適化してくれるのかを見てみた。比較用にBSP/PVSを使わない場合も改めて作成。</p>
<p>BSPTreeとポータルの生成にはかなり時間がかかる。DoomやQuakeなんかだとレベルエディタを使って事前に作ったものを外部ファイルとして保存しておいて、実行時は読み込みだけで済むようにしてあるように、事前処理のがよさそう。Away3Dもこの辺は考えてあるようで、エクスポータークラスが用意されてる（PreFabにレベルエディタ的な機能が追加されたりして？）。今回は使い方がよくわかんねーのと、必要なデータ全部エクスポートするのこれ？って感じだったので諦めた。</p>
<p><a href="/wp-content/uploads/away3d/bsptest/maze.html" target="_blank" class="ext-link">Maze normal</a><br />
<a href="/wp-content/uploads/away3d/bsptest/maze_bsp.html" target="_blank" class="ext-link">Maze using BSP/PVS (BSP/PVS使用)</a></p>
<p><strong>■操作方法</strong><br />
カーソルキー [CursorKey] … 移動 (move)<br />
[Z], [X] Key … ティルト (Tilt)</p>
<p>※要：FlashPlayer10</p>
<p>BSP/PVS版は、スタンドアロンプレーヤーならかなりヌルヌル動く感じ。マシンパワーのある環境だと2つの違いが分かりにくいかもしれないけど、オレの環境（MacBookPro 2.33GHz Core2Duo）だと全然違う。クリッピングモードをRectangle Clippingにすると視覚的にも違いが見て取れる。Project stats の T-ELEMENTS と R-ELEMENTS を見ると処理対象のFaceが大幅に減ってるのが分かる。ワクワクしてまいりました。</p>
<p>ハードウェアの進化に伴って失われつつある先人達の技術を追体験しつつ手軽に勉強できるのが、ActionScriptで3Dをやる唯一のメリットだと思うので、こういうトピックは超アガる。ちゃんと自分のものにするには相当ハードル高いけど、とりあえず周辺をウロウロする。</p>
<p><strong>参考：</strong><br />
<a href="http://pauillac.inria.fr/~levy//bsp/" target="_blank" class="ext-link">BSP Trees</a>（視覚的でわかりやすい）<br />
<a href="http://ja.wikipedia.org/wiki/BSP" target="_blank" class="ext-link">バイナリ空間分割（Binary space partitioning）- Wikipedia</a><br />
<a href="http://web.cs.wpi.edu/~matt/courses/cs563/talks/bsp/bsp.html" target="_blank" class="ext-link">BSP trees in 3D worlds</a><br />
<a href="http://www.amazon.co.jp/gp/product/493900791X?ie=UTF8&#038;tag=irresponsi037-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=493900791X" target="_blank" class="ext-link">ゲームプログラミングのためのリアルタイム衝突判定</a>（Amazon）<img src="http://www.assoc-amazon.jp/e/ir?t=irresponsi037-22&#038;l=as2&#038;o=9&#038;a=493900791X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.r3c7.net/?feed=rss2&amp;p=491</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>QuakeII GWT Building&amp;Running for Mac</title>
		<link>http://blog.r3c7.net/?p=482</link>
		<comments>http://blog.r3c7.net/?p=482#comments</comments>
		<pubDate>Thu, 08 Apr 2010 02:50:25 +0000</pubDate>
		<dc:creator>rect</dc:creator>
				<category><![CDATA[try]]></category>
		<category><![CDATA[WebGL]]></category>

		<guid isPermaLink="false">http://blog.r3c7.net/?p=482</guid>
		<description><![CDATA[
Java版Quake II「Jake2」を、Google Web Toolkit（GWT）でJavaScriptに移植したという
Quake II GWT Port が、WebGLのベンチマークになりそうだったので動か [...]]]></description>
			<content:encoded><![CDATA[<div class="photo"><img src="/wp-content/uploads/e_quake2gwt.jpg" alt="" border="0"/></div>
<p>Java版Quake II「Jake2」を、Google Web Toolkit（GWT）でJavaScriptに移植したという<br />
<a href="http://code.google.com/p/quake2-gwt-port/" target="_blank">Quake II GWT Port</a> が、WebGLのベンチマークになりそうだったので動かしてみたメモ。<br />
以下、MacOSXでのビルド手順。</p>
<p>QuakeII GWTは、Mercurialでソース管理されてるのでコレ必須。<br />
<a href="http://mercurial.selenic.com/downloads/" target="_blank" class="ext-link">http://mercurial.selenic.com/downloads/</a></p>
<p>サウンド関連でVorbis-toolsとLameも必要。MacPorts使ってるなら</p>
<pre class="code">
sudo port install vorbis-tools
sudo port install lame
</pre>
<p>でインストール。Fink使ってるならそっちで。<br />
どっちも使ってない場合は、<a href="http://mxcl.github.com/homebrew/" target="_blank">Homebrew</a>突っ込んで、</p>
<pre class="code">
sudo chown -R $USER /usr/local
curl -Lsf http://github.com/mxcl/homebrew/tarball/master | tar xvz -C/usr/local --strip 1
brew install vorbis-tools
brew install lame
</pre>
<p>でもいいらしい。<br />
オレはMacPorts経由だったので他の方法は試してない。ダメだったらすんません。<br />
これで準備完了。</p>
<p>適当なディレクトリに移動したあと、</p>
<pre class="code">
hg clone https://quake2-gwt-port.googlecode.com/hg/ quake2-gwt-port
</pre>
<p>で、QuakeII GWT Portのリボジトリがコピーされる。<br />
続いてサーバー、クライアントのビルドとリソースのインストール。</p>
<pre class="code">
cd quake2-gwt-port
./build-dedicated-server
./install-resources
</pre>
<p>./install-resourcesとか時間かかるので、メシ食うとか風呂入るとか。<br />
終わったら一部ディレクトリ構造を変更。なんかバグらしい？</p>
<pre class="code">
cp -r maven-build/server/target/gwtquake/war/gwtquake war
</pre>
<p>以上でビルド完了。</p>
<p>サーバーを起動</p>
<pre class="code">
./run-dedicated-server
</pre>
<p>起動できたら、WebGLに対応したブラウザで、</p>
<p>http://localhost:8080/GwtQuake.html</p>
<p>にアクセスする。<br />
公式には、Chromiumが推奨ブラウザになってたけど、WebKit Nightly Buildでも動いた。</p>
<p>自分の環境では、11〜13fpsくらいの速度。遊べない事もないけど、たまにブラウザごと落ちる。ドライバの問題なのかGPUそのものが対応できてないのかよくわかんないけどそんな感じ。<br />
HTML5よりなにより、GWTスゲーっていう印象。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.r3c7.net/?feed=rss2&amp;p=482</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FireFox3.6 mozOrientation</title>
		<link>http://blog.r3c7.net/?p=472</link>
		<comments>http://blog.r3c7.net/?p=472#comments</comments>
		<pubDate>Fri, 02 Apr 2010 14:50:17 +0000</pubDate>
		<dc:creator>rect</dc:creator>
				<category><![CDATA[try]]></category>

		<guid isPermaLink="false">http://blog.r3c7.net/?p=472</guid>
		<description><![CDATA[
mozOrientation + PV3D（要：FireFox3.6 + Flash Player9以降 + 加速度センサ付きPC）
※加速度センサ積んでれば、PCを前後左右に傾けることで玉が転がる
FireFox3. [...]]]></description>
			<content:encoded><![CDATA[<div class="photo"><a href="/wp-content/uploads/mozOrientation/" target="_blank"><img src="/wp-content/uploads/mozOrientation/e_mozorientation.jpg" alt="" border="0"/></a></div>
<p><a href="/wp-content/uploads/mozOrientation/" target="_blank" class="ext-link">mozOrientation + PV3D</a>（要：FireFox3.6 + Flash Player9以降 + 加速度センサ付きPC）<br />
※加速度センサ積んでれば、PCを前後左右に傾けることで玉が転がる</p>
<p>FireFox3.6が加速度センサの傾き検出できるってんで、ありがちな物を作って体験してみた。<br />
自分のMacBookProでしか試してないんで確証はないけど、mozOrientationがディスパッチされる環境なら動くはず。</p>
<p><strong>参考サイト：</strong><br />
<a href="http://www.nilab.info/lab/mozorientation.html" class="ext-link">加速度センサーの値を表示するサンプル(MozOrientation)</a></p>
<p>今回のネタを作ろうとFireFox3.6にしたらFlashの再生時、妙に負荷かかるようになった。<br />
起動して数時間使った後で、上のデモを再生すると頻繁にGCが発生してるみたいな挙動になって、衝突判定すり抜けたりする。FireFoxを再起動すると直るんだけどオレの環境の問題かなぁ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.r3c7.net/?feed=rss2&amp;p=472</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>suumo</title>
		<link>http://blog.r3c7.net/?p=468</link>
		<comments>http://blog.r3c7.net/?p=468#comments</comments>
		<pubDate>Wed, 24 Mar 2010 04:31:09 +0000</pubDate>
		<dc:creator>rect</dc:creator>
				<category><![CDATA[try]]></category>
		<category><![CDATA[papervision3d2.0]]></category>

		<guid isPermaLink="false">http://blog.r3c7.net/?p=468</guid>
		<description><![CDATA[
suumo（要：Flash Player9）
スーモ萌え。
を目指して作ったものの「スーモではない何か」が出来た。
無意味にファー表現したので、見た目のわりにポリゴン数食ってたり、負荷が増大してて非常にコストパフォーマ [...]]]></description>
			<content:encoded><![CDATA[<div class="photo"><a href="/wp-content/uploads/suumo/main.swf" target="_blank"><img src="/wp-content/uploads/suumo/e_suumo.jpg" alt="" border="0"/></a></div>
<p><a href="/wp-content/uploads/suumo/main.swf" target="_blank" class="ext-link">suumo</a>（要：Flash Player9）</p>
<p>スーモ萌え。<br />
を目指して作ったものの「スーモではない何か」が出来た。<br />
無意味にファー表現したので、見た目のわりにポリゴン数食ってたり、負荷が増大してて非常にコストパフォーマンスが悪い。低コストな屋外の景観生成が個人的な課題。一つの方法論が<a href="http://blog.r3c7.net/?p=359">ドライブシミュもどき</a>の時の構造だけど、これよりさらにコストを抑えられないもんかな。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.r3c7.net/?feed=rss2&amp;p=468</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Imitate Morphovision</title>
		<link>http://blog.r3c7.net/?p=460</link>
		<comments>http://blog.r3c7.net/?p=460#comments</comments>
		<pubDate>Fri, 19 Mar 2010 03:33:29 +0000</pubDate>
		<dc:creator>rect</dc:creator>
				<category><![CDATA[try]]></category>
		<category><![CDATA[papervision3d2.0]]></category>

		<guid isPermaLink="false">http://blog.r3c7.net/?p=460</guid>
		<description><![CDATA[
Imitate Morphovision（要：Flash Player9）
※ステージドラッグで視点位置が変わります。
岩井俊雄さんと、NHK放送技術研究所が共同開発したモルフォビジョン。
プリズムミラーで反射させたプ [...]]]></description>
			<content:encoded><![CDATA[<div class="photo"><a href="/wp-content/uploads/imitatemorphovision/" target="_blank"><img src="/wp-content/uploads/imitatemorphovision/e_imitatemvision.jpg" alt="" border="0"/></a></div>
<p><a href="/wp-content/uploads/imitatemorphovision/" target="_blank" class="ext-link">Imitate Morphovision</a>（要：Flash Player9）</p>
<p>※ステージドラッグで視点位置が変わります。</p>
<p>岩井俊雄さんと、NHK放送技術研究所が共同開発した<a href="http://www.nhk.or.jp/strl/morphovision/" target="_blank">モルフォビジョン</a>。<br />
プリズムミラーで反射させたプロジェクタからの光を使ってスリットスキャンする方法で、立体物の見えを変化させるシステム。Another time, Another space の立体版って感じだけど、デジタル的な画像処理じゃない方法で摩訶不思議な現象を作り出してるのがカッコイイ。悔しいかな一度も本物を見た事がない。</p>
<p>んで、実機と同じような状況を作ったら、<a href="http://blog.r3c7.net/?p=77">以前作ったゾートロープ</a>のようにソレっぽく見えたりしねぇかなぁーとか思ったのが2年くらい前。エライ時間がかかったけど、<a href="http://blog.r3c7.net/?p=443">プロジェクションマップがそれなりに動いた</a>ので、技術的に課題だったライトマップ的なものが実装できて、ようやく動かせた。見やすくするためにブレンド使った以外は、スリット光の移動と物体の回転しかしてないんだけど、歪んで見えないことも…ない感じにはなった。スリット光のピッチが荒いのと、回転と同期がうまく取れてないあたりが課題か。でもまぁ、明らかに普通に回しただけじゃこうは見えないので、ちょっと嬉しい。</p>
<p>実機みたいに滑らかで有機的な振る舞いをさせるには、もっと高fps叩き出せるプラットホームじゃないと無理があるかなぁ…。それとも根気よく調整すればもう少し改善するのか？ とりあえず一歩前進。なんとなく可能性が垣間見えたので、またしばらく寝かせとこう。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.r3c7.net/?feed=rss2&amp;p=460</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>First impression of the WebGL</title>
		<link>http://blog.r3c7.net/?p=446</link>
		<comments>http://blog.r3c7.net/?p=446#comments</comments>
		<pubDate>Wed, 10 Feb 2010 02:34:25 +0000</pubDate>
		<dc:creator>rect</dc:creator>
				<category><![CDATA[try]]></category>
		<category><![CDATA[WebGL]]></category>

		<guid isPermaLink="false">http://blog.r3c7.net/?p=446</guid>
		<description><![CDATA[HTML5の周辺技術の一つ、WebGLがどんなもんか様子を伺ってみたのでメモっとく。
WebGL概要

Mozillaが作ってたCanvas3Dがベース
OpenGL 2.0 or OpenGL ES 2.0をサポートす [...]]]></description>
			<content:encoded><![CDATA[<p>HTML5の周辺技術の一つ、WebGLがどんなもんか様子を伺ってみたのでメモっとく。</p>
<h4>WebGL概要</h4>
<ul>
<li>Mozillaが作ってたCanvas3Dがベース</li>
<li>OpenGL 2.0 or OpenGL ES 2.0をサポートする環境でハードウェアアクセラレートされた2D、3Dグラフィックスを表示する</li>
<li>HTML5のCanvasを通じた、JavaScriptとOpenGL ES 2.0のバインディング</li>
</ul>
<h4>リソース</h4>
<ul>
<li><a href="http://www.khronos.org/webgl/" target="_blank" class="ext-link">khronos WebGLセクション</a></li>
<li><a href="http://blog.nihilogic.dk/2009/10/webgl-cheat-sheet.html" target="_blank" class="ext-link">WebGL Cheat Sheet</a></li>
</ul>
<h4>WebGL対応ブラウザ（いずれも開発中）</h4>
<ul>
<li><a href="http://nightly.webkit.org/" target="_blank" class="ext-link">Webkit nightly Build</a></li>
<li><a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/" target="_blank" class="ext-link">Minefield (FireFox 3.7 nightly Build)</a></li>
<li><a href="http://build.chromium.org/buildbot/continuous/" target="_blank" class="ext-link">Chorome (Chromium)</a></li>
<li>Opera? ※未確認</li>
</ul>
<p>仕事が早いというか、気が早いというかすでにいくつかのライブラリが公開されてる。</p>
<h4>WebGLライブラリ</h4>
<ul>
<li><a href="http://bjartr.blogspot.com/" target="_blank" class="ext-link">WebGLU</a>　※MIT License </li>
<li><a href="http://scenejs.com/" target="_blank" class="ext-link">SceneJS</a>　※MIT License または GPL Version 2</li>
<li><a href="http://spidergl.org/" target="_blank" class="ext-link">SpiderGL</a>　※GNU Library または LGPL</li>
<li><a href="http://www.glge.org/" target="_blank" class="ext-link">GLGE</a>　※LGPL</li>
</ul>
<p>※SpiderGLが、<abbr title="Papervision3D">PV3D</abbr>とかと感覚的に近いのかな？GLGEなんかはシーングラフをxmlで記述したものをベースに作ってく感じで勝手が違う。</p>
<p>上記ライブラリは使わずに、<a href="http://learningwebgl.com/blog/?page_id=1217" target="_blank">NeHeからの移植チュートリアル</a>を大いに参考にしつつコードも拝借しながら、いくつかデモを作ってみた。いずれも MacBookPro (Mobility Radeon X1600) OSX10.5.8 にて Webkit、Minefield、Chromium で動作確認。<br />
<span style="color:#c00">※Mac版Webkit r54648以降だと動作しなくなった。</span></p>
<p class="photo"><a href="/wp-content/uploads/webgl/3dcube/" target="_blank"><img src="/wp-content/uploads/webgl/webgltest01.jpg" border="0" alt="webgltest01" /></a></p>
<p><a href="/wp-content/uploads/webgl/3dcube/" target="_blank" class="ext-link">3D Cube</a>（要：WebGL対応ブラウザ）</p>
<p class="photo"><a href="/wp-content/uploads/webgl/3dcubematrix/" target="_blank"><img src="/wp-content/uploads/webgl/webgltest02.jpg" border="0" alt="webgltest02" /></a></p>
<p><a href="/wp-content/uploads/webgl/3dcubematrix/" target="_blank" class="ext-link">3D Cube Matrix</a>（要：WebGL対応ブラウザ）</p>
<p class="photo"><a href="/wp-content/uploads/webgl/billboardparticle/" target="_blank"><img src="/wp-content/uploads/webgl/webgltest03.jpg" border="0" alt="webgltest03" /></a></p>
<p><a href="/wp-content/uploads/webgl/billboardparticle/" target="_blank" class="ext-link">Billboard Particle</a>（要：WebGL対応ブラウザ）</p>
<p>思ってたよりパフォーマンス出ない。WebkitとMinefieldに関してはGPUアクセラレーションが効いてるっぽいけど、Chromiumでは機能してない感じ。開発中のものにケチつけてもしょうがないけども、回転数が足りなくて一番おいしいとこが使えてないエンジン載せ替えたばっかりのハチロクみたいなもどかしさがある。「JavaScriptでこんなに！？」みたいなインパクトが欲しいな。オレのコードと環境の問題かもしれんけど。<br />
OpenGL + GLSLそのものを勉強する環境としてはカジュアルに取り組めていいと思う。個人的にはかなり勉強になったし。</p>
<p>なんていうか、派手なビジュアル作りに使うってのはむしろ亜流で、もっと地味なとこでじわじわ効いてくる技術なんだろうなーと漠然と思った。<br />
Flashプラットフォームと比較して云々ってのは、なんかズレてる気がする。マーケティング戦略としてはアリなのかもしれんけど。</p>
<p><strong>2010/02/11追記：</strong><br />
ほとんどシェーダーにやらせる感じの4KB intro的アプローチだとどうなるか？と素朴に興味が涌いたので、日本屈指のscener、<a href="http://kioku.sys-k.net/4kgfxmon/howto/howto04.htm" target="_blank">kiokuさんの4K Procedural Gfx Monitor</a>に付属するサンプルのシェーダーを拝借させていただいてレイトレ動かしてみた。</p>
<p class="photo"><a href="/wp-content/uploads/webgl/raytrace/" target="_blank"><img src="/wp-content/uploads/webgl/webgltest04.jpg" border="0" alt="webgltest04" /></a></p>
<p><a href="/wp-content/uploads/webgl/raytrace/" target="_blank" class="ext-link">Raytrace</a>（要：WebGL対応ブラウザ）<br />
<del datetime="2010-05-19T03:19:57+00:00">※Minefieldだと動かない。要調査。</del>※Minefieldでも動いたそうです。</p>
<p>ブラウザのウインドウサイズに追従するので、あんまりデカくするとキビしいけどなんとか動いてる。この手法ならGPUパワーでゴリ押しできそう。やっぱりJavascriptとのバインディングって釣り合いが取れてないんじゃなかろうか。</p>
<p>随分楽しめたんで、もう満足。<br />
OpenGL + GLSLをちゃんと勉強しとこ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.r3c7.net/?feed=rss2&amp;p=446</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Projection map study</title>
		<link>http://blog.r3c7.net/?p=443</link>
		<comments>http://blog.r3c7.net/?p=443#comments</comments>
		<pubDate>Mon, 01 Feb 2010 06:35:46 +0000</pubDate>
		<dc:creator>rect</dc:creator>
				<category><![CDATA[try]]></category>
		<category><![CDATA[papervision3d2.0]]></category>

		<guid isPermaLink="false">http://blog.r3c7.net/?p=443</guid>
		<description><![CDATA[
Projection map Test（要：FlashPlayer9）
※各Cubeはドラッグで動かせます。
プロジェクションマップの習作。
パフォーマンス悪いなぁ。根本的に考え直さないとダメか。
]]></description>
			<content:encoded><![CDATA[<p class="photo"><a href="/wp-content/uploads/projectionmap/main.swf" target="_blank"><img src="/wp-content/uploads/e_projectionmap.jpg" border="0" alt="projectionmap" /></a></p>
<p><a href="/wp-content/uploads/projectionmap/main.swf" target="_blank" class="ext-link">Projection map Test</a>（要：FlashPlayer9）<br />
※各Cubeはドラッグで動かせます。</p>
<p>プロジェクションマップの習作。<br />
パフォーマンス悪いなぁ。根本的に考え直さないとダメか。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.r3c7.net/?feed=rss2&amp;p=443</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Beginning PV3D guide book for Flash3D contents develop</title>
		<link>http://blog.r3c7.net/?p=439</link>
		<comments>http://blog.r3c7.net/?p=439#comments</comments>
		<pubDate>Sat, 09 Jan 2010 06:50:58 +0000</pubDate>
		<dc:creator>rect</dc:creator>
				<category><![CDATA[review]]></category>
		<category><![CDATA[papervision3d2.0]]></category>

		<guid isPermaLink="false">http://blog.r3c7.net/?p=439</guid>
		<description><![CDATA[
昨年末、yas@ClockMakerさんのご好意で「Flash3Dコンテンツ制作のためのPapervision3D入門」を献本していただき、年末年始に少しずつ読んだ。yasさんの太っ腹さに感謝。
あざーッス！
総じて懇 [...]]]></description>
			<content:encoded><![CDATA[<p class="photo"><a href="http://clockmaker.jp/blog/2009/12/papervision3d-book/" target="_blank"><img src="/wp-content/uploads/pv3dbasicbook.jpg" border="0" alt="pv3dbasicbook" /></a></p>
<p>昨年末、yas@ClockMakerさんのご好意で「<a href="http://clockmaker.jp/blog/2009/12/papervision3d-book/" target="_blank">Flash3Dコンテンツ制作のためのPapervision3D入門</a>」を献本していただき、年末年始に少しずつ読んだ。yasさんの太っ腹さに感謝。<br />
あざーッス！</p>
<p>総じて懇切丁寧、全項カラーで超豪華。この本を隅々まで読み込んで実際に手を動かし、それでも理解できなきゃPV3D以前の問題なんじゃね？と、言えるくらい基礎から実践＋αまで非常に盛りだくさんな内容でお腹いっぱい。PV3DのAPIを使いこなして、Flashコンテンツに3D要素をちょろっと加えたいだけならこれ一冊で十分。</p>
<p>ただ、説明の分かりやすさや冗長さの回避が優先されて、多少語弊のある記述もチラホラ見受けられるので（UVの解説とかシェーディング系Materialあたり）、ネット上に多数ある情報も併せて参照するとなお良い。このへんは入門書のジレンマですな。</p>
<p>「英語わかんね」とかいうモノグサ野郎もこれでバッチシ！PV3Dに興味のあるFlashデベロッパは、手元に置いて損は無いかと。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.r3c7.net/?feed=rss2&amp;p=439</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
