/* SPDX-License-Identifier: Apache-2.0 * Copyright 2011-2022 Blender Foundation */ #define WITH_OSL /* Copy of the regular OptiX kernels with additional OSL support. */ #include "kernel/device/optix/kernel_shader_raytrace.cu" #include "kernel/bake/bake.h" #include "kernel/integrator/shade_background.h" #include "kernel/integrator/shade_light.h" #include "kernel/integrator/shade_shadow.h" #include "kernel/integrator/shade_volume.h" extern "C" __global__ void __raygen__kernel_optix_integrator_shade_background() { const int global_index = optixGetLaunchIndex().x; const int path_index = (kernel_params.path_index_array) ? kernel_params.path_index_array[global_index] : global_index; integrator_shade_background(nullptr, path_index, kernel_params.render_buffer); } extern "C" __global__ void __raygen__kernel_optix_integrator_shade_light() { const int global_index = optixGetLaunchIndex().x; const int path_index = (kernel_params.path_index_array) ? kernel_params.path_index_array[global_index] : global_index; integrator_shade_light(nullptr, path_index, kernel_params.render_buffer); } extern "C" __global__ void __raygen__kernel_optix_integrator_shade_surface() { const int global_index = optixGetLaunchIndex().x; const int path_index = (kernel_params.path_index_array) ? kernel_params.path_index_array[global_index] : global_index; integrator_shade_surface(nullptr, path_index, kernel_params.render_buffer); } extern "C" __global__ void __raygen__kernel_optix_integrator_shade_volume() { const int global_index = optixGetLaunchIndex().x; const int path_index = (kernel_params.path_index_array) ? kernel_params.path_index_array[global_index] : global_index; integrator_shade_volume(nullptr, path_index, kernel_params.render_buffer); } extern "C" __global__ void __raygen__kernel_optix_integrator_shade_shadow() { const int global_index = optixGetLaunchIndex().x; const int path_index = (kernel_params.path_index_array) ? kernel_params.path_index_array[global_index] : global_index; integrator_shade_shadow(nullptr, path_index, kernel_params.render_buffer); } extern "C" __global__ void __raygen__kernel_optix_shader_eval_displace() { KernelShaderEvalInput *const input = (KernelShaderEvalInput *)kernel_params.path_index_array; float *const output = kernel_params.render_buffer; const int global_index = kernel_params.offset + optixGetLaunchIndex().x; kernel_displace_evaluate(nullptr, input, output, global_index); } extern "C" __global__ void __raygen__kernel_optix_shader_eval_background() { KernelShaderEvalInput *const input = (KernelShaderEvalInput *)kernel_params.path_index_array; float *const output = kernel_params.render_buffer; const int global_index = kernel_params.offset + optixGetLaunchIndex().x; kernel_background_evaluate(nullptr, input, output, global_index); } extern "C" __global__ void __raygen__kernel_optix_shader_eval_curve_shadow_transparency() { KernelShaderEvalInput *const input = (KernelShaderEvalInput *)kernel_params.path_index_array; float *const output = kernel_params.render_buffer; const int global_index = kernel_params.offset + optixGetLaunchIndex().x; kernel_curve_shadow_transparency_evaluate(nullptr, input, output, global_index); }