ID3DXPRTEngine::ComputeDirectLightingSHGPU

Uses the GPU to compute the direct lighting contribution to 3D objects where the source radiance is represented by a spherical harmonic (SH) approximation. Computing the lighting on the GPU will generally be much faster than on the CPU.

HRESULT ComputeDirectLightingSHGPU(
  LPDIRECT3DDEVICE9 pDevice,
  UINT Flags,
  UINT Order,
  FLOAT ZBias,
  FLOAT ZAngleBias,
  LPD3DXPRTBUFFER pDataOut
);

Parameters

pDevice
[in] Pointer to the IDirect3DDevice9 device object used to run the simulation on the GPU. The device must support ps_2_0 pixel shaders.

Note    Callback functions should not use the IDirect3DDevice9 device object used by the GPU simulator.

Flags
[in] GPU simulation parameter that defines the resolution of the shadow z-buffer. Should be set to one of the constant values from D3DXSHGPUSIMOPT. To specifiy higher precision simulation, the D3DXSHGPUSIMOPT_HIGHQUALITY value may be combined with one of the D3DXSHGPUSIMOPT_SHADOWRESxxx values.
Order
[in] Order of the SH evaluation. Must be in the range of D3DXSH_MINORDER to D3DXSH_MAXORDER, inclusive. The evaluation generates Order2 coefficients. The degree of the evaluation is Order - 1.
ZBias
[in] Bias in the normal direction.
ZAngleBias
[in] Bias in the normal direction, scaled by one minus the cosine of the angle with the light ray.
pDataOut
[in, out] Pointer to an ID3DXPRTBuffer object. This buffer must have the proper number of color channels allocated for the simulation.

Return Values

If the method succeeds, the return value is D3D_OK. If the method fails, the return value can be one of the following: D3DERR_INVALIDCALL, E_OUTOFMEMORY.

Remarks

In this method, the albedo is not multiplied by the light signal, and only incoming light is integrated in the simulator. By not multiplying the albedo, you can model albedo variation at a finer scale than the source radiance, thereby yielding more accurate results from compression.

Call ID3DXPRTEngine::MultiplyAlbedo to multiply each precomputed radiance transfer (PRT) vector by the albedo.

Requirements

Header: Declared in D3dx9mesh.h.