43 static const uint32 INVALID_SLOT = 0xFFFFFFFF;
44 static const uint32 INVALID_SAMPLE = 0xFFFFFFFF;
64 const bool is_secondary_diffuse,
65 const float cone_radius,
75 const uint32 nee_slot,
82 mesh_light.
sample(z, &light_vertex->prim_id, &light_vertex->uv, light_vertex_geom, light_pdf, light_edf);
83 return INVALID_SAMPLE;
90 const uint32 prev_nee_slot,
97 mesh_light.
map(triId, uv, light_vertex_geom, light_pdf, light_edf);
104 const uint32 nee_slot,
105 const uint32 nee_sample,
FERMAT_HOST_DEVICE DirectLightingMesh(const MeshLight _mesh_light)
Definition: direct_lighting_mesh.h:54
FERMAT_DEVICE uint32 sample(const uint32 nee_slot, const float z[3], VertexGeometryId *light_vertex, VertexGeometry *light_vertex_geom, float *light_pdf, Edf *light_edf)
Definition: direct_lighting_mesh.h:74
Definition: direct_lighting_mesh.h:41
FERMAT_DEVICE uint32 preprocess_vertex(const RenderingContextView &renderer, const EyeVertex &ev, const uint32 pixel, const uint32 bounce, const bool is_secondary_diffuse, const float cone_radius, const cugar::Bbox3f scene_bbox)
Definition: direct_lighting_mesh.h:59
FERMAT_HOST_DEVICE void map(const uint32_t prim_id, const cugar::Vector2f &uv, VertexGeometry *geom, float *pdf, Edf *edf) const
Definition: lights.h:584
FERMAT_DEVICE void map(const uint32 prev_nee_slot, const uint32 triId, const cugar::Vector2f uv, const VertexGeometry light_vertex_geom, float *light_pdf, Edf *light_edf)
Definition: direct_lighting_mesh.h:89
Definition: bpt_utils.h:583
FERMAT_DEVICE void update(const uint32 nee_slot, const uint32 nee_sample, const cugar::Vector3f w, const bool occluded)
Definition: direct_lighting_mesh.h:103
FERMAT_HOST_DEVICE bool sample(const float *Z, uint32_t *prim_id, cugar::Vector2f *uv, VertexGeometry *geom, float *pdf, Edf *edf) const
Definition: lights.h:521
Definition: renderer_view.h:80
FERMAT_HOST_DEVICE DirectLightingMesh()
Definition: direct_lighting_mesh.h:49