Aqoole_Hateenaの技術日記

vulkan+raytraceで色々描いてます

Vulkan Ray Tracing

caustics map

youtu.be caustics mapという言葉はないかもしれませんが、今回はcausticsの強さを事前に計算するパイプラインを作成し、caustics map作成後rendering用のパイプラインでそれを使用するという方式で実装しました。 caustics mapパイプライン causticsの強さ…

夜の波の表現2

youtu.be 前回のものはcaustics部分の光の強度の計算が間違っており、水が透過しないというか、光が強すぎて水の表面しか見えない状態になってました。 今回は新たに修正したのと、一方向から風が吹いているように表現してみました。あとyoutube動画を埋め込…

夜の砂浜

youtu.be夜をイメージしたものに変更すると思ったより綺麗に描けました。 水面上に見えない光源があるイメージで、水が反射したものだけが見えています。 、、、が、YouTubeでみるとあまり綺麗に見えませんね。プログラム面で言えば前回からの更新はほとんど…

水の表現の挑戦 海のcausticsを表現したい

youtu.be波の高さを穏やかにし、water causticsをすこし目立たさせてみました。 water causticsとは水面の底に現れる模様のことです。内部のプログラム的に負荷軽減を色々行い、横長で描画面積を広げています。 AMDの6900XTという現状ではAMDのGPUで最も良い…

水に色をつける

youtu.be波に色を付けたのと、底面のcausticsの色を白ではなく、波の色とmixするようにしてみた。 色はRGBで(0, 255, 192)としています。何かの記事を見ながらこの色に決めたのですが、忘れてしまいました。 Google で 「rgb 0 255 192」とするとこんな感じ…

水の表現の挑戦 IMGUIの導入

youtu.be砂浜のテクスチャを適当に貼り付けてそれっぽくしてみた。 光の反射の面が本来は水底に描いているはずなのに、動画にすると水面上に書かれているように見えるので、ここは改善点。今回からデバッグ用にIMGUIというツールを導入してみた。 インストー…

水の表現の挑戦 波の表現について2

youtu.be 後ろからの図 youtu.be 横からの図 youtu.be 波の表現、といいますか波の高さの計算について考察・改良しました。 最初はGerstner waveについて調べていたのですが、上記例はそれを参考にしつつ計算式自体は少し変形させたものを使用しています。 …

水の表現の挑戦 multi threadで波の計算を高速化した話

描画される波形は前回から変わっていないが、ずっと気になっていたmulti threadで波のポリゴン(頂点のy座標、高さ)の計算を高速化してみた。 std::thread 使うライブラリはstd::threadです。 #include <thread> でインクルードできます。 使い方 詳しくは thread - c</thread>…

Simple Water Caustics

youtu.be youtu.be youtu.be Vulkan Ray TracingでWater Causticsを書いてみました。Water Causticsとは水面の底にできる光の模様のことです。正確には光りの屈折でできあがる様々な模様のことのようです。 コースティクス - Wikipedia 水面の波の式 様々な…

水の表現の挑戦 波の表現について

上からの図 youtu.be 横からの図 youtu.be 高さが激しい図 youtu.be 高さが激しい場合に若干本当にこのように見えるか疑問が残るが、シンプルな波を起こした場合の屈折と反射をray traceで表現してみた。横から覗いた場合、水面だけを取り出して見ているので…

水の表現の挑戦

グラフィクスといえば水の表現!!(個人的意見) ということで vulkan ray tracingで挑戦してみました。 結果はこちらyoutu.be 前回に引き続いて、反射/屈折の部分はガラスキューブと同じです。 ブログということなので、実装するまでで気になったことや工夫…

ガラスキューブの描画 反射と屈折

Ray tracingの環境が整ったのならば、一度はやってみたいガラスや水の透過、反射、屈折。 ということでvulkan ray tracingでガラスキューブで反射と屈折の描画をしてみたので、その間に調べたことや難しかった点などをまとめておきます。 (一番躓いた点は法…