69 lines
2.6 KiB
Plaintext
69 lines
2.6 KiB
Plaintext
/* SPDX-FileCopyrightText: 2019, NVIDIA Corporation
|
|
* SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0 */
|
|
|
|
// clang-format off
|
|
#include "kernel/device/optix/compat.h"
|
|
#include "kernel/device/optix/globals.h"
|
|
|
|
#include "kernel/device/gpu/image.h" /* Texture lookup uses normal CUDA intrinsics. */
|
|
|
|
#include "kernel/tables.h"
|
|
|
|
#include "kernel/integrator/state.h"
|
|
#include "kernel/integrator/state_flow.h"
|
|
#include "kernel/integrator/state_util.h"
|
|
|
|
#include "kernel/integrator/intersect_closest.h"
|
|
#include "kernel/integrator/intersect_shadow.h"
|
|
#include "kernel/integrator/intersect_subsurface.h"
|
|
#include "kernel/integrator/intersect_volume_stack.h"
|
|
#include "kernel/integrator/intersect_dedicated_light.h"
|
|
// clang-format on
|
|
|
|
extern "C" __global__ void __raygen__kernel_optix_integrator_intersect_closest()
|
|
{
|
|
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_intersect_closest(nullptr, path_index, kernel_params.render_buffer);
|
|
}
|
|
|
|
extern "C" __global__ void __raygen__kernel_optix_integrator_intersect_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_intersect_shadow(nullptr, path_index);
|
|
}
|
|
|
|
extern "C" __global__ void __raygen__kernel_optix_integrator_intersect_subsurface()
|
|
{
|
|
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_intersect_subsurface(nullptr, path_index);
|
|
}
|
|
|
|
extern "C" __global__ void __raygen__kernel_optix_integrator_intersect_volume_stack()
|
|
{
|
|
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_intersect_volume_stack(nullptr, path_index);
|
|
}
|
|
|
|
extern "C" __global__ void __raygen__kernel_optix_integrator_intersect_dedicated_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_intersect_dedicated_light(nullptr, path_index);
|
|
}
|