Upgrade to Pro — share decks privately, control downloads, hide ads and more …

レイトレーシングとGoroutine

 レイトレーシングとGoroutine

Takumasa Sakao

December 18, 2018
Tweet

More Decks by Takumasa Sakao

Other Decks in Programming

Transcript

  1. 自己紹介 • @sachaos (サカオスと読みます) – Twitter, GitHub もこれでやってます。 – フォローしてくれると嬉しいです。

    • 所属: 株式会社アカツキ – 新卒 3 年目 – 技術基盤開発 – 主に GAE/Go を触っています。 – Go エンジニア募集中です。
  2. レイトレーシングとは? • 3D を描画する手法の一つ。 • Pros – 光の反射を綺麗に描画できる。 – アルゴリズムが直感的。

    • Cons – 非常に計算時間がかかる • リアルタイムに描画しなければならないゲームではあまり使われていない • 映画など予め描画して映像を作成できれば済むようなものに使用される
  3. そもそも 我々はどのようにして物を”視る“のか? 僕は赤を強く 反射する 赤い そもそも 我々はどのようにして物を”視る“のか? • 光源が光を発する •

    光は空間内の物体にぶつかったら反射・屈折する • 反射・屈折してたまたま目に入った光から 情報を結合して物を認識する。
  4. Go を使うメリット • 標準パッケージで十分書ける – image/png で PNG を吐き出したりがシュッとできる。 –

    ベクトル計算は筋肉で書きました。 • レイトレーシングは並行処理が可能 – Goroutine で計算することができる! – (補足: 本来は GPU で並列計算します)
  5. Go で書いた感想 • シュッと Goroutine が決まると気持ちいい • 標準パッケージだけでも こんなに遊べるので Go

    は楽しい • 演算子オーバーロードできないのは ベクトル演算の時に若干辛かった