LoginSignup
0
0

More than 1 year has passed since last update.

フルスクリーンでレイマーチ(RayMarching)

Last updated at Posted at 2022-07-30

環境

Unity2021.3.4f1

概要

フルスクリーンでRayMarchingをやってみました。
この10個のメタボールからなる形状とその影はRayMarchingで描画しています。黄色の床はUnityのPlaneのGameObjectです。

「3D Objects > Quad」でQuadを作成して、カメラの階層に置き、このシェーダのマテリアルを設定すれば動作すると思います。

Clusterのワールドクラフトで実装してみました。

Clusterでは自作スクリプトを動作させることができないのでシェーダで全部やっています。
デスクトップ版でしか試してないのでVRだとまともに見えないかも知れません。


ここに全コード記載しています。

頂点シェーダでは以下で視錐台(ニアクリップ面)のコーナーのワールド座標を求めています。

float4 posWS = mul(inverse(UNITY_MATRIX_VP), o_pos);

影の描画パスのためにカメラ位置も同じような感じで求めています。_WorldSpaceCameraPosは使用していません。

inline float3 GetCameraPos()
{
	//_WorldSpaceCameraPosを使用しない
	//影描画の時はカメラ位置はライト位置になってほしい為
	float3 cpos = mul(inverse(UNITY_MATRIX_V), float4(0, 0, 0, 1)).xyz;
	return cpos;
}

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0