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
97struct HdEmbree_UnknownLight
99struct HdEmbree_Cylinder
116struct HdEmbree_Sphere
121using HdEmbree_LightVariant = std::variant<
122 HdEmbree_UnknownLight,
128struct HdEmbree_LightTexture
130 std::vector<GfVec3f> pixels;
135struct HdEmbree_Shaping
139 float coneAngle = 180.0f;
140 float coneSoftness = 0.0f;
143struct HdEmbree_LightData
149 HdEmbree_LightTexture texture;
150 float intensity = 1.0f;
151 float diffuse = 1.0f;
152 float exposure = 0.0f;
153 float colorTemperature = 6500.0f;
154 bool enableColorTemperature =
false;
155 HdEmbree_LightVariant lightVariant;
156 bool normalize =
false;
158 HdEmbree_Shaping shaping;
161class HdEmbree_Light final :
public HdLight
170 HdDirtyBits* dirtyBits)
override;
179 HdEmbree_LightData
const& LightData()
const {
184 HdEmbree_LightData _lightData;
188PXR_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.