54 typedef std::vector<RixChannelId>
ChanIdVec;
225 virtual void IncRef() = 0;
228 virtual void DecRef() = 0;
244 const int integratorCtxIdx,
const RtColorRGB* lgtTrans,
245 const float clamp,
const bool isFinite,
247 const bool isHoldout)
const = 0;
276 int integratorCtxIndex,
287 bool writeOpacityAllowed =
true);
304 bool isHoldout =
false);
318 bool isHoldout =
false);
346 bool isHoldout =
false);
401 PRMAN_INLINE RixLPEScatterEvent(
bool isReflect,
bool isUser,
402 bool isSpecular,
unsigned char lpeId);
427 unsigned char m_lpeId;
428 unsigned char m_lpeIndex;
449 std::vector<short>& GetState();
450 const std::vector<short>& GetState()
const;
451 void SetState(
const std::vector<short>& state);
498 void MoveEmissiveObject(
524 bool firstContribution,
571 bool doStateTransition =
true);
virtual RtUString TokenToString(RixLPEToken token) const =0
static PRMAN_INLINE RixLPEToken LgtGrpIdToToken(int lightGroupId)
Convert an integer light group id to an LPE token.
pxrcore::ColorRGB RtColorRGB
virtual int GetRefCnt() const =0
virtual RixLPEToken GroupAndObjectToToken(RtUString lpeGroup, RtUString objName) const =0
This struct represents the characteristics of just one lobe of a bxdf.
virtual void Splat(const RixLPEState &accum, RixDisplayServices *dspy, const RtColorRGB &val, const int integratorCtxIdx, const RtColorRGB *lgtTrans, const float clamp, const bool isFinite, const OverwritePolicy overwritePolicy, const bool isHoldout) const =0
PRMAN_INLINE void SplatPerLobe(RixBXActiveLobeWeights &activeLobes, int weightIndex, RtColorRGB const &thruput, bool isFinite, float clamp=1.0f, bool isHoldout=false)
PRMAN_INLINE void SplatLPE(RtColorRGB const &val, RtColorRGB const *lightTrans, bool isFinite, float clamp, int lpeId=-1, OverwritePolicy overwritePolicy=k_Overwrite, bool isHoldout=false)
std::vector< RixChannelId > ChanIdVec
static const int k_baseLgtGrpTokenOffset
PRMAN_INLINE ~SplatHelper()
pxrcore::UString RtUString
PRMAN_INLINE void SplatEmission(RtColorRGB const &emission, RtColorRGB const &thruput, bool isFinite, float clamp=1.0f, bool isHoldout=false)
RixDisplayServices * m_displaySvc
PRMAN_INLINE void SplatValue(RtColorRGB const &color, bool isFinite, float clamp=1.0f)
PRMAN_INLINE bool AnyLPEs() const
PRMAN_INLINE void SplatBeauty(RtColorRGB const &val, RtColorRGB &trans) const
RixLPEToken m_lgtLpeToken
virtual RixLPEToken StringToToken(RtUString str) const =0
bool m_writeOpacityAllowed
RixChannelId m_beautyChanId
PRMAN_INLINE SplatHelper(RixDisplayServices *displaySvc, int integratorCtxIndex, RixLPE &rixLpe, RixLPEState &state, int depth, RixLPEToken lightLpeToken, RixLPEToken lpeGroupId, bool isReflect, RtColorRGB const &eyeTrans, RtColorRGB const &lightTrans, RixShadingContext const *shadingCtx, int shadingCtxIndex, bool writeOpacityAllowed=true)
virtual void FreeStates(int count, RixLPEState *states)=0
unsigned int RixChannelId
PRMAN_INLINE bool AnyCustomLPEs() const
RixShadingContext const * m_sCtx
virtual RixLPEState * AllocateStates(int count)=0