WIP: eevee-next-world-irradiance #108304
|
@ -357,8 +357,12 @@ void PathTraceWorkCPU::guiding_push_sample_data_to_global_storage(
|
|||
# if PATH_GUIDING_LEVEL >= 2
|
||||
const bool use_direct_light = kernel_data.integrator.use_guiding_direct_light;
|
||||
const bool use_mis_weights = kernel_data.integrator.use_guiding_mis_weights;
|
||||
# if OPENPGL_VERSION_MINOR >= 5
|
||||
kg->opgl_path_segment_storage->PrepareSamples(use_mis_weights, use_direct_light, false);
|
||||
# else
|
||||
kg->opgl_path_segment_storage->PrepareSamples(
|
||||
false, nullptr, use_mis_weights, use_direct_light, false);
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifdef WITH_CYCLES_DEBUG
|
||||
|
|
|
@ -454,8 +454,13 @@ ccl_device_forceinline bool guiding_bsdf_init(KernelGlobals kg,
|
|||
ccl_private float &rand)
|
||||
{
|
||||
#if defined(__PATH_GUIDING__) && PATH_GUIDING_LEVEL >= 4
|
||||
# if OPENPGL_VERSION_MINOR >= 5
|
||||
if (kg->opgl_surface_sampling_distribution->Init(
|
||||
kg->opgl_guiding_field, guiding_point3f(P), rand)) {
|
||||
# else
|
||||
if (kg->opgl_surface_sampling_distribution->Init(
|
||||
kg->opgl_guiding_field, guiding_point3f(P), rand, true)) {
|
||||
# endif
|
||||
kg->opgl_surface_sampling_distribution->ApplyCosineProduct(guiding_point3f(N));
|
||||
return true;
|
||||
}
|
||||
|
@ -506,8 +511,13 @@ ccl_device_forceinline bool guiding_phase_init(KernelGlobals kg,
|
|||
return false;
|
||||
}
|
||||
|
||||
# if OPENPGL_VERSION_MINOR >= 5
|
||||
if (kg->opgl_volume_sampling_distribution->Init(
|
||||
kg->opgl_guiding_field, guiding_point3f(P), rand)) {
|
||||
# else
|
||||
if (kg->opgl_volume_sampling_distribution->Init(
|
||||
kg->opgl_guiding_field, guiding_point3f(P), rand, true)) {
|
||||
# endif
|
||||
kg->opgl_volume_sampling_distribution->ApplySingleLobeHenyeyGreensteinProduct(guiding_vec3f(D),
|
||||
g);
|
||||
return true;
|
||||
|
|
|
@ -766,12 +766,17 @@ class Texture : NonCopyable {
|
|||
return GPU_texture_height(tx_);
|
||||
}
|
||||
|
||||
int depth() const
|
||||
{
|
||||
return GPU_texture_depth(tx_);
|
||||
}
|
||||
|
||||
int pixel_count() const
|
||||
{
|
||||
return GPU_texture_width(tx_) * GPU_texture_height(tx_);
|
||||
}
|
||||
|
||||
bool depth() const
|
||||
bool is_depth() const
|
||||
{
|
||||
return GPU_texture_has_depth_format(tx_);
|
||||
}
|
||||
|
|
|
@ -940,6 +940,12 @@ int GPU_texture_width(const GPUTexture *texture);
|
|||
*/
|
||||
int GPU_texture_height(const GPUTexture *texture);
|
||||
|
||||
/**
|
||||
* Return the depth of \a tex . Correspond to number of layers for 2D array texture.
|
||||
* NOTE: return 0 for 1D & 2D textures.
|
||||
*/
|
||||
int GPU_texture_depth(const GPUTexture *texture);
|
||||
|
||||
/**
|
||||
* Return the number of layers of \a tex . Return 1 if the texture is not layered.
|
||||
*/
|
||||
|
|
|
@ -716,6 +716,11 @@ int GPU_texture_height(const GPUTexture *tex)
|
|||
return reinterpret_cast<const Texture *>(tex)->height_get();
|
||||
}
|
||||
|
||||
int GPU_texture_depth(const GPUTexture *tex)
|
||||
{
|
||||
return reinterpret_cast<const Texture *>(tex)->depth_get();
|
||||
}
|
||||
|
||||
int GPU_texture_layer_count(const GPUTexture *tex)
|
||||
{
|
||||
return reinterpret_cast<const Texture *>(tex)->layer_count();
|
||||
|
|
Loading…
Reference in New Issue