63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# 编译
 | 
						||
1. 需要安装CUDA Toolkit 11.8。
 | 
						||
2. 添加系统变量,CUDA_PATH。数值为: "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.8";
 | 
						||
3. 生成解决方案后,
 | 
						||
 | 
						||
 | 
						||
# 移植到官方引擎
 | 
						||
1. 替换修改的引擎usf文件。
 | 
						||
2. 移除PostProcessTonemap.usf中的修改部分。
 | 
						||
	1. `tonemapping那里多加了一张图,从c++加的`
 | 
						||
 | 
						||
```hlsl
 | 
						||
void MainPS(
 | 
						||
	in noperspective float2 UV : TEXCOORD0,
 | 
						||
	in noperspective float2 InVignette : TEXCOORD1,
 | 
						||
	in noperspective float4 GrainUV : TEXCOORD2,
 | 
						||
	in noperspective float2 ScreenPos : TEXCOORD3,
 | 
						||
	in noperspective float2 FullViewUV : TEXCOORD4,
 | 
						||
	float4 SvPosition : SV_POSITION,		// after all interpolators
 | 
						||
	out float4 OutColor : SV_Target0
 | 
						||
#if OUTPUT_LUMINANCE
 | 
						||
	, out float OutLuminance: SV_Target1
 | 
						||
#endif
 | 
						||
	)
 | 
						||
{
 | 
						||
	float Luminance;
 | 
						||
	FGBufferData SamplerBuffer = GetGBufferData(UV * View.ResolutionFractionAndInv.x, false);
 | 
						||
	if (SamplerBuffer.CustomStencil > 1.0f && abs(SamplerBuffer.CustomDepth - SamplerBuffer.Depth) < 1)
 | 
						||
	{
 | 
						||
		OutColor = SampleSceneColor(UV);
 | 
						||
	}
 | 
						||
	else
 | 
						||
	{
 | 
						||
    	OutColor = TonemapCommonPS(UV, InVignette, GrainUV, ScreenPos, FullViewUV, SvPosition, Luminance);
 | 
						||
    }
 | 
						||
#if OUTPUT_LUMINANCE
 | 
						||
	OutLuminance = Luminance;
 | 
						||
#endif
 | 
						||
}
 | 
						||
```
 | 
						||
还原成原本样式:
 | 
						||
```
 | 
						||
void MainPS(
 | 
						||
	in noperspective float2 UV : TEXCOORD0,
 | 
						||
	in noperspective float2 InVignette : TEXCOORD1,
 | 
						||
	in noperspective float4 GrainUV : TEXCOORD2,
 | 
						||
	in noperspective float2 ScreenPos : TEXCOORD3,
 | 
						||
	in noperspective float2 FullViewUV : TEXCOORD4,
 | 
						||
	float4 SvPosition : SV_POSITION,		// after all interpolators
 | 
						||
	out float4 OutColor : SV_Target0
 | 
						||
#if OUTPUT_LUMINANCE
 | 
						||
	, out float OutLuminance: SV_Target1
 | 
						||
#endif
 | 
						||
	)
 | 
						||
{
 | 
						||
	float Luminance;
 | 
						||
	FGBufferData SamplerBuffer = GetGBufferData(UV * View.ResolutionFractionAndInv.x, false);
 | 
						||
	OutColor = TonemapCommonPS(UV, InVignette, GrainUV, ScreenPos, FullViewUV, SvPosition, Luminance);
 | 
						||
#if OUTPUT_LUMINANCE
 | 
						||
	OutLuminance = Luminance;
 | 
						||
#endif
 | 
						||
}
 | 
						||
``` |