Work

最終更新: 2023-02-19

Publications

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

2021年6月 Unityゲーム プログラミング・バイブル 2nd Generation

『Unityゲーム プログラミング・バイブル 2nd Generation』

2021/6/29発売の『Unityゲーム プログラミング・バイブル 2nd Generation』を執筆しました。

37のトピックのうち、私は次の2つを担当しました。

  • レイマーチング:基礎から応用まで
  • Timelineによる映像制作

関連記事

2020年9月 CGWORLD vol.266(2020年10月号)の「デモシーンを支えるプロシージャル技術」

CGWORLD vol.266(2020年10月号)に「デモシーンを支えるプロシージャル技術」という記事を寄稿しました

9/10(木)発売のCGWORLD vol.266(2020年10月号)に「デモシーンを支えるプロシージャル技術」という記事を寄稿しました。

デモシーンの魅力や、64KB制限で映像作品を創るための3Dモデルやテクスチャのプロシージャル生成について解説しています。

関連記事

2020年3月 KLab Tech Book Vol.6

KLab Tech Book Vol.6

『KLab Tech Book Vol.6』の『第1章 NVIDIA OptiXで『レイマーチング×パストレーシング』による物理ベースレンダラーを自作する』を担当しました。

筆者自作の物理ベースレンダラーRedflashを題材にして、GPUとRTコアを用いたレイトレーシングの高速化について紹介しました。

関連記事

2019年4月 KLab Tech Book Vol.4

KLab Tech Book Vol.4

『KLab Tech Book Vol.4』の『第4章 Unity×レイマーチングによる映像制作の実践手法』を担当しました。

Tokyo Demo Fest 2018で発表したリアルタイムCG作品『WORMHOLE』を題材にして、Unityとレイマーチングを組み合わせた映像制作技術を解説しました。

関連記事

2018年10月 KLab Tech Book Vol.3

KLab Tech Book Vol.3

『KLab Tech Book Vol.3』の『第7章 物理ベースレンダラーをRust実装して、ちょっと高速化した話』を担当しました。

技術書典3の『KLab Tech Book Vol. 1』の第一章『物理ベースレンダラーをRust実装して、表紙絵をレンダリングした話』の続編です。

筆者自作の物理ベースレンダラを題材にして、パストレーシングの高速化の手法を紹介します。 BVHによる衝突判定の高速化、式を整理して不要な計算を省く高速化、Next Event Estimation(NEE)、デノイズによるノイズの除去、Rust開発環境の最新化について紹介しました。

関連記事

2017年10月 KLab Tech Book Vol.1

KLab Tech Book Vol.1

『KLab Tech Book Vol.1』の表紙絵と『第1章 物理ベースレンダラーを Rust 実装して、表紙絵をレンダリングした話』を担当しました。

Rustで自作したパストレーシングによる物理ベースレンダラーを解説しました。

まず基礎的な3DCGの描画方法について触れた後、パストレーシングの原理について簡単に説明しました。 続いて筆者自作のHanamaruレンダラーを紹介し、レイトレーシングやパストレーシングの高速化の取り組みについて触れました。

関連記事

2017年4月 Think Web

Think Web

『Think Web』の『第6章 まるで実写!?GPUパストレーシングのWebGL実装』を担当しました。

パストレーシングは3Dの描画手法のひとつで、現実世界に近い光の振る舞いをシミュレートすることで、大域照明を考慮した写実的なレンダリングを可能にします。 写実的なレンダリングができる反面、処理時間が膨大にかかるという弱点があります。 私の章ではパストレーシングのGPU実装による高速化について紹介します。 しかも単純な高速化ではなく、ブラウザ上で3DCGを扱うWebAPIであるWebGLによりGPU実装することで、ブラウザ上で動作するインタラクティブなパストレーシングを実現します。

関連記事

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が初めてという人でも分かるように、基礎から説明しています。

Unity

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

2019 Morphing: Hisei -> Reiwa

2018 Tokyo Demo Fest 2018 優勝作品 WORMHOLE

Tokyo Demo Fest 2018にさだきちさん(@sadakkey)とチームを組み、『WORMHOLE』(映像:gam0022 / サウンド:sadakkey)という作品を発表しました。

「ワームホールによる空間移動」をコンセプトとして、 不思議な球体がワームホールを介して非現実なデジタル空間と水平線の広がる自然空間を行き来する映像作品です。

Windows実行ファイル形式のデモ作品のコンペティションであるCombined Demo Compoにて、本作品が1位に選ばれました! 実行ファイル形式なので、リアルタイムレンダリングです。さらに言えばリアルタイムレイトレです!

Unityの新機能(Timeline・TextMeshPro・Chinemachine・PostProcessingStack)を活用し、効率的に開発と制作を行いました。 また、レイマーチングとラスタライザのハイブリッドなレンダリング方式を採用しました。

関連記事

関連記事

2018 カスタムシェーダーでTextMeshProに独創的な演出を加える

『WORMHOLE』のオープニング部分のタイトルの文字をパラパラと出現させたり消失させたりする演出は、TextMeshProとカスタムシェーダーを組み合わせて実装しました。

モーフィング

ブラウン管風のエフェクト

出現と消失アニメーション

TextMeshProの文字描画に独創的な演出を加えるためのカスタムシェーダーの実装方法をQiitaで解説しました。

2018 uRaymarchingとReflectionProbeによる反射

ReflectionProbeによって「レイマーチングで動的に生成したモデル」と「ポリゴンメッシュのモデル」を混在させたシーンで破綻のない反射を計算する検証です。

2017 uRaymarchingとTimelineによる映像作品

「レイマーチングで動的に生成したモデル」と「ポリゴンメッシュのモデル」を混在させた作品です。 ロボットは通常の3Dモデルですが、床や柱のモデルはレイマーチングでプロシージャルに生成しました。

関連記事

WebGL

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

一部の作品は gam0022.net/webgl/ よりブラウザ上で実行できます。

2020 RE: SIMULATED

WebGL / WebAudio による64K Introなので、ブラウザ上で動作します。※高性能なGPUが必要です。

64KBの容量制約があるため、Unityやthree.jsといった既存のゲームエンジンやフレームワークを利用せずに、描画用のWebGLエンジンと制作用のツール(エディタ機能)を自作しました。

関連リンク

2019 Dot Matrix PostProcessing

2018 シェーダーコーディングバトル優勝

GLSLのシェーダーのみで上記のような作品をつくりました。

関連記事

2018 メガデモ勉強会

3/10に開催されたメガデモ勉強会! 2018に登壇しました。

発表タイトルは「もっと綺麗で写実的な絵作りをしたい!レイマーチング向けのシェーディング技術」です。

関連記事

2017 正解するカド

正解するカド

アニメ『正解するカド』に登場するフラクタル図形(カド)のレイマーチングによるレンダリングに挑戦しました。

レイマーチング(スフィアトレーシング)は「カド」のようなフラクタル図形の描画がとても得意なので、 その特徴を活かせたと思います。

関連記事

2017 Fusioned Bismuth

Fusioned Bismuth

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

関連記事

2017 Realtime Pathtracing

WebGL(three.js)でリアルタイムなパストレーシングを実装しました。

関連記事

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行ほどのコードでシーンを定義しています。

レイトレ合宿

レイトレ合宿用に開発した物理ベースレンダラーを紹介します。

2019 Redflash Renderer

Redflash は NVIDIA® OptiX 6.0 上で実装したパストレーシングによる物理ベースのGPUレンダラーで、ポリゴンとレイマーチングが混在したシーンを一貫して描画できます。

関連リンク

2018 Hanamaru Renderer v2

Hanamaru Rendererを高速化しました。

関連リンク

2017 Hanamaru Renderer

Rustで開発したパストレーシングによる物理ベースレンダラーです。

関連リンク

2016 Tsukihi

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

関連記事

Research

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

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

Paper Craft -  dolphin

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

表彰

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

RubyGems

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

2013 ImmutableList

immutable_list

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

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

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

iOS App

2013 カメラで商品検索 C2search

C2search

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

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

関連記事

Web

2013 Twitter名刺ジェネレーター

Twitter名刺ジェネレーター

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

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

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

紹介スライド

Google Chrome Extention

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

2016 Slack 返信引用ボタン

Slack Reply Button

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

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's Tag Cloud