![]() |
RenderMan
26.0
|
#include <RixPhotonGuiding.h>
Classes | |
class | BoundingBoxProjection |
Public Member Functions | |
PRMAN_INLINE | RixPhotonGuiding (float probability) |
PRMAN_INLINE void | setBoundingBox (const RtBBox &boundingBox, float enlarge=0.1f) |
PRMAN_INLINE const RtBBox & | getBoundingBox () const |
PRMAN_INLINE float | samplingPdf () const |
PRMAN_INLINE bool | isEnabled () const |
PRMAN_INLINE bool | pickPhotonGuiding (float &sample) const |
PRMAN_INLINE bool | canSample (const RtPoint3 &origin, const RtNormal3 &normal, bool onesided) const |
PRMAN_INLINE bool | canSample (const RtPoint3 &origin) const |
PRMAN_INLINE void | sampleDirection (const RtPoint3 &origin, const RtNormal3 &normal, const BoundingBoxProjection &bbp, float samplex, float sampley, RtVector3 &direction, float &cosTheta, float &pdf) const |
PRMAN_INLINE float | directionPdf (const RtPoint3 &origin, const BoundingBoxProjection &bbp, const RtVector3 &direction) const |
PRMAN_INLINE void | samplePosition (const BoundingBoxProjection &bbp, float samplex, float sampley, RtPoint3 &position, float &pdf) const |
PRMAN_INLINE float | positionPdf (const RtPoint3 &position, const BoundingBoxProjection &bbp) const |
PRMAN_INLINE float | MISAreaLightPdf (const RtPoint3 &position, const RtNormal3 &normal, const RtVector3 &direction, bool onesided, float dirPdf) const |
PRMAN_INLINE float | MISEnvLightPdf (const RtVector3 &dirToEnv, const RtPoint3 &posInScene, const RtPoint3 ¢er, float radius, float posPdf) const |
Static Public Member Functions | |
static PRMAN_INLINE void | computeOrthonormalBasis (RtVector3 &n, RtVector3 &s, RtVector3 &t) |
PRMAN_INLINE RixPhotonGuiding::RixPhotonGuiding | ( | float | probability) |
PRMAN_INLINE bool RixPhotonGuiding::canSample | ( | const RtPoint3 & | origin, |
const RtNormal3 & | normal, | ||
bool | onesided | ||
) | const |
Referenced by MISAreaLightPdf(), and MISEnvLightPdf().
PRMAN_INLINE bool RixPhotonGuiding::canSample | ( | const RtPoint3 & | origin) | const |
|
static |
Referenced by RixPhotonGuiding::BoundingBoxProjection::computeProjection(), and MISEnvLightPdf().
PRMAN_INLINE float RixPhotonGuiding::directionPdf | ( | const RtPoint3 & | origin, |
const BoundingBoxProjection & | bbp, | ||
const RtVector3 & | direction | ||
) | const |
References RixPhotonGuiding::BoundingBoxProjection::getPositionOnPlane(), RixPhotonGuiding::BoundingBoxProjection::isPositionOnPlane(), RixPhotonGuiding::BoundingBoxProjection::m_c, RixPhotonGuiding::BoundingBoxProjection::m_d, RixPhotonGuiding::BoundingBoxProjection::m_n, RixPhotonGuiding::BoundingBoxProjection::m_s, RixPhotonGuiding::BoundingBoxProjection::m_t, and RixPhotonGuiding::BoundingBoxProjection::projectionArea().
Referenced by MISAreaLightPdf().
PRMAN_INLINE const RtBBox & RixPhotonGuiding::getBoundingBox | ( | ) | const |
PRMAN_INLINE bool RixPhotonGuiding::isEnabled | ( | ) | const |
Referenced by MISAreaLightPdf(), and MISEnvLightPdf().
PRMAN_INLINE float RixPhotonGuiding::MISAreaLightPdf | ( | const RtPoint3 & | position, |
const RtNormal3 & | normal, | ||
const RtVector3 & | direction, | ||
bool | onesided, | ||
float | dirPdf | ||
) | const |
PRMAN_INLINE float RixPhotonGuiding::MISEnvLightPdf | ( | const RtVector3 & | dirToEnv, |
const RtPoint3 & | posInScene, | ||
const RtPoint3 & | center, | ||
float | radius, | ||
float | posPdf | ||
) | const |
PRMAN_INLINE bool RixPhotonGuiding::pickPhotonGuiding | ( | float & | sample) | const |
PRMAN_INLINE float RixPhotonGuiding::positionPdf | ( | const RtPoint3 & | position, |
const BoundingBoxProjection & | bbp | ||
) | const |
References RixPhotonGuiding::BoundingBoxProjection::isPositionOnPlane(), RixPhotonGuiding::BoundingBoxProjection::m_c, RixPhotonGuiding::BoundingBoxProjection::m_n, RixPhotonGuiding::BoundingBoxProjection::m_s, RixPhotonGuiding::BoundingBoxProjection::m_t, and RixPhotonGuiding::BoundingBoxProjection::projectionArea().
Referenced by MISEnvLightPdf().
PRMAN_INLINE void RixPhotonGuiding::sampleDirection | ( | const RtPoint3 & | origin, |
const RtNormal3 & | normal, | ||
const BoundingBoxProjection & | bbp, | ||
float | samplex, | ||
float | sampley, | ||
RtVector3 & | direction, | ||
float & | cosTheta, | ||
float & | |||
) | const |
PRMAN_INLINE void RixPhotonGuiding::samplePosition | ( | const BoundingBoxProjection & | bbp, |
float | samplex, | ||
float | sampley, | ||
RtPoint3 & | position, | ||
float & | |||
) | const |
PRMAN_INLINE float RixPhotonGuiding::samplingPdf | ( | ) | const |
Referenced by MISAreaLightPdf(), and MISEnvLightPdf().
PRMAN_INLINE void RixPhotonGuiding::setBoundingBox | ( | const RtBBox & | boundingBox, |
float | enlarge = 0.1f |
||
) |