前から気になってたんだけどようやくできた。 レイマーチングはレイトレーシングの一種で、ポリゴンを使わない3D描画である。コードはこちら。CustomRenderTargetは使っておらず、通常のShaderで描画している。 レイマーチングの仕掛け まあ、難しい話は適当に検索してくれれば出てくるとは思うが、例えばシェーダだけで世界を創る!three.jsによるレイマーチングなどを見てもらうと丁寧に説明されている。 最も簡単な例としては、球体を(0,0,0)を中心に配置して、カメラ(レイの初期位置)からの距離を算出して、半径を引くと、カメラから物体表面までの距離になる。この距離のぶんだけレイを前に進める。レイの向きが球体の中心ぴったりだとこれで表面まで到達して距離0になるが、ちょっとでもズレていると表面に届かないことになるので、それを何度か繰り返すことによって、限りなく表面に近い位置まで進める