一般にジーエルエスエルと呼ばれているシェーダを記述するための言語。系で利用されており、複数のバージョンがある。marchingいわゆるレイトレーシングの技法のうちのひとつ。レイの長さを少しずつ伸ばしながら、オブジェクトとの衝突判定を行いレンダリングする方法。marchingいわゆるレイトレーシングの技法のうちのひとつ。レイの長さを少しずつ伸ばしながら、オブジェクトとの衝突判定を行いレンダリングする方法。いうこっちゃ!?そもそもレイトレーシングって......そもそもレイトレーシングって......レイトレーシングといっても様々な技法・実装がある。原始的なとある方法の場合、たとえば現実世界とは逆の経路で光の軌跡を辿る。そもそもレイトレーシングって......レイトレーシングといっても様々な技法・実装がある。原始的なとある方法の場合、たとえば現実世界とは逆の経路で光の軌跡を辿る。目の位置から視線を追っていくことで、オブジェクトがどのように見えるはずなのかを調べる。そもそもレイトレーシングって......レイトレーシングといっても様々な技法・実装がある。原始的なとある方法の場合、たとえば現実世界とは逆の経路で光の軌跡を辿る。目の位置から視線を追っていくことで、オブジェクトがどのように見えるはずなのかを調べる。わからんから図解!現実世界の光の軌道イメージ光がオブジェクトに反射して届く。光の軌道を逆に辿っていき、どのように見えるか計算する。レイマーチングの場合は......レイマーチングの場合は......レイマーチングの場合もいくつかの実装方法がある。レイマーチングの場合は......レイマーチングの場合もいくつかの実装方法がある。今回紹介する方法の場合、レイを飛ばすところまでは先ほどと同じ。レイを段階的に伸ばしていきオブジェクトとの衝突を判定する。レイマーチングの場合は......レイマーチングの場合もいくつかの実装方法がある。今回紹介する方法の場合、レイを飛ばすところまでは先ほどと同じ。レイを段階的に伸ばしていきオブジェクトとの衝突を判定する。伸ばす単位はオブジェクトまでの最短距離。6要するに?要するに?レイマーチングでは、この最短距離を指標としてオブジェクトを認識する。要するに?レイマーチングでは、この最短距離を指標としてオブジェクトを認識する。最短距離が十分に小さくなった時点でレイの先端が衝突しているとみなす。要するに?レイマーチングでは、この最短距離を指標としてオブジェクトを認識する。最短距離が十分に小さくなった時点でレイの先端が衝突しているとみなす。functionレイの先端とオブジェクト間での最短距離を返す関数。functionレイの先端とオブジェクト間での最短距離を返す関数。この関数を工夫することで、様々な形状を描くことができる。functionレイの先端とオブジェクト間での最短距離を返す関数。この関数を工夫することで、様々な形状を描くことができる。functionレイの先端とオブジェクト間での最短距離を返す関数。この関数を工夫することで、様々な形状を描くことができる。sphereSize;}引数にはレイの先端の座標を渡す。sphereSize;}引数にはレイの先端の座標を渡す。カテゴリで使っているものと同じものを利用。カテゴリで使っているものと同じものを利用。http://wgld.org/d/glsl/描画はフラグメントシェーダのみで行う。カテゴリで使っているものと同じものを利用。http://wgld.org/d/glsl/描画はフラグメントシェーダのみで行う。今回はフラグメントシェーダのソースを見ながら解説。使ったレイマーチングを実装する。使ったレイマーチングを実装する。使ったレイマーチングを実装する。レイマーチングは徐々にレイを伸ばしていく処理なので......シェーダ内にループ構造を作る必要がある。使ったレイマーチングを実装する。レイマーチングは徐々にレイを伸ばしていく処理なので......シェーダ内にループ構造を作る必要がある。