Initial commit: Minecraft 光追着色器包(从零实现的 path tracing)
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
// MinecraftPT — RTWSM Blur Importance
|
||||
// Gaussian-blurs the importance map to make the warp smooth.
|
||||
|
||||
#include "/Lib/Settings.glsl"
|
||||
#include "/Lib/Utilities.glsl"
|
||||
|
||||
const ivec3 workGroups = ivec3(32, 16, 1);
|
||||
layout (local_size_x = 32, local_size_y = 32) in;
|
||||
|
||||
layout (r32f) uniform writeonly image2D img_rtwImportance2D;
|
||||
|
||||
uniform sampler2D rtwImportance2D;
|
||||
|
||||
void main(){
|
||||
ivec2 texel = ivec2(gl_GlobalInvocationID.xy);
|
||||
|
||||
float importance = 0.0;
|
||||
float weightSum = 0.0;
|
||||
|
||||
int radius = int(RTW_BLUR_FACTOR);
|
||||
|
||||
for (int i = -radius; i <= radius; i++){
|
||||
for (int j = -radius; j <= radius; j++){
|
||||
vec2 coord = vec2(texel + ivec2(i, j)) / vec2(RTW_RESOLUTION, RTW_RESOLUTION_Y);
|
||||
float w = exp(-(i * i + j * j) / (2.0 * RTW_BLUR_FACTOR * RTW_BLUR_FACTOR));
|
||||
importance += textureLod(rtwImportance2D, coord, 0.0).r * w;
|
||||
weightSum += w;
|
||||
}}
|
||||
|
||||
imageStore(img_rtwImportance2D, texel, vec4(importance / weightSum));
|
||||
}
|
||||
Reference in New Issue
Block a user