穴日記

どうだ明るくなったろう

enokiで遊んでみた(Visual Studio 2017編)

これはレイトレアドベントカレンダー2019の記事です。 https://qiita.com/advent-calendar/2019/raytracing https://enoki.readthedocs.io/en/master/enokiというのは最近公開されたC++テンプレートライブラリで、SIMDやCUDAによるベクタライズを抽象的にサ…

SIGGRAPH ASIA 2018のCourseに応募して採択されたので発表した話

これはレイトレアドベントカレンダー2018の記事です。でもレイトレの話じゃないです。ポエムです。 qiita.com はじめに コンピュータグラフィックスの国際学会であるSIGGRAPH。そのASIA版であるSIGGRAPH ASIAが2018年である今年は東京で開催されました。 sa2…

Blue-noise Dithered Samplingの実験をしてみた

これはレイトレ合宿4!?のアドベントカレンダー記事です。 Blue-noise Dithered Sampling 先日開催されたSIGGRAPH2016には私も参加しましたが、興味深いものの実装が大変そうなものから何の役に立つのかわからない技術まで様々な知見を得ることができました。…

WebGLでリアルタイム流体シミュレーション+レンダリングを実装してみた

はじめに なんかWebGLが流行ってるらしいのでWebGLすることにしてみました。OpenGLはぼんやりとやったことがあったのですが、ウェッブ技術に対する疎さが深刻化しているのでモダンで先端的なテクノロジーを追及するためにもWebGLの習得は急務といえました。 …

一流グラフィックスプログラマへの道~リアルタイム編~

はじめに こんにちは。holeです。この記事は第三回レイトレ合宿のアドベントカレンダーです。 今回は一流グラフィックスプログラマ(リアルタイム)になる方法を探ってみました。一流のことは一流の会社を調べるのが一番!ということで海外15社(18種)、国…

レイトレ本書評10連発

このポストはレイトレ合宿2アドベントカレンダーの10回目です。 皆さん、レイとばしてますか?なんと残り時間も12日というわずかなものになってきました。あれほど沢山時間はあったのに、いったいどこへ消えてしまったのでしょうか?それは誰にもわかり…

表面化散乱の実装とかについて

コメント欄で表面化散乱の話があったので簡単に書いておきます。(一か月くらい前ですね。すいません。あまりこっちのブログは見てないのでツイッターとかのほうが反応は良いです) 表面化散乱とは、物体に侵入した光が物体内部で散乱を繰り返し、別の場所か…

Precomputed Radiance Trasnferのメモ

マイクロソフト(当時)のSloan氏が発表したPrecomputed Radiance Trasnfer(事前計算済み放射輝度伝達)の簡易的なメモ。リアルタイムに相互反射や無限遠からの環境マップによるImage Based Lightingを考慮したライティングを行うのはかなり大変である。こ…

シャドウマップのメモ

シャドウマップの自分用メモ。シャドウマップによるアルゴリズムは無数にあるが、基本的には光源側からシーンをレンダリング、光源からの深度値をシャドウマップと呼ばれるデータ構造に保存し、その値を視点側からシーンをレンダリングするときに参照しなが…

法線の変換の話

オブジェクトの頂点をモデル座標系からワールド座標系に移すときに法線も一緒に変換する必要がある。 たとえば、シェーディングするときは法線が必要になるが、たいていライトはワールド座標系に存在しているため、法線もワールド座標系に移す必要がある。 …

CG系講義まとめ

アメリカの有名大学とかのCG系講義ページをまとめました。 Stanford University Courses in Graphics http://graphics.stanford.edu/courses/ CS 248: Interactive Computer Graphics 資料多め https://graphics.stanford.edu/wikis/cs248-11-winter/ CS 3…

コンピュータ科学、情報科学分野教科書的書籍まとめ

まとめました。集合知期待。http://kagamin.net/cst/index.php/%E6%95%99%E7%A7%91%E6%9B%B8%E3%81%BE%E3%81%A8%E3%82%81

たのしいレンダリング

ツイッターのほうですでに公開しましたが一応こっちにも書いておきます。各種レンダリングアルゴリズムを実装して一か所にまとめました。全部Githubでソース公開してます。http://kagamin.net/hole/simple/index.htmパストレーシング、双方向パストレーシン…

たのしいメトロポリス法のメモ

適当なメモなので間違っていたら突っ込んでくださいMetropolis法でレンダリングするのが最近ますます流行っているらしいです。SIGGRAPH2012のQuasi-Monte CarloのコースでもMetropolis Light Transportとかが話題になってたみたいです。https://sites.google…

たのしいTumblr

というわけで大昔に作っていたTumblrアカウントを復活させてたのしく使っていくことにしました。http://h013.tumblr.com/

AO BenchをGo言語に移植しました

AO Bench(http://code.google.com/p/aobench/)というAmbient Occlusionによるレンダリングを行うベンチマークがあり、結構いろんな言語に移植されてるのですが、Go言語版がなかったので移植しました。 Core2の2.66GHzで7.8 secといったところでした。前のO…

論文執筆メモ

短く、簡潔で、わかりやすい文章を並べる。 妄想を書かない。 主張を書いたらかならずそれを証明する文章も書かなければならない。 客観的に書く(技術論文なので) 技術論文では, 客観的事実のみ書く くどくどと同じような内容を書かない Andで文章をはじめ…

TokyoDemoFest2012に参加しました

昨年、日本初のオフラインデモパーティということで行われたTokyoDemoFest2011でしたが、今年もめでたく開催となりました。 しかも、場所は秋葉原MOGRA、日程は二日間と前回より大幅にグレードアップした形でした。 僕もオーガナイザーの一人として、また、…

GAで習作作ったので公開したりしました

課題でGA使って何かつくれーっていわれたので何か作りました。 こんな感じ。 個体が九個表示されるので、好きなのを選ぶと、それを親にして新しい形状の個体を作ります。 まあ、人間が評価関数をやる感じの適当なGAですね。淘汰のプロセスとかは結構適当です…

AO BenchをOCamlに移植しました

AO Bench(http://code.google.com/p/aobench/)というAmbient Occlusionによるレンダリングを行うベンチマークがあり、結構いろんな言語に移植されてるのですが、OCaml版がなかったので移植しました。 ocamloptでコンパイル、Core2の2.66GHzで6.6 secといっ…

Line Space Gathering for Single Scattering in Large Scenesを読んでちょっと実装しました

さて、私は今学部でいろいろな研究室を回り、論文を読んでは実装するという課題を行っているのですが、初回の課題はSIGGRAPH2010の論文、Line Space Gathering for Single Scattering in Large Scenesを読みました。この論文はレンダラ系論文で、何らかの媒…

C++で画像とか入出力のまとめ

最近CGとかやってるんですが、結果画像を画像ファイルで保存したりしたいわけです。 まあ、適当にやるならPPMとかでもいいんですけど、PNGとかで保存したいなあ、という需要もあるわけですね。 そこで、マルチプラットフォームっぽいC++用の画像入出力ライブ…

Structure-based ASCII Art

SIGGRAPH2010の論文、Structure-based ASCII Artを実装しました。この手法は、画像の濃淡を利用したTone-basedにアスキーアートを生成する手法に対して、画像の形を利用してアスキーアートを生成するというものです。手法の概要は以下のようでした。 最終的…

Ubuntuで解像度とか登録する方法

cvt 1600 1200 xrandr --newmode "1600x1200_60.00" 161.00 1600 1712 1880 2160 1200 1203 1207 1245 -hsync +vsync xrandr --addmode VGA1 1600x1200_60.00

OCamlでクイックソートの末尾再帰

http://d.hatena.ne.jp/maoe/20060130 というCPS変換を使ったSchemeによるクイックソートの末尾再帰実装を見つけたので、OCamlで再実装してみました。 let rec qsort lst cont = match lst with | [] -> cont [] | x::xs -> let left = filter (fun a -> a <…

IKADIUSとかイカディウスとかを公開しました

前回の記事で書いたとおり、IKADIUSを公開いたしました。以下からどうぞ。 http://kagamin.net/hole/ikadius.htm経緯などはリンク先を見ていただくとして、ここではちょっと技術的な話とかを書いておきます。まず、元のコードがmin-camlであり、それをWindow…

プロセッサ・コンパイラ実験記(あるいはCPU実験記)

id:sukai1989が書いていたので。彼とは同じ班だったので、彼の記事(http://d.hatena.ne.jp/sukai1989/20110311)を読めば、まあ、全てがわかりますが、色々とだらだら書いておきます。主に僕のやったことを中心に書くので、CPU実験全体についてはsukaiさんの…

λ計算のλの由来

ちょっと気になったので調べてみました。 とりあえず、以下の論文が有用な情報源になりました。 History of Lambda-calculus and Combinatory Logic http://www-maths.swan.ac.uk/staff/jrh/papers/JRHHislamWeb.pdf これによると、RussellとWhiteheadのクラ…

ActionScript3.0でYコンビネータを実装

まあタイトルどおりですね。ASはちゃんと無名関数とかあるので楽です。基本的には以下のSchemeコードを移植する感じです。 http://www.loveruby.net/ja/misc/ycombinator.html package { import flash.display.Sprite; public class Main extends Sprite { p…

TokyoDemoFest 2011に参加したよ

去る2011年1月8日、日本で初の公式オフラインデモパーティTokyoDemoFest2011が開かれました。 私も、発表を行ったり作品を出したりさせていただきました。 正直、最初は誰がくるんだーって感じでしたが、いつのまにかどんどん参加者は増え、当日もなかなかの…