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>;
42 HdSt_DomeLightComputationGPU(
47 bool useCubemapAsSourceTexture,
49 HdStSimpleLightingShaderPtr
const &lightingShader,
52 unsigned int computedCubeMapDim,
54 unsigned int numLevels = 1,
56 unsigned int level = 0,
58 float roughness = -1.0);
64 void Execute(HdBufferArrayRangeSharedPtr
const &range,
74 const bool _useCubemapAsSourceTexture;
75 const HdStSimpleLightingShaderPtr _lightingShader;
76 const unsigned int _computedCubeMapDim;
77 const unsigned int _numLevels;
78 const unsigned int _level;
79 const float _roughness;
91 HdSt_DomeLightMipmapComputationGPU(
93 HdStSimpleLightingShaderPtr
const &lightingShader);
99 void Execute(HdBufferArrayRangeSharedPtr
const &range,
105 const HdStSimpleLightingShaderPtr _lightingShader;
111int HdSt_ComputeDomeLightCubemapWidth(
112 const std::string& domeLightFilePath,
114 const unsigned int cubemapTargetMemoryMB);
116PXR_NAMESPACE_CLOSE_SCOPE
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.
Describes the properties needed to create a GPU texture.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...