70 virtual float GetTime()
const = 0;
144 float const& inDistance)
198 void const** result)
const = 0;
205 bool isTransmissionRay,
352 void* instanceData) = 0;
373 void* instanceData) = 0;
382 #define RIX_LIGHTFACTORYCREATE \ 383 extern "C" PRMANEXPORT RixLightFactory* CreateRixLightFactory(RtUString const hint) 385 #define RIX_LIGHTFACTORYDESTROY \ 386 extern "C" PRMANEXPORT void DestroyRixLightFactory(RixLightFactory* factory) bool IsLocal() const
Definition: RixLight.h:166
Definition: RixPhotonGuiding.h:51
float & solidAngleToArea
Definition: RixLight.h:278
Generate the color for lights visible to the camera.
Definition: RixLight.h:334
Definition: RixLight.h:185
RixBXEvaluateDomain evalDomain
Definition: RixLight.h:131
RtVector3 & direction
Definition: RixLight.h:272
float & pdfEmit
Definition: RixLight.h:276
float const distance
Definition: RixLight.h:139
Definition: RixLight.h:175
RixLight This base class defines the interface for light sources.
Definition: RixLight.h:117
int & patchIndex
Definition: RixLight.h:270
RtColorRGB diffuseColor
Definition: RixLight.h:303
RixBXEvaluateDomain
The RixBxdf interface is a shading plugin responsible for creating a RixBxdf from the the ShadingCont...
Definition: RixBxdf.h:121
Definition: RixLight.h:182
virtual void GenerateSamples(RixLightContext const &lCtx, RixScatterPoint const &scatter, GenerateSamplesResults &results) const =0
Definition: RixLight.h:126
pxrcore::ColorRGB RtColorRGB
Definition: RiTypesHelper.h:520
#define k_RixShadingVersion
Definition: RixShading.h:97
RtColorRGB specularColor
Definition: RixLight.h:304
virtual void GenerateEmission(RixLightContext const &lCtx, GenerateEmissionResults &results) const =0
Rix interfaces are obtained from an RixContext.
Definition: RixInterfaces.h:172
Definition: RixLight.h:178
RixShadingPlugin is the base class for RixBxdfFactory, RixDisplacementFactory, RixDisplayFilter, RixIntegrator, RixLightFilter, RixLightFactory, RixPattern, RixProjection, and RixSampleFilter.
Definition: RixShading.h:168
RtColorRGB specularColor
Definition: RixLight.h:280
RtColorRGB cameraColor
Definition: RixLight.h:336
RtFloat3 const uvw
Definition: RixLight.h:137
Definition: RixLight.h:179
RtPoint3 & position
Definition: RixLight.h:320
RtFloat3 & UVW
Definition: RixLight.h:319
virtual bool Intersect(bool isTransmissionRay, float const rayTime, RtPoint3 const &rayOrigin, RtVector3 const &rayDirection, float &hitDistance, float &u, float &v, float &w, RtPoint3 &hitP, RtNormal3 &hitNn) const =0
float & solidAngleToArea
Definition: RixLight.h:302
virtual float GetTime() const =0
RtFloat3 RtPoint3
Definition: RiTypesHelper.h:70
bool IsInfinite() const
Definition: RixLight.h:167
virtual RixLight * Edit(RixContext &ctx, RtUString const name, RixParameterList const *pList, void *instanceData)=0
RixSamplePoint(int const &inPatchIndex, RtFloat3 const &inUvw, RtFloat3 const &inDirection, float const &inDistance)
Definition: RixLight.h:141
float RtFloat
Definition: ri.h:54
float & pdfEmitDirection
Definition: RixLight.h:277
RixSCDetail
RixSCDetail enumerates the valid sizing qualifiers for SC parameters.
Definition: RixShading.h:432
float & pdfEmitDirection
Definition: RixLight.h:325
float & pdfEmitDirection
Definition: RixLight.h:301
float & pdfEmit
Definition: RixLight.h:300
Definition: RixLight.h:183
virtual void EvaluateEmissionForCamera(RixLightContext const &lCtx, RixSamplePoint const &sample, RixScatterPoint const &scatter, EvaluateEmissionForCameraResults &results) const =0
virtual void GetCurrentToLightTransform(RtMatrix4x4 &lightToCurrent) const =0
RtFloat3 const direction
Definition: RixLight.h:138
RixLightFactory()
Definition: RixLight.h:378
Definition: RiTypesHelper.h:82
int const patchIndex
Definition: RixLight.h:136
float & pdfEmit
Definition: RixLight.h:324
float & pdfDirect
Definition: RixLight.h:274
RixParameterList exposes the non-varying values that are associated with the definition or editing of...
Definition: RixShading.h:575
Definition: RixLight.h:192
Type
Definition: RixLight.h:120
Definition: RixLight.h:134
pxrcore::Float3 RtFloat3
Definition: RiTypesHelper.h:69
Light Factory.
Definition: RixLight.h:364
Definition: RiTypesHelper.h:327
EvaluateSamples Given surface information, q, and ray hit information on this light source wo...
Definition: RixLight.h:296
RtVector3 & direction
Definition: RixLight.h:322
~RixLightFactory() override
Definition: RixLight.h:379
GenerateSamples() Generate samples, using data from the RixLightContext object:
Definition: RixLight.h:267
virtual void DestroyLight(RixLight const *light)=0
Definition: RixLight.h:181
RixLight(RixLightFactory const *lightFactory, Type type)
Definition: RixLight.h:154
Definition: RixLight.h:193
float & distance
Definition: RixLight.h:323
bool const isBidirectional
Definition: RixLight.h:275
RtNormal3 & normal
Definition: RixLight.h:305
virtual RixLight * CreateLight(RixContext &ctx, RtUString const name, RixParameterList const *pList, void *instanceData)=0
RtFloat3 RtNormal3
Definition: RiTypesHelper.h:73
virtual void EvaluateSamples(RixLightContext const &lCtx, RixSamplePoint const &sample, RixScatterPoint const &scatter, EvaluateSamplesResults &results) const =0
virtual void GetBounds(int &nPoints, RtPoint3 const *&points) const =0
Definition: RixLight.h:176
RtFloat3 & UVW
Definition: RixLight.h:271
RtPoint3 const scatterP
Definition: RixLight.h:128
RixLightContext()
Definition: RixLight.h:107
virtual RixSCDetail GetProperty(LightProperty prop, void const **result) const =0
virtual void GetSample4D(RtFloat2 &xy, RtFloat2 &zw) const =0
Definition: RixLight.h:186
Generate a sample on a light for photon emission.
Definition: RixLight.h:316
virtual RtFloat2 GetSample2D() const =0
Definition: RixLight.h:177
Definition: RixLight.h:122
RtVector3 const scatterV
Definition: RixLight.h:130
RixLightContext This class provides access to the rendering context during light sampling and evaluat...
Definition: RixLight.h:56
virtual void GetFromToTransform(RtUString from, RtUString to, const float time, RtMatrix4x4 &xform) const =0
bool const isBidirectional
Definition: RixLight.h:299
Definition: RixLight.h:191
pxrcore::Matrix4x4 RtMatrix4x4
Definition: RiTypesHelper.h:74
Definition: RixLight.h:180
RixPhotonGuiding const * GetPhotonGuiding() const
Public interface.
Definition: RixLight.h:64
Definition: RixLight.h:190
RtNormal3 & normal
Definition: RixLight.h:281
virtual ~RixLight()
Definition: RixLight.h:162
Definition: RixShading.h:115
Definition: RixLight.h:123
RixPhotonGuiding const * m_pPhotonGuiding
Definition: RixLight.h:110
virtual void GetLightToCurrentTransform(RtMatrix4x4 &lightToCurrent) const =0
LightProperty
Definition: RixLight.h:173
pxrcore::UString RtUString
Definition: RiTypesHelper.h:682
virtual float GetPowerEstimate(RtMatrix4x4 const &xform) const =0
GetPowerEstimate Returns an estimate of the power emitted by this light.
int GetInterface() const override
Definition: RixLight.h:367
virtual float GetIncidentRadianceEstimate(RtPoint3 const &P, RtMatrix4x4 const &lightToCurrent, RtMatrix4x4 const ¤tToLight) const =0
GetIncidentRadianceEstimate Returns an estimate of the radiance this light will return for a shading ...
float & distance
Definition: RixLight.h:273
RtColorRGB diffuseColor
Definition: RixLight.h:279
~RixLightContext() override
Definition: RixLight.h:108
Definition: RixLight.h:188
RtNormal3 const scatterN
Definition: RixLight.h:129
Definition: RixLight.h:184
RtNormal3 & normal
Definition: RixLight.h:321
virtual void GetWorldBBox(RtBBox &worldBBox) const =0
RtFloat3 RtVector3
Definition: RiTypesHelper.h:72
float & pdfDirect
Definition: RixLight.h:298
int & patchIndex
Definition: RixLight.h:318
Definition: RixLight.h:187
RixLightFactory const * m_lightFactory
Definition: RixLight.h:355