Physically based shading implementation specfically designed for OpenGL 3+, D3D11 and other RenderSystems which support uniform buffers.
More...
|
| HlmsPbs (Archive *dataFolder, ArchiveVec *libraryFolders) |
|
| ~HlmsPbs () override |
|
void | _changeRenderSystem (RenderSystem *newRs) override |
|
void | _collectSamplerblocks (set< const HlmsSamplerblock * >::type &outSamplerblocks, const HlmsDatablock *datablock) const override |
|
void | _loadJson (const rapidjson::Value &jsonValue, const HlmsJson::NamedBlocks &blocks, HlmsDatablock *datablock, const String &resourceGroup, HlmsJsonListener *listener, const String &additionalTextureExtension) const override |
| Loads datablock values from a JSON value. More...
|
|
void | _notifyIblSpecMipmap (uint8 numMipmaps) |
|
void | _saveJson (const HlmsDatablock *datablock, String &outString, HlmsJsonListener *listener, const String &additionalTextureExtension) const override |
|
void | analyzeBarriers (BarrierSolver &barrierSolver, ResourceTransitionArray &resourceTransitions, Camera *renderingCamera, const bool bCasterPass) override |
|
uint32 | fillBuffersFor (const HlmsCache *cache, const QueuedRenderable &queuedRenderable, bool casterPass, uint32 lastCacheHash, uint32 lastTextureHash) override |
| Fills the constant buffers. More...
|
|
uint32 | fillBuffersForV1 (const HlmsCache *cache, const QueuedRenderable &queuedRenderable, bool casterPass, uint32 lastCacheHash, CommandBuffer *commandBuffer) override |
|
uint32 | fillBuffersForV2 (const HlmsCache *cache, const QueuedRenderable &queuedRenderable, bool casterPass, uint32 lastCacheHash, CommandBuffer *commandBuffer) override |
|
void | frameEnded () override |
| Called when the frame has fully ended (ALL passes have been executed to all RTTs) More...
|
|
AmbientLightMode | getAmbientLightMode () const |
|
TextureGpu * | getAreaLightMasks () const |
|
bool | getDebugPssmSplits () const |
|
bool | getDefaultBrdfWithDiffuseFresnel () const |
|
uint16 | getEsmK () const |
|
bool | getFineLightMaskGranularity () const |
|
bool | getIndustryCompatible () const |
|
IrradianceField * | getIrradianceField () |
|
IrradianceVolume * | getIrradianceVolume () const |
|
TextureGpu * | getLightProfilesTexture () const |
|
ParallaxCorrectedCubemapBase * | getParallaxCorrectedCubemap () const |
|
bool | getPerceptualRoughness () const |
|
ShadowFilter | getShadowFilter () const |
|
bool | getShadowReceiversInPixelShader () const |
|
bool | getUseLightBuffers () |
|
bool | getVctFullConeCount () const |
|
VctLighting * | getVctLighting () |
|
void | loadLtcMatrix () |
|
| OGRE_DEPRECATED_VER (3) void setPerceptualRoughness(bool bPerceptualRoughness) |
| Toggle whether the roughness value (set via material parameters and via roughness textures) is perceptual or raw. More...
|
|
void | postCommandBufferExecution (CommandBuffer *commandBuffer) override |
| This gets called after executing the command buffer. More...
|
|
HlmsCache | preparePassHash (const Ogre::CompositorShadowNode *shadowNode, bool casterPass, bool dualParaboloid, SceneManager *sceneManager) override |
| Called every frame by the Render Queue to cache the properties needed by this pass. More...
|
|
void | resetIblSpecMipmap (uint8 numMipmaps) |
| By default we see the reflection textures' mipmaps and store the largest one we found. More...
|
|
void | setAmbientLightMode (AmbientLightMode mode) |
|
void | setAreaLightMasks (TextureGpu *areaLightMask) |
|
void | setDebugPssmSplits (bool bDebug) |
|
void | setDefaultBrdfWithDiffuseFresnel (bool bDefaultToDiffuseFresnel) |
| OgreNext 3.0 changed Default BRDF to not include diffuse fresnel in order to match what most DCC tools (e.g. More...
|
|
void | setEsmK (uint16 K) |
| Sets the 'K' parameter of ESM filter. More...
|
|
void | setFineLightMaskGranularity (bool useFineGranularity) |
| Toggles whether light masks will be obeyed per object by doing: if( movableObject->getLightMask() & light->getLightMask() ) doLighting( movableObject light ); Note this toggle only affects forward lights (i.e. More...
|
|
void | setIndustryCompatible (bool bIndustryCompatible) |
| There are slight variations between how PBR formulas are handled in OgreNext and other game engines or DCC (Digital Content Creator) tools. More...
|
|
void | setIrradianceField (IrradianceField *irradianceField) |
|
void | setIrradianceVolume (IrradianceVolume *irradianceVolume) |
|
void | setLightProfilesTexture (TextureGpu *lightProfilesTex) |
|
void | setParallaxCorrectedCubemap (ParallaxCorrectedCubemapBase *pcc, float pccVctMinDistance=1.0f, float pccVctMaxDistance=2.0f) |
| Sets PCC. More...
|
|
void | setShadowReceiversInPixelShader (bool bInPixelShader) |
| Toggles whether light-space position is calculated in vertex or pixel shader. More...
|
|
void | setShadowSettings (ShadowFilter filter) |
|
void | setStaticBranchingLights (bool staticBranchingLights) override |
| By default shadow-caster spot and point lights are hardcoded into shaders. More...
|
|
void | setUseLightBuffers (bool b) |
|
void | setVctFullConeCount (bool vctFullConeCount) |
| When false, we will use 4 cones for diffuse VCT. More...
|
|
void | setVctLighting (VctLighting *vctLighting) |
|
| HlmsBufferManager (HlmsTypes type, const String &typeName, Archive *dataFolder, ArchiveVec *libraryFolders) |
|
| ~HlmsBufferManager () override |
|
void | preCommandBufferExecution (CommandBuffer *commandBuffer) override |
| This gets called right before executing the command buffer. More...
|
|
void | setTextureBufferDefaultSize (size_t defaultSize) |
| Changes the default suggested size for the texture buffer. More...
|
|
| Hlms (HlmsTypes type, const String &typeName, Archive *dataFolder, ArchiveVec *libraryFolders) |
|
virtual | ~Hlms () |
|
void | _addDatablockCustomPieceFile (const String &filename, const String &resourceGroup) |
| See HlmsDatablock::setCustomPieceCodeFromMemory & HlmsDatablock::setCustomPieceFile. More...
|
|
CachedCustomPieceFileStatus | _addDatablockCustomPieceFile (const String &filename, const String &resourceGroup, const uint64 sourceCodeHash[2]) |
|
void | _addDatablockCustomPieceFileFromMemory (const String &filename, const String &sourceCode) |
|
void | _clearShaderCache () |
|
void | _compileShaderFromPreprocessedSource (const RenderableCache &mergedCache, const String source[NumShaderTypes], const uint32 shaderCounter, size_t tid) |
|
int32 | _getProperty (size_t tid, IdString key, int32 defaultVal=0) const |
|
void | _notifyManager (HlmsManager *manager) |
|
void | _setNumThreads (size_t numThreads) |
|
void | _setProperty (size_t tid, IdString key, int32 value) |
| For debugging stuff. I.e. the Command line uses it for testing manually set properties. More...
|
|
void | _setShadersGenerated (uint32 shadersGenerated) |
|
void | _setTextureReg (size_t tid, ShaderType shaderType, const char *texName, int32 texUnit) |
|
void | _tagShaderCodeCacheUpToDate () |
|
void | compileShaderCode (ShaderCodeCache &codeCache, uint32 shaderCounter, size_t tid) |
| Compiles input properties and adds it to the shader code cache. More...
|
|
void | compileStubEntry (const HlmsCache &passCache, HlmsCache *reservedStubEntry, QueuedRenderable queuedRenderable, uint32 renderableHash, uint32 finalHash, size_t tid) |
| Called by ParallelHlmsCompileQueue to finish the job started in getMaterial() More...
|
|
HlmsDatablock * | createDatablock (IdString name, const String &refName, const HlmsMacroblock ¯oblockRef, const HlmsBlendblock &blendblockRef, const HlmsParamVec ¶mVec, bool visibleToManager=true, const String &filename=BLANKSTRING, const String &resourceGroup=BLANKSTRING) |
| Creates a unique datablock that can be shared by multiple renderables. More...
|
|
void | destroyAllDatablocks () |
| Destroys all datablocks created with createDatablock(). More...
|
|
void | destroyDatablock (IdString name) |
| Destroys a datablocks given its name. More...
|
|
uint16 | getAreaLightsApproxLimit () const |
|
uint16 | getAreaLightsLtcLimit () const |
|
HlmsDatablock * | getDatablock (IdString name) const |
| Finds an existing datablock based on its name (. More...
|
|
const DatablockCustomPieceFile * | getDatablockCustomPieceData (int32 filenameHashId) const |
| Returns all the data we know about filenameHashId. Can be nullptr if not found. More...
|
|
const String & | getDatablockCustomPieceFileNameStr (int32 filenameHashId) const |
|
const HlmsDatablockMap & | getDatablockMap () const |
| Returns all datablocks owned by this Hlms, including the default one. More...
|
|
Archive * | getDataFolder () |
|
HlmsDatablock * | getDefaultDatablock () const |
| Datablock to use when another datablock failed or none was specified. More...
|
|
bool | getFastShaderBuildHack () const |
| Returns true if shaders are being compiled with Fast Shader Build Hack (D3D11 only) More...
|
|
void | getFilenameAndResourceGroup (IdString name, String const **outFilename, String const **outResourceGroup) const |
| Returns the filaname & resource group a datablock was created from, and is associated with its hashed name (this was passed as in createDatablock()). More...
|
|
HlmsManager * | getHlmsManager () const |
|
HlmsListener * | getListener () const |
| Returns the current listener. More...
|
|
const HlmsCache * | getMaterial (HlmsCache const *lastReturnedValue, const HlmsCache &passCache, const QueuedRenderable &queuedRenderable, bool casterPass, ParallelHlmsCompileQueue *parallelQueue) |
| Retrieves an HlmsCache filled with the GPU programs to be used by the given renderable. More...
|
|
uint32 | getMaterialSerial01 (uint32 lastReturnedValue, const HlmsCache &passCache, const size_t passCacheIdx, const QueuedRenderable &queuedRenderable, bool casterPass, ParallelHlmsCompileQueue ¶llelQueue) |
| This is extremely similar to getMaterial() except it's been designed to be always in parallel and to be used by warm_up passes. More...
|
|
uint16 | getMaxNonCasterDirectionalLights () const |
|
const String * | getNameStr (IdString name) const |
| Returns the string name associated with its hashed name (this was passed as refName in createDatablock()). More...
|
|
uint8 | getParticleSystemConstSlot () const |
|
uint8 | getParticleSystemSlot () const |
|
const LibraryVec & | getPiecesLibrary () const |
|
ArchiveVec | getPiecesLibraryAsArchiveVec () const |
|
PrecisionMode | getPrecisionMode () const |
| Returns requested precision mode (i.e., value passed to setPrecisionMode) See getSupportedPrecisionMode. More...
|
|
RenderSystem * | getRenderSystem () const |
|
const ShaderCodeCacheVec & | getShaderCodeCache () const |
|
const String & | getShaderProfile () const |
|
IdString | getShaderSyntax () const |
|
bool | getStaticBranchingLights () const |
|
PrecisionMode | getSupportedPrecisionMode () const |
| Some GPUs don't support all precision modes. More...
|
|
void | getTemplateChecksum (uint64 outHash[2]) const |
|
HlmsTypes | getType () const |
|
IdString | getTypeName () const |
|
const String & | getTypeNameStr () const |
|
bool | isDatablockCustomPieceFileCacheable (int32 filenameHashId) const |
|
bool | isShaderCodeCacheDirty () const |
| Users can check this function to tell if HlmsDiskCache needs saving. More...
|
|
bool | parseOffline (const String &filename, String &inBuffer, String &outBuffer, size_t tid) |
| For standalone parsing. More...
|
|
virtual void | reloadFrom (Archive *newDataFolder, ArchiveVec *libraryFolders=0) |
| Destroys all the cached shaders and in the next opportunity will recreate them from the new location. More...
|
|
void | saveAllTexturesFromDatablocks (const String &folderPath, set< String >::type &savedTextures, bool saveOitd, bool saveOriginal, HlmsTextureExportListener *listener) |
|
void | setAreaLightForwardSettings (uint16 areaLightsApproxLimit, uint16 areaLightsLtcLimit) |
| Area lights use regular Forward. More...
|
|
void | setDebugOutputPath (bool enableDebugOutput, bool outputProperties, const String &path=BLANKSTRING) |
| Call to output the automatically generated shaders (which are usually made from templates) on the given folder for inspection, analyzing, debugging, etc. More...
|
|
void | setListener (HlmsListener *listener) |
| Sets a listener to extend an existing Hlms implementation's with custom code, without having to rewrite it or modify the source code directly. More...
|
|
void | setMaxNonCasterDirectionalLights (uint16 maxLights) |
| Non-caster directional lights are hardcoded into shaders. More...
|
|
void | setPrecisionMode (PrecisionMode precisionMode) |
| Sets the precision mode of Hlms. More...
|
|
| ConstBufferPool (uint32 bytesPerSlot, const ExtraBufferParams &extraBufferParams) |
|
virtual | ~ConstBufferPool () |
|
OptimizationStrategy | getOptimizationStrategy () const |
|
size_t | getPoolIndex (ConstBufferPoolUser *user) const |
| Gets an ID corresponding to the pool this user was assigned to, unique per hash. More...
|
|
void | releaseSlot (ConstBufferPoolUser *user) |
| Releases a slot requested with requestSlot. More...
|
|
void | requestSlot (uint32 hash, ConstBufferPoolUser *user, bool wantsExtraBuffer) |
| Requests a slot and fills 'user'. Automatically schedules for update. More...
|
|
void | scheduleForUpdate (ConstBufferPoolUser *dirtyUser, uint8 dirtyFlags=DirtyConstBuffer) |
|
virtual void | setOptimizationStrategy (OptimizationStrategy optimizationStrategy) |
| Sets the optimization strategy. More...
|
|
Physically based shading implementation specfically designed for OpenGL 3+, D3D11 and other RenderSystems which support uniform buffers.