#include <cstddef>
#include <vector>
#include "RixBxdfLobe.h"
#include "RixShading.h"
#include "prmanapi.h"
#include "RiTypesHelper.h"
Go to the source code of this file.
|
enum | RixBXEvaluateDomain {
k_RixBXEmptyDomain = 0,
k_RixBXOutsideReflect = 1,
k_RixBXOutsideTransmit = 2,
k_RixBXInsideReflect = 4,
k_RixBXInsideTransmit = 8,
k_RixBXReflect = (k_RixBXInsideReflect | k_RixBXOutsideReflect),
k_RixBXTransmit = (k_RixBXInsideTransmit | k_RixBXOutsideTransmit),
k_RixBXBoth = (k_RixBXReflect | k_RixBXTransmit),
k_RixBXOutside = (k_RixBXOutsideReflect | k_RixBXOutsideTransmit),
k_RixBXInside = (k_RixBXInsideReflect | k_RixBXInsideTransmit),
k_RixBXVolume = 16
} |
| Tells Integrator the domain over which lighting/connecting/merging needs to be done. More...
|
|
enum | RixBXTransportTrait { k_RixBXDirectLighting = 1 << 0,
k_RixBXIndirectLighting = 1 << 1,
k_RixBXAnyLighting = k_RixBXDirectLighting | k_RixBXIndirectLighting
} |
| Tells Bxdf the subset of light transport to consider. More...
|
|
enum | RixBXRayFlags { k_RixBXBothEndsInVolume = 0,
k_RixBXOriginOnBoundary = 1,
k_RixBXEndOnBoundary = 2,
k_RixBXBothEndsOnBoundary = 3
} |
| Tells whether ray end points lies in volume or on boundary(interface) More...
|
|
#define RIX_BXDFPLUGINCREATE extern "C" PRMANEXPORT RixBxdfFactory* CreateRixBxdfFactory(const char* hint) |
#define RIX_BXDFPLUGINDESTROY extern "C" PRMANEXPORT void DestroyRixBxdfFactory(RixBxdfFactory* bxdf) |
Tells Integrator the domain over which lighting/connecting/merging needs to be done.
Reflect/Front = light samples are from the side the ray came from Transmit/Back = light samples are opposite the side the ray came from Outside = light samples are from the side the surface normal points into Inside = light samples are from the side the surface normal points away from The difference between Both and Volume is whether there's a cosine term (for surfaces) or not (for volumes).
Enumerator |
---|
k_RixBXEmptyDomain |
|
k_RixBXOutsideReflect |
|
k_RixBXOutsideTransmit |
|
k_RixBXInsideReflect |
|
k_RixBXInsideTransmit |
|
k_RixBXReflect |
|
k_RixBXTransmit |
|
k_RixBXBoth |
|
k_RixBXOutside |
|
k_RixBXInside |
|
k_RixBXVolume |
|
Tells whether ray end points lies in volume or on boundary(interface)
Enumerator |
---|
k_RixBXBothEndsInVolume |
|
k_RixBXOriginOnBoundary |
|
k_RixBXEndOnBoundary |
|
k_RixBXBothEndsOnBoundary |
|
Tells Bxdf the subset of light transport to consider.
Enumerator |
---|
k_RixBXDirectLighting |
(direct lighting samples only)
|
k_RixBXIndirectLighting |
(indirect lighting samples only)
|
k_RixBXAnyLighting |
|
PRMAN_INLINE bool RixVisibleToDomain |
( |
RixBXEvaluateDomain |
domain, |
|
|
RtVector3 const & |
L, |
|
|
RtVector3 const & |
N, |
|
|
RtVector3 const & |
V |
|
) |
| |
References k_RixBXBoth, k_RixBXEmptyDomain, k_RixBXInside, k_RixBXInsideReflect, k_RixBXInsideTransmit, k_RixBXOutside, k_RixBXOutsideReflect, k_RixBXOutsideTransmit, k_RixBXReflect, k_RixBXTransmit, and k_RixBXVolume.