7#ifndef PXR_IMAGING_PLUGIN_HD_EMBREE_LIGHT_H
8#define PXR_IMAGING_PLUGIN_HD_EMBREE_LIGHT_H
13#include "pxr/imaging/hd/light.h"
15#include <embree4/rtcore_common.h>
16#include <embree4/rtcore_geometry.h>
21PXR_NAMESPACE_OPEN_SCOPE
100struct HdEmbree_UnknownLight
102struct HdEmbree_Cylinder
123struct HdEmbree_Sphere
128using HdEmbree_LightVariant = std::variant<
129 HdEmbree_UnknownLight,
136struct HdEmbree_LightTexture
138 std::vector<GfVec3f> pixels;
143struct HdEmbree_Shaping
147 float coneAngle = 180.0f;
148 float coneSoftness = 0.0f;
151struct HdEmbree_LightData
157 HdEmbree_LightTexture texture;
158 float intensity = 1.0f;
159 float diffuse = 1.0f;
160 float exposure = 0.0f;
161 float colorTemperature = 6500.0f;
162 bool enableColorTemperature =
false;
163 HdEmbree_LightVariant lightVariant;
164 bool normalize =
false;
166 HdEmbree_Shaping shaping;
169class HdEmbree_Light final :
public HdLight
178 HdDirtyBits* dirtyBits)
override;
187 HdEmbree_LightData
const& LightData()
const {
191 bool IsDome()
const {
192 return std::holds_alternative<HdEmbree_Dome>(_lightData.lightVariant);
196 HdEmbree_LightData _lightData;
200PXR_NAMESPACE_CLOSE_SCOPE
Stores a 3x3 matrix of float elements.
Stores a 4x4 matrix of float elements.
Basic type for a vector of 3 float components.
HdEmbreeRenderer implements a renderer on top of Embree's raycasting abilities.
A light model, used in conjunction with HdRenderPass.
The HdRenderParam is an opaque (to core Hydra) handle, to an object that is obtained from the render ...
Adapter class providing data exchange with the client scene graph.
virtual HD_API void Finalize(HdRenderParam *renderParam)
Finalizes object resources.
virtual HdDirtyBits GetInitialDirtyBitsMask() const =0
Returns the minimal set of dirty bits to place in the change tracker for use in the first sync of thi...
virtual void Sync(HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits)=0
Synchronizes state from the delegate to this object.
A path value used to locate objects in layers or scenegraphs.
Token for efficient comparison, assignment, and hashing of known strings.