【Unity】HDRPでカスタムポストプロセスを使う

投稿者: | 2021-03-16

HDRPでカスタムポストプロセスを使って画面をグレイスケールにしてみました。

まず、Projectウィンドウで右クリックから、Post Process Volumeとシェーダーを新規作成します。

シェーダーのCustomPostProcessメソッドの中身を変えて、グレースケールを返すようにします。

float4 CustomPostProcess(Varyings input) : SV_Target
{
	UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);

	uint2 positionSS = input.texcoord * _ScreenSize.xy;

	float3 outColor = LOAD_TEXTURE2D_X(_InputTexture, positionSS).xyz;

	return float4(lerp(outColor, Luminance(outColor).xxx, _Intensity), 1);		
}

参考:https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@10.4/manual/Custom-Post-Process.html

Post Process VolumeのkShaderNameにシェーダーのパスを入れます。

Edit > Project Settings…を開き、HDRP Default Settingsで、+ボタンからAfter Post Processにこれを追加します。

また、ヒエラルキーウィンドウで+ボタンから、ボリュームを新規作成します。

Add Overrideをクリックして、Post-processing > Customからボリュームにも追加します。

Intensityのチェックを入れると、スライダーでポストプロセスの効果を調節できるようになります。

プレイモードにして、スライダーを動かしてみました。

コメントを残す

メールアドレスが公開されることはありません。