Works

Publications

執筆した書籍を紹介します。

2016年夏 AZ異本 grimoire of web

JavaScriptoon2

AZ異本という技術書の「レイマーチングの世界でミクが踊る!『レイマーチング×ラスタライザ』ハイブリッド描画 with three.js」という記事をかきました。 three.jsによるレイマーチングとラスタライザのハイブリッド手法について解説しました。

レイマーチングはフラクタル図形などの幾何学的なシーンの描画が得意な一方、人物などの有機的な形状の表現は苦手とします。 そこで、人物などの有機的な箇所のみをラスタライザで描画し、背景などの幾何学的な形状はレイマーチングで描画する手法の考案と実装をしました。 本手法によって、レイマーチングとラスタライザの短所を補い合いながら、ハイブリッドに組み合わせることができます!

関連情報

2015冬 JavaScriptoon2

JavaScriptoon2

「JavaScriptoon2」というWebフロントエンド本の「シェーダだけで世界を創る!Three.jsによるレイマーチング」という章を担当しました。

レイマーチングはレイトレーシングの1種です。 レイトレーシングやレイトレーシングは膨大な計算が必要ですが、フラグメントシェーダで実装することで、GPUの力を利用したリアルタイムに描画する方法を紹介しています。

そもそもシェーダとは何かという基礎の解説からはじまり、レイマーチングの肝となる「距離関数」についても丁寧に解説しました。

2015夏 JavaScriptoon

JavaScriptoon

「JavaScriptoon」というWebフロントエンド本の「three.js でお手軽 3DCG 入門」という章を担当しました。

three.js はWebGLを手軽に使うためのJavaScriptのライブラリです。

3DCGが初めてという人でも分かるように、基礎から説明しています。

WebGL Works

WebGLで作成した映像作品と活動を紹介します。

動くデモはこちらにもまとめています。

2016 Live

Live

WebGLのフォワードレンダリングでレイマーチングとラスラライザをハイブリッドに組み合わせる技術デモです。 WebGLの深度バッファを書き込む拡張(EXT_frag_depth)を利用しています。 レイマーチングによる無数のサイリウムのステージ上でMMDの初音ミクが踊ります。

AZ異本のサンプル用に作成しました。

関連情報

2016 Carbon

Carbon

TokyoDemoFest 2016 の GLSL Graphics Compo で3位入賞した、レイマーチングによる映像作品です。

Mandelbox というフラクタル図形を mod で無限にループさせています。

関連記事

2016 #GLSLTech 発表資料

「シェーダだけで世界を創る!three.jsによるレイマーチング」という発表資料です。

2/14のバレンタインデーに開催された「GPU の熱でチョコも溶けちゃう!? GLSL シェーダテクニック勉強会(#GLSLTech)」で登壇したときのものです。

詳細はブログの記事にまとめました。

2016 Gem

Gem

光の屈折をシミュレートすることで、輝く宝石をWebGLでレンダリングする「gem」という作品(技術デモ)をつくりました。 レイトレーシングをGLSLのフラグメントシェーダで実装することで、GPUの並列計算を利用したリアルタイムな描画を実現しています。

関連記事

2015 Reflect

Gem

レイマーチングで鏡面反射する球体を無限に並べたシーンをリアルタイムに描画するデモです。 three.js 公式サンプルにも取り込まれています。

関連記事

2015 Steal Frame

Steel Frame

鉄筋をモチーフにしたレイマーチングによる作品です。

JavaScriptoon2の解説用につくったので、わずか20行ほどのコードでシーンを定義しています。

Google Chrome Extention

Goole Chrome の拡張機能を紹介します。

2016 Slack 返信引用ボタン

Slack Reply Button

Slack に返信と引用ボタンをつけるChrome拡張機能です。

Research

大学の卒業研究を紹介します。

2014-2015 非多様体構造を許容した可展面パッチ集合による紙模型用形状モデルの構築

Paper Craft -  dolphin

曲面を利用したペーパークラフト(画像奥)をインタラクティブに設計するシステムを提案しました。 市販ソフトウェアで作成したペーパークラフト(画像手前)と比較すると、 曲線による滑らかな表現、ヒレの部分の1枚の紙の構造(非多様体構造)を許容できる、組立の手間が少ないなどのメリットがあります。

表彰

指導教官である三谷先生のブログでも紹介していただきました。

Windows

2016 Tsukihi

距離関数によって表現されたオブジェクトをレイマーチングでレンダリングするCPUレンダラーです。 パストレーシングによるレンダラーの実装と擬似表現によるレンダラーの両方の実装があります。

関連記事

iOS App

2013 カメラで商品検索 C2search

C2search

「カメラで商品検索」という画像によって商品の横断検索ができるiOSアプリを開発しました。 Yahoo Inter Hack U 2013 参加作品です。

  • 画像認識によって、タイトルが長い本、名前を忘れてしまった商品も簡単に検索できます。
  • Yahoo!ショッピングと楽天市場の両方の結果を同じテーブルビューに表示します。
  • 検索結果を色によってソートする機能もあります。

関連記事

RubyGems

Ruby 向けのライブラリの紹介です。

2013 ImmutableList

immutable_list

RubyGemsとして、ImmutableなLinkedListを公開しました。

C言語の拡張として実装したので、動作はそれなりに高速です。

Immutable かつ Linked なので、Rubyで関数型言語風に再帰を使ってプログラミングをするのに最適なデータ構造です。

Web

2013 Twitter名刺ジェネレーター

Twitter名刺ジェネレーター

TwitterIDを入力するだけで簡単に名刺が作れるサービスです。

認証は不要でデザインを選択するだけ!

さらに、マルコフ連鎖によってあなたを適当に自己紹介してくれます!

紹介スライド

2013 Shelf

Shelf

3Dで描画された回転する棚にカバンを展示することで、実際の店舗でショッピングをしている感覚を体験できるというコンセプトのWeb通販サイトのプロトタイプです。

COJTという、筑波大学の産学連携の授業で開発しました。

WebGL(Canvas)で描画しています。

COJTソフトウェアコース2013の前期の準優勝/技術賞受賞作品です。

2012-2013 TwinCal

twincal

TwinCalとは、Twinsの時間割をiCalendar形式に変換し、Googleカレンダー・iCalへのインポートをサポートするWebサービスです。

アカリクVALUATOR主催 学生のためのアプリ開発コンテストのファイナリストに採択されました。

2011-2013 @daigoroubot

大五郎Bot

マルコフ連鎖で学習する人工無能のTwitterのBOTです。

つくば市の天気予報機能、電卓機能、n進数変換器、全学教室検察など便利な機能を搭載しています。

大五郎(U^ω^)BOT (@daigoroubot)

HSPTV Games

HSPプログラミングコンテスト用に作ったゲーム達です。

2012 Soar(ソアー)

soar

女の子を落下しないように操作して、ひたすら上を目指すアクションゲーム

2010 雲(sky)

雲

パーリンノイズを使ったリアルな雲画像のリアルタイムレンダリング実験。

描画の高速化の為に、VRAMを直接書き換えるなど、HSPの限界に挑戦した作品。

config画面

2009 ボウリング(笑) (bowling(w))

ボウリング(笑)

OBAQによる物理演算とランキング機能によるステージ投稿が特徴のボウリング風ゲーム。

2008 蟲(worms)

蟲を切断して遊ぶゲーム。ドラッグでレーザーを照射。

蟲

よく考えてみるとマジキチ。複雑系に興味を持って作ったらしい。

HSPTV部門で効果音を扱うために、winmm.dll を使用した。

Windows Games

HSPで作ったWindows向けゲーム達です。

2007 Battle Armor

Battle Armor

中2の時に作ったタンクシューティング。

バランスがおかしいですが、クリアは出来ます。

2006 ASTEROIDS

ASTEROIDS

中1の時に作った、アーケードゲームの”ASTEROIDS”風の全方向シューティングゲーム。

UFOやパワーアップアイテムなどのオリジナル要素があります。

それ以前

comments powered by Disqus

gam0022.net

Qiita

Hatena Blog

gam0022.net

Qiita

Hatena Blog