7#ifndef PXR_IMAGING_HD_ST_DOME_LIGHT_COMPUTATIONS_H
8#define PXR_IMAGING_HD_ST_DOME_LIGHT_COMPUTATIONS_H
11#include "pxr/imaging/hdSt/api.h"
12#include "pxr/imaging/hdSt/computation.h"
17PXR_NAMESPACE_OPEN_SCOPE
23using HdStSimpleLightingShaderPtr =
24 std::weak_ptr<class HdStSimpleLightingShader>;
41 HdSt_DomeLightComputationGPU(
46 bool useCubemapAsSourceTexture,
48 HdStSimpleLightingShaderPtr
const &lightingShader,
50 unsigned int numLevels = 1,
52 unsigned int level = 0,
54 float roughness = -1.0);
60 void Execute(HdBufferArrayRangeSharedPtr
const &range,
70 const bool _useCubemapAsSourceTexture;
71 const HdStSimpleLightingShaderPtr _lightingShader;
72 const unsigned int _numLevels;
73 const unsigned int _level;
74 const float _roughness;
86 HdSt_DomeLightMipmapComputationGPU(
88 HdStSimpleLightingShaderPtr
const &lightingShader);
94 void Execute(HdBufferArrayRangeSharedPtr
const &range,
100 const HdStSimpleLightingShaderPtr _lightingShader;
106GfVec3i HdSt_ComputeDomeLightCubemapDimensions(
109PXR_NAMESPACE_CLOSE_SCOPE
Basic type for a vector of 3 int components.
A central registry for resources.
An interface class for GPU computation.
virtual void Execute(HdBufferArrayRangeSharedPtr const &range, HdResourceRegistry *resourceRegistry)=0
Execute computation.
virtual void GetBufferSpecs(HdBufferSpecVector *specs) const =0
Add the buffer spec for this computation into given bufferspec vector.
virtual int GetNumOutputElements() const =0
Returns the size of its destination buffer (located by range argument of Execute()).
Token for efficient comparison, assignment, and hashing of known strings.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...