1*c8dee2aaSAndroid Build Coastguard Workerlayout(local_size_x = 16, local_size_y = 16) in; 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Workerlayout(rgba32f, binding=0) writeonly texture2D dest; 4*c8dee2aaSAndroid Build Coastguard Worker 5*c8dee2aaSAndroid Build Coastguard Workervoid main () { 6*c8dee2aaSAndroid Build Coastguard Worker half4 pixel = half4(0.0, 0.0, 0.0, 1.0); 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker float max_x = 5.0; 9*c8dee2aaSAndroid Build Coastguard Worker float max_y = 5.0; 10*c8dee2aaSAndroid Build Coastguard Worker float x = (float(sk_GlobalInvocationID.x * 2 - textureWidth(dest)) / float(textureWidth(dest))); 11*c8dee2aaSAndroid Build Coastguard Worker float y = (float(sk_GlobalInvocationID.y * 2 - textureHeight(dest)) / float(textureHeight(dest))); 12*c8dee2aaSAndroid Build Coastguard Worker float3 ray_origin = float3(0.0, 0.0, -1.0); 13*c8dee2aaSAndroid Build Coastguard Worker float3 ray_target = float3(x * max_x, y * max_y, 0.0); 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker float3 sphere_center = float3(0.0, 0.0, -10.0); 16*c8dee2aaSAndroid Build Coastguard Worker float sphere_radius = 1.0; 17*c8dee2aaSAndroid Build Coastguard Worker 18*c8dee2aaSAndroid Build Coastguard Worker float3 t_minus_c = ray_target - sphere_center; 19*c8dee2aaSAndroid Build Coastguard Worker float b = dot(ray_origin, t_minus_c); 20*c8dee2aaSAndroid Build Coastguard Worker float c = dot(t_minus_c, t_minus_c) - sphere_radius * sphere_radius; 21*c8dee2aaSAndroid Build Coastguard Worker float bsqmc = b * b - c; 22*c8dee2aaSAndroid Build Coastguard Worker 23*c8dee2aaSAndroid Build Coastguard Worker if (bsqmc >= 0.0) { 24*c8dee2aaSAndroid Build Coastguard Worker pixel = half4(0.4, 0.4, 1.0, 1.0); 25*c8dee2aaSAndroid Build Coastguard Worker } 26*c8dee2aaSAndroid Build Coastguard Worker 27*c8dee2aaSAndroid Build Coastguard Worker textureWrite(dest, sk_GlobalInvocationID.xy, pixel); 28*c8dee2aaSAndroid Build Coastguard Worker} 29