Castor3D 0.16.0
Multiplatform 3D engine
Classes | Typedefs | Functions
castor3d::shader Namespace Reference

Classes

struct  AABB
 
struct  AllShadowData
 
class  AppendArrayT
 
class  AppendBufferBase
 
class  AppendBufferT
 
class  BackgroundModel
 
struct  BackgroundModelEntry
 
struct  BillboardData
 
struct  BillboardSurfaceT
 
struct  BlendComponents
 
struct  BlendComponentT
 
class  BRDFHelpers
 
class  BufferBase
 
struct  BufferData
 
class  BufferT
 
struct  CameraData
 
class  ClusteredLights
 
struct  ClustersData
 
struct  ColourGradingData
 
struct  ColourT
 
struct  Cone
 
class  CookTorranceBRDF
 
struct  CullData
 
class  DebugOutput
 
class  DebugOutputCategory
 
struct  DerivativeValueT
 
struct  DirectionalLight
 
struct  DirectionalShadowData
 
struct  DirectLighting
 
class  Fog
 
class  FontData
 
class  FontGlyph
 
class  GlobalIllumination
 
struct  HdrConfigData
 
class  IblBackgroundModel
 
class  ImgBackgroundModel
 
struct  IndirectLighting
 
struct  Intersection
 
struct  LayeredLpvGridData
 
struct  Light
 
class  LightingModel
 
class  Lights
 
class  LightsBuffer
 
struct  LightSurface
 
struct  LpvGridData
 
struct  LpvLightData
 
struct  Material
 
class  Materials
 
struct  MeshBuffers
 
struct  MeshBuffersBase
 
struct  Meshlet
 
struct  MeshletBuffers
 
struct  MeshPosition
 
struct  MeshVertexBase
 
struct  MeshVertexT
 
struct  MicrofacetDistributionSample
 
struct  ModelData
 
struct  MorphingWeightsData
 
struct  MorphTargetData
 
struct  MorphTargetsData
 
class  NoIblBackgroundModel
 
struct  ObjectIds
 
struct  ObjectsIds
 
struct  OverlayData
 
struct  OverlaysIDs
 
struct  OverlaySurfaceT
 
struct  PassComponentsShader
 
struct  PassMapComponentsShader
 
struct  PassMapMaterialShader
 
struct  PassMaterialShader
 
struct  PassReflRefrShader
 
struct  PassShader
 
class  PassShaders
 
struct  PayloadT
 
class  PbrLightingModel
 
class  PhongLightingModel
 
struct  Plane
 
struct  PointLight
 
struct  PointShadowData
 
struct  PositionT
 
struct  PosUvT
 
struct  PrepassOutputT
 
struct  RasterizerSurfaceBaseT
 
struct  RasterizerSurfaceT
 
struct  Ray
 
class  ReflectionModel
 
struct  SceneData
 
class  Shadow
 
struct  ShadowData
 
struct  ShadowMapData
 
struct  ShadowOptions
 
class  ShadowsBuffer
 
struct  ShadowsOutputT
 
class  SheenBRDF
 
struct  SkinningData
 
struct  SpotLight
 
struct  SpotShadowData
 
struct  SsaoConfigData
 
struct  SssProfile
 
class  SssProfiles
 
class  SssTransmittance
 
struct  SubmeshRasterSurfaceShader
 
class  SubmeshShaders
 
struct  SubmeshVertexSurfaceShader
 
struct  SurfaceBaseT
 
struct  SurfaceT
 
class  TextureAnimations
 
struct  TextureConfigData
 
class  TextureConfigurations
 
struct  TextureTransformData
 
class  Utils
 
struct  UvT
 
struct  Voxel
 
struct  VoxelData
 
struct  VoxelSurfaceT
 

Typedefs

using PassComponentsShaderPtr = castor::RawUniquePtr< PassComponentsShader >
 
using PassReflRefrShaderPtr = castor::RawUniquePtr< PassReflRefrShader >
 
using PassMaterialShaderPtr = castor::RawUniquePtr< PassMaterialShader >
 
using SampleTexture
 
using SubmeshVertexSurfaceShaderPtr = castor::RawUniquePtr< SubmeshVertexSurfaceShader >
 
using SubmeshRasterSurfaceShaderPtr = castor::RawUniquePtr< SubmeshRasterSurfaceShader >
 
template<typename ColTypeT , sdw::var::Flag FlagT>
using ColourStructT
 
template<typename PosTypeT , sdw::var::Flag FlagT>
using PositionStructT
 
template<typename PosTypeT , sdw::var::Flag FlagT>
using PosUvStructT
 
template<typename UvTypeT , sdw::var::Flag FlagT>
using UvStructT
 
template<typename ValueT , sdw::StringLiteralT StructNameT>
using DerivativeValueHelperT
 
template<sdw::var::Flag FlagT>
using PayloadStructT
 

Functions

 CU_DeclareSmartPtr (castor3d::shader, BufferBase, C3D_API)
 
 Writer_Parameter (MicrofacetDistributionSample)
 
 Writer_Parameter (CullData)
 
C3D_API sdw::expr::ExprPtr makeRawExpr (DerivFloat const &value)
 
C3D_API RetDerivFloat dot (DerivVec3 const lhs, DerivVec3 const rhs)
 
C3D_API RetDerivVec3 cross (DerivVec3 const lhs, DerivVec3 const rhs)
 
C3D_API RetDerivVec3 normalize (DerivVec3 const v)
 
C3D_API RetDerivVec3 refract (DerivVec3 const i, DerivVec3 const n, sdw::Float const ior)
 
C3D_API RetDerivFloat clamp (DerivFloat const v, sdw::Float const min, sdw::Float const max)
 
C3D_API RetDerivFloat length (DerivVec3 const v)
 
C3D_API RetDerivFloat max (DerivFloat const lhs, DerivFloat const rhs)
 
C3D_API RetDerivVec3 mix (DerivVec3 const a, DerivVec3 const b, DerivVec3 const c)
 
C3D_API RetDerivFloat fma (DerivFloat const a, DerivFloat const b, DerivFloat const c)
 
C3D_API sdw::Float fwidth (DerivFloat const a)
 
C3D_API DerivFloat negate (DerivFloat const a)
 
C3D_API sdw::Float computeMip (DerivVec2 const &uv, sdw::Vec2 const &texSize)
 
C3D_API DerivFloat derivFloat (sdw::Float const v)
 
C3D_API DerivFloat derivX (DerivVec2 const v)
 
C3D_API DerivFloat derivY (DerivVec2 const v)
 
C3D_API DerivFloat derivZ (DerivVec3 const v)
 
C3D_API DerivFloat derivW (DerivVec4 const v)
 
C3D_API DerivVec2 derivVec2 (sdw::Float const v)
 
C3D_API DerivVec2 derivVec2 (sdw::Vec2 const v)
 
C3D_API DerivVec2 derivVec2 (DerivFloat const v)
 
C3D_API DerivVec2 derivVec2 (DerivFloat const v, sdw::Float const a)
 
C3D_API DerivVec3 derivVec3 (sdw::Float const v)
 
C3D_API DerivVec3 derivVec3 (sdw::Vec3 const v)
 
C3D_API DerivVec3 derivVec3 (DerivFloat const v)
 
C3D_API DerivVec4 derivVec4 (sdw::Float const v)
 
C3D_API DerivVec4 derivVec4 (sdw::Vec4 const v)
 
C3D_API DerivVec4 derivVec4 (DerivFloat const v)
 
C3D_API DerivVec4 derivVec4 (DerivVec3 const v, sdw::Float const a)
 
C3D_API DerivVec4 derivVec4 (DerivVec3 const v, DerivFloat const a)
 
C3D_API void negateXYZ (sdw::Vec4 in)
 
C3D_API void negateXYZ (DerivVec4 in)
 
C3D_API void mulXY (sdw::Vec4 in, sdw::Vec2 const mul)
 
C3D_API void mulXY (DerivVec4 in, sdw::Vec2 const mul)
 
C3D_API void addXYZ (sdw::Vec4 in, sdw::Vec3 const add)
 
C3D_API void addXYZ (DerivVec4 in, sdw::Vec3 const add)
 
C3D_API void addXYZ (DerivVec4 in, DerivVec3 const add)
 
C3D_API sdw::Vec3 getRaw (sdw::Vec3 const in)
 
C3D_API sdw::Vec3 getRaw (DerivVec3 const in)
 
C3D_API sdw::Vec4 getRaw (sdw::Vec4 const in)
 
C3D_API sdw::Vec3 getRawXYZ (sdw::Vec3 const in)
 
C3D_API sdw::Vec3 getRawXYZ (DerivVec3 const in)
 
C3D_API sdw::Vec3 getRawXYZ (sdw::Vec4 const in)
 
C3D_API sdw::Vec3 getXYZ (sdw::Vec4 const in)
 
C3D_API DerivVec3 getXYZ (DerivVec4 const in)
 
C3D_API sdw::Vec3 getXYW (sdw::Vec4 const in)
 
C3D_API DerivVec3 getXYW (DerivVec4 const in)
 
C3D_API sdw::Float getW (sdw::Vec4 const in)
 
C3D_API DerivFloat getW (DerivVec4 const in)
 
C3D_API DerivVec4 operator* (sdw::Mat4 const lhs, DerivVec4 const rhs)
 
C3D_API DerivVec3 operator* (sdw::Mat3 const lhs, DerivVec3 const rhs)
 
C3D_API DerivFloat operator+ (DerivFloat const lhs, DerivFloat const rhs)
 
C3D_API DerivFloat operator+ (DerivFloat const lhs, sdw::Float const rhs)
 
C3D_API DerivFloat operator* (DerivFloat const lhs, DerivFloat const rhs)
 
C3D_API DerivFloat operator* (DerivFloat const lhs, sdw::Float const rhs)
 
C3D_API DerivFloat operator- (DerivFloat const lhs, DerivFloat const rhs)
 
C3D_API DerivFloat operator- (DerivFloat const lhs, sdw::Float const rhs)
 
C3D_API DerivVec2 operator+ (DerivVec2 const lhs, sdw::Vec2 const rhs)
 
C3D_API DerivVec2 operator- (DerivVec2 const lhs, sdw::Vec2 const rhs)
 
C3D_API DerivVec2 operator* (DerivVec2 const lhs, sdw::Vec2 const rhs)
 
C3D_API DerivVec3 operator+ (DerivVec3 const lhs, sdw::Vec3 const rhs)
 
C3D_API DerivVec3 operator- (DerivVec3 const lhs, sdw::Vec3 const rhs)
 
C3D_API DerivVec3 operator* (DerivVec3 const lhs, sdw::Vec3 const rhs)
 
C3D_API DerivVec4 operator+ (DerivVec4 const lhs, sdw::Vec4 const rhs)
 
C3D_API DerivVec4 operator- (DerivVec4 const lhs, sdw::Vec4 const rhs)
 
C3D_API DerivVec4 operator* (DerivVec4 const lhs, sdw::Vec4 const rhs)
 
C3D_API sdw::Float computeRange (Light const &light)
 
sdw::Float computeRange (PointLight const &light)
 
sdw::Float computeRange (SpotLight const &light)
 
template<typename LhsT , typename RhsT >
LhsT translateUV (LhsT const &translate, RhsT const &uv)
 
sdw::Vec2 rotateUV (sdw::Float const &rotateU, sdw::Float const &rotateV, sdw::Vec2 const &uv)
 
template<typename LhsT , typename RhsT >
LhsT scaleUV (LhsT const &scale, RhsT const &uv)
 
 Writer_Parameter (Voxel)
 
template<ast::var::Flag FlagT>
static sdw::UInt getNodeId (sdw::Array< shader::ObjectsIds > const &data, shader::MeshVertexT< FlagT > const &surface, sdw::UInt pipelineID, sdw::UInt drawID, PipelineFlags const &flags)
 
C3D_API sdw::UInt getNodeId (sdw::Array< shader::ObjectsIds > const &data, sdw::UInt pipelineID, sdw::UInt drawID)
 
sdw::UInt getNodeId (sdw::Array< shader::ObjectsIds > const &data, sdw::Array< sdw::UVec4 > const &instances, sdw::UInt pipelineID, sdw::UInt drawID, PipelineFlags const &flags)
 
sdw::UInt getNodeId (sdw::Array< shader::ObjectsIds > const &data, sdw::Array< shader::ObjectIds > const &instances, sdw::UInt pipelineID, sdw::UInt drawID, PipelineFlags const &flags)
 
 Writer_Parameter (BillboardData)
 
 Writer_Parameter (HdrConfigData)
 
 Writer_Parameter (CameraData)
 
 Writer_Parameter (ModelData)
 
 Writer_Parameter (ModelInstancesData)
 
 Writer_Parameter (MorphTargetData)
 
 Writer_Parameter (MorphTargetsData)
 
 Writer_Parameter (MorphingWeightsData)
 
 Writer_Parameter (OverlayData)
 
 Writer_Parameter (PickingData)
 
 Writer_Parameter (RsmConfigData)
 
 Writer_Parameter (SceneData)
 
 Writer_Parameter (ShadowMapData)
 
 Writer_Parameter (SsaoConfigData)
 
 Writer_Parameter (TextureData)
 

Sdw

using DerivVec3 = DerivativeValueT< sdw::Vec3, "C3D_DerivVec3" >
 
using DerivVec4 = DerivativeValueT< sdw::Vec4, "C3D_DerivVec4" >
 
using SurfaceBase = SurfaceBaseT< sdw::Vec3, sdw::Vec4, sdw::Vec3 >
 
using DerivSurfaceBase = SurfaceBaseT< DerivVec3, DerivVec4, DerivVec3 >
 
using DerivFloat = DerivativeValueT< sdw::Float, "C3D_DerivFloat" >
 
using DerivVec2 = DerivativeValueT< sdw::Vec2, "C3D_DerivVec2" >
 
using DerivTex = DerivVec2
 
using Surface = SurfaceT< sdw::Vec3, sdw::Vec4, sdw::Vec3 >
 
using DerivSurface = SurfaceT< DerivVec3, DerivVec4, DerivVec3 >
 
using RasterizerSurfaceBase = RasterizerSurfaceBaseT< sdw::Vec3, sdw::Vec4, sdw::Vec3, sdw::Vec4 >
 
using DerivRasterizerSurfaceBase = RasterizerSurfaceBaseT< DerivVec3, DerivVec4, DerivVec3, DerivVec4 >
 
template<ast::var::Flag FlagT>
using FragmentSurfaceT = RasterizerSurfaceT< sdw::Vec3, sdw::Vec4, sdw::Vec3, sdw::Vec4, sdw::Vec3, FlagT >
 
using RasterizerSurface = RasterizerSurfaceT< sdw::Vec3, sdw::Vec4, sdw::Vec3, sdw::Vec4, sdw::Vec3, ast::var::Flag::eNone >
 
using DerivFragmentSurface = RasterizerSurfaceT< sdw::Vec3, sdw::Vec4, sdw::Vec3, sdw::Vec4, DerivTex, ast::var::Flag::eNone >
 
using AllDerivFragmentSurface = RasterizerSurfaceT< DerivVec3, DerivVec4, DerivVec3, DerivVec4, DerivTex, ast::var::Flag::eNone >
 
template<typename TexcoordT >
using RasterSurfaceT = RasterizerSurfaceT< sdw::Vec3, sdw::Vec4, sdw::Vec3, sdw::Vec4, TexcoordT, ast::var::Flag::eNone >
 
using MeshVertex = MeshVertexT< sdw::var::Flag::eNone >
 
using VoxelSurface = VoxelSurfaceT< sdw::var::Flag::eNone >
 
using OverlaySurface = OverlaySurfaceT< sdw::var::Flag::eNone >
 
template<sdw::var::Flag FlagT>
using Colour3FT = ColourT< sdw::Vec3, FlagT >
 
template<sdw::var::Flag FlagT>
using Colour4FT = ColourT< sdw::Vec4, FlagT >
 
template<sdw::var::Flag FlagT>
using Position2FT = PositionT< sdw::Vec2, FlagT >
 
template<sdw::var::Flag FlagT>
using Position3FT = PositionT< sdw::Vec3, FlagT >
 
template<sdw::var::Flag FlagT>
using Position4FT = PositionT< sdw::Vec4, FlagT >
 
template<sdw::var::Flag FlagT>
using PosUv2FT = PosUvT< sdw::Vec2, FlagT >
 
template<sdw::var::Flag FlagT>
using PosUv3FT = PosUvT< sdw::Vec3, FlagT >
 
template<sdw::var::Flag FlagT>
using PosUv4FT = PosUvT< sdw::Vec4, FlagT >
 
template<sdw::var::Flag FlagT>
using Uv2FT = UvT< sdw::Vec2, FlagT >
 
template<sdw::var::Flag FlagT>
using Uv3FT = UvT< sdw::Vec3, FlagT >
 
using ReflectionModelPtr = castor::RawUniquePtr< ReflectionModel >
 
using LightingModelCreator
 
using BackgroundModelPtr = castor::RawUniquePtr< BackgroundModel >
 
using BackgroundModelCreator
 
using BackgroundModelFactory
 
 Writer_Parameter (Intersection)
 
 Writer_Parameter (Ray)
 
 CU_DeclareSmartPtr (castor3d::shader, LightsBuffer, C3D_API)
 
 CU_DeclareSmartPtr (castor3d::shader, LightingModel, C3D_API)
 
 CU_DeclareSmartPtr (castor3d::shader, Material, C3D_API)
 
 CU_DeclareSmartPtr (castor3d::shader, Shadow, C3D_API)
 
 CU_DeclareSmartPtr (castor3d::shader, ShadowsBuffer, C3D_API)
 
 CU_DeclareSmartPtr (castor3d::shader, SssTransmittance, C3D_API)
 
 Writer_Parameter (AABB)
 
 Writer_Parameter (AllDerivFragmentSurface)
 
 Writer_Parameter (BlendComponents)
 
 Writer_Parameter (Cone)
 
 Writer_Parameter (DerivFloat)
 
 Writer_Parameter (DirectionalLight)
 
 Writer_Parameter (DirectionalShadowData)
 
 Writer_Parameter (LayeredLpvGridData)
 
 Writer_Parameter (Light)
 
 Writer_Parameter (DirectLighting)
 
 Writer_Parameter (LightSurface)
 
 Writer_Parameter (LpvGridData)
 
 Writer_Parameter (LpvLightData)
 
 Writer_Parameter (Material)
 
 Writer_Parameter (Meshlet)
 
 Writer_Parameter (Plane)
 
 Writer_Parameter (PointLight)
 
 Writer_Parameter (PointShadowData)
 
 Writer_Parameter (ShadowData)
 
 Writer_Parameter (SpotLight)
 
 Writer_Parameter (SpotShadowData)
 
 Writer_Parameter (Surface)
 
 Writer_Parameter (TextureTransformData)
 
 Writer_Parameter (TextureConfigData)
 
 Writer_Parameter (MeshVertex)
 
 Writer_Parameter (VoxelData)
 
 Writer_Parameter (VoxelSurface)
 
C3D_API uint32_t getSpotShadowMapCount ()
 
C3D_API uint32_t getPointShadowMapCount ()
 
C3D_API void groupMemoryBarrierWithGroupSync (sdw::ShaderWriter &writer)
 
C3D_API castor::String concatModelNames (castor::String lhs, castor::String rhs)
 
template<typename ... ExprT>
sdw::expr::ExprList makeExprList (ExprT &&... expr)
 

Typedef Documentation

◆ AllDerivFragmentSurface

◆ BackgroundModelCreator

Initial value:
castor::Function< BackgroundModelPtr( Engine const & engine
, sdw::ShaderWriter & writer
, Utils & utils
, VkExtent2D targetSize
, bool needsForeground
, uint32_t & binding
, uint32_t set ) >
std::function< FuncT > Function
Definition ConfigModule.hpp:97
castor::RawUniquePtr< BackgroundModel > BackgroundModelPtr
Definition SdwModule.hpp:240

◆ BackgroundModelFactory

Initial value:
castor::Factory< BackgroundModel
uint8_t BackgroundModelID
Definition BackgroundModule.hpp:30
std::basic_string< xchar > String
Definition ConfigModule.hpp:64
castor::Function< BackgroundModelPtr(Engine const &engine, sdw::ShaderWriter &writer, Utils &utils, VkExtent2D targetSize, bool needsForeground, uint32_t &binding, uint32_t set) > BackgroundModelCreator
Definition SdwModule.hpp:241
Factory concept implementation.
Definition Factory.hpp:36

◆ BackgroundModelPtr

◆ Colour3FT

template<sdw::var::Flag FlagT>
using castor3d::shader::Colour3FT = ColourT< sdw::Vec3, FlagT >

◆ Colour4FT

template<sdw::var::Flag FlagT>
using castor3d::shader::Colour4FT = ColourT< sdw::Vec4, FlagT >

◆ ColourStructT

template<typename ColTypeT , sdw::var::Flag FlagT>
using castor3d::shader::ColourStructT
Initial value:
sdw::IOStructInstanceHelperT< FlagT
, "C3D_Colour"
, sdw::IOStructFieldT< ColTypeT, "colour", 0u > >

◆ DerivativeValueHelperT

template<typename ValueT , sdw::StringLiteralT StructNameT>
using castor3d::shader::DerivativeValueHelperT
Initial value:
sdw::StructInstanceHelperT < StructNameT
, sdw::type::MemoryLayout::eC
, sdw::StructFieldT< ValueT, "value" >
, sdw::StructFieldT< ValueT, "dPdx" >
, sdw::StructFieldT< ValueT, "dPdy" > >

◆ DerivFloat

using castor3d::shader::DerivFloat = DerivativeValueT< sdw::Float, "C3D_DerivFloat" >

◆ DerivFragmentSurface

using castor3d::shader::DerivFragmentSurface = RasterizerSurfaceT< sdw::Vec3, sdw::Vec4, sdw::Vec3, sdw::Vec4, DerivTex, ast::var::Flag::eNone >

◆ DerivRasterizerSurfaceBase

◆ DerivSurface

◆ DerivSurfaceBase

◆ DerivTex

◆ DerivVec2

using castor3d::shader::DerivVec2 = DerivativeValueT< sdw::Vec2, "C3D_DerivVec2" >

◆ DerivVec3

typedef DerivativeValueT< sdw::Vec3, "C3D_DerivVec3" > castor3d::shader::DerivVec3 = DerivativeValueT< sdw::Vec3, "C3D_DerivVec3" >

◆ DerivVec4

typedef DerivativeValueT< sdw::Vec4, "C3D_DerivVec4" > castor3d::shader::DerivVec4 = DerivativeValueT< sdw::Vec4, "C3D_DerivVec4" >

◆ FragmentSurfaceT

template<ast::var::Flag FlagT>
using castor3d::shader::FragmentSurfaceT = RasterizerSurfaceT< sdw::Vec3, sdw::Vec4, sdw::Vec3, sdw::Vec4, sdw::Vec3, FlagT >

◆ LightingModelCreator

Initial value:
castor::Function< LightingModelUPtr( LightingModelID lightingModelId
, sdw::ShaderWriter & writer
, Materials const & materials
, Utils & utils
, BRDFHelpers & brdf
, Shadow & shadowModel
, Lights & lights
, bool enableVolumetric ) >

◆ MeshVertex

using castor3d::shader::MeshVertex = MeshVertexT< sdw::var::Flag::eNone >

◆ OverlaySurface

using castor3d::shader::OverlaySurface = OverlaySurfaceT< sdw::var::Flag::eNone >

◆ PassComponentsShaderPtr

◆ PassMaterialShaderPtr

◆ PassReflRefrShaderPtr

◆ PayloadStructT

template<sdw::var::Flag FlagT>
using castor3d::shader::PayloadStructT
Initial value:
sdw::IOStructInstanceHelperT< FlagT
, "C3D_Payload"
, sdw::IOUIntArrayField< "meshletIndices", ast::type::Struct::InvalidLocation, 32u > >

◆ Position2FT

template<sdw::var::Flag FlagT>
using castor3d::shader::Position2FT = PositionT< sdw::Vec2, FlagT >

◆ Position3FT

template<sdw::var::Flag FlagT>
using castor3d::shader::Position3FT = PositionT< sdw::Vec3, FlagT >

◆ Position4FT

template<sdw::var::Flag FlagT>
using castor3d::shader::Position4FT = PositionT< sdw::Vec4, FlagT >

◆ PositionStructT

template<typename PosTypeT , sdw::var::Flag FlagT>
using castor3d::shader::PositionStructT
Initial value:
sdw::IOStructInstanceHelperT< FlagT
, "C3D_Position"
, sdw::IOStructFieldT< PosTypeT, "position", 0u > >

◆ PosUv2FT

template<sdw::var::Flag FlagT>
using castor3d::shader::PosUv2FT = PosUvT< sdw::Vec2, FlagT >

◆ PosUv3FT

template<sdw::var::Flag FlagT>
using castor3d::shader::PosUv3FT = PosUvT< sdw::Vec3, FlagT >

◆ PosUv4FT

template<sdw::var::Flag FlagT>
using castor3d::shader::PosUv4FT = PosUvT< sdw::Vec4, FlagT >

◆ PosUvStructT

template<typename PosTypeT , sdw::var::Flag FlagT>
using castor3d::shader::PosUvStructT
Initial value:
sdw::IOStructInstanceHelperT< FlagT
, "C3D_PosUv"
, sdw::IOStructFieldT< PosTypeT, "position", 0u >
, sdw::IOStructFieldT< sdw::Vec2, "uv", 1u > >

◆ RasterizerSurface

using castor3d::shader::RasterizerSurface = RasterizerSurfaceT< sdw::Vec3, sdw::Vec4, sdw::Vec3, sdw::Vec4, sdw::Vec3, ast::var::Flag::eNone >

◆ RasterizerSurfaceBase

using castor3d::shader::RasterizerSurfaceBase = RasterizerSurfaceBaseT< sdw::Vec3, sdw::Vec4, sdw::Vec3, sdw::Vec4 >

◆ RasterSurfaceT

template<typename TexcoordT >
using castor3d::shader::RasterSurfaceT = RasterizerSurfaceT< sdw::Vec3, sdw::Vec4, sdw::Vec3, sdw::Vec4, TexcoordT, ast::var::Flag::eNone >

◆ ReflectionModelPtr

◆ SampleTexture

Initial value:
sdw::Function< sdw::Vec4
, sdw::InUInt
, shader::InTextureConfigData
, shader::InOutBlendComponents >

◆ SubmeshRasterSurfaceShaderPtr

◆ SubmeshVertexSurfaceShaderPtr

◆ Surface

using castor3d::shader::Surface = SurfaceT< sdw::Vec3, sdw::Vec4, sdw::Vec3 >

◆ SurfaceBase

typedef SurfaceBaseT< sdw::Vec3, sdw::Vec4, sdw::Vec3 > castor3d::shader::SurfaceBase = SurfaceBaseT< sdw::Vec3, sdw::Vec4, sdw::Vec3 >

◆ Uv2FT

template<sdw::var::Flag FlagT>
using castor3d::shader::Uv2FT = UvT< sdw::Vec2, FlagT >

◆ Uv3FT

template<sdw::var::Flag FlagT>
using castor3d::shader::Uv3FT = UvT< sdw::Vec3, FlagT >

◆ UvStructT

template<typename UvTypeT , sdw::var::Flag FlagT>
using castor3d::shader::UvStructT
Initial value:
sdw::IOStructInstanceHelperT< FlagT
, "C3D_Uv"
, sdw::IOStructFieldT< UvTypeT, "uv", 0u > >

◆ VoxelSurface

using castor3d::shader::VoxelSurface = VoxelSurfaceT< sdw::var::Flag::eNone >

Function Documentation

◆ addXYZ() [1/3]

C3D_API void castor3d::shader::addXYZ ( DerivVec4 in,
DerivVec3 const add )

◆ addXYZ() [2/3]

C3D_API void castor3d::shader::addXYZ ( DerivVec4 in,
sdw::Vec3 const add )

◆ addXYZ() [3/3]

C3D_API void castor3d::shader::addXYZ ( sdw::Vec4 in,
sdw::Vec3 const add )

◆ clamp()

C3D_API RetDerivFloat castor3d::shader::clamp ( DerivFloat const v,
sdw::Float const min,
sdw::Float const max )

◆ computeMip()

C3D_API sdw::Float castor3d::shader::computeMip ( DerivVec2 const & uv,
sdw::Vec2 const & texSize )

◆ computeRange() [1/3]

C3D_API sdw::Float castor3d::shader::computeRange ( Light const & light)

Referenced by computeRange(), and computeRange().

Here is the caller graph for this function:

◆ computeRange() [2/3]

sdw::Float castor3d::shader::computeRange ( PointLight const & light)
inline

References castor3d::shader::PointLight::base(), and computeRange().

Here is the call graph for this function:

◆ computeRange() [3/3]

sdw::Float castor3d::shader::computeRange ( SpotLight const & light)
inline

References castor3d::shader::SpotLight::base(), and computeRange().

Here is the call graph for this function:

◆ concatModelNames()

C3D_API castor::String castor3d::shader::concatModelNames ( castor::String lhs,
castor::String rhs )

◆ cross()

C3D_API RetDerivVec3 castor3d::shader::cross ( DerivVec3 const lhs,
DerivVec3 const rhs )

◆ CU_DeclareSmartPtr() [1/7]

castor3d::shader::CU_DeclareSmartPtr ( castor3d::shader ,
BufferBase ,
C3D_API  )

◆ CU_DeclareSmartPtr() [2/7]

castor3d::shader::CU_DeclareSmartPtr ( castor3d::shader ,
LightingModel ,
C3D_API  )

◆ CU_DeclareSmartPtr() [3/7]

castor3d::shader::CU_DeclareSmartPtr ( castor3d::shader ,
LightsBuffer ,
C3D_API  )

◆ CU_DeclareSmartPtr() [4/7]

castor3d::shader::CU_DeclareSmartPtr ( castor3d::shader ,
Material ,
C3D_API  )

◆ CU_DeclareSmartPtr() [5/7]

castor3d::shader::CU_DeclareSmartPtr ( castor3d::shader ,
Shadow ,
C3D_API  )

◆ CU_DeclareSmartPtr() [6/7]

castor3d::shader::CU_DeclareSmartPtr ( castor3d::shader ,
ShadowsBuffer ,
C3D_API  )

◆ CU_DeclareSmartPtr() [7/7]

castor3d::shader::CU_DeclareSmartPtr ( castor3d::shader ,
SssTransmittance ,
C3D_API  )

◆ derivFloat()

C3D_API DerivFloat castor3d::shader::derivFloat ( sdw::Float const v)

◆ derivVec2() [1/4]

C3D_API DerivVec2 castor3d::shader::derivVec2 ( DerivFloat const v)

◆ derivVec2() [2/4]

C3D_API DerivVec2 castor3d::shader::derivVec2 ( DerivFloat const v,
sdw::Float const a )

◆ derivVec2() [3/4]

C3D_API DerivVec2 castor3d::shader::derivVec2 ( sdw::Float const v)

◆ derivVec2() [4/4]

C3D_API DerivVec2 castor3d::shader::derivVec2 ( sdw::Vec2 const v)

◆ derivVec3() [1/3]

C3D_API DerivVec3 castor3d::shader::derivVec3 ( DerivFloat const v)

◆ derivVec3() [2/3]

C3D_API DerivVec3 castor3d::shader::derivVec3 ( sdw::Float const v)

◆ derivVec3() [3/3]

C3D_API DerivVec3 castor3d::shader::derivVec3 ( sdw::Vec3 const v)

◆ derivVec4() [1/5]

C3D_API DerivVec4 castor3d::shader::derivVec4 ( DerivFloat const v)

◆ derivVec4() [2/5]

C3D_API DerivVec4 castor3d::shader::derivVec4 ( DerivVec3 const v,
DerivFloat const a )

◆ derivVec4() [3/5]

C3D_API DerivVec4 castor3d::shader::derivVec4 ( DerivVec3 const v,
sdw::Float const a )

◆ derivVec4() [4/5]

C3D_API DerivVec4 castor3d::shader::derivVec4 ( sdw::Float const v)

◆ derivVec4() [5/5]

C3D_API DerivVec4 castor3d::shader::derivVec4 ( sdw::Vec4 const v)

◆ derivW()

C3D_API DerivFloat castor3d::shader::derivW ( DerivVec4 const v)

◆ derivX()

C3D_API DerivFloat castor3d::shader::derivX ( DerivVec2 const v)

◆ derivY()

C3D_API DerivFloat castor3d::shader::derivY ( DerivVec2 const v)

◆ derivZ()

C3D_API DerivFloat castor3d::shader::derivZ ( DerivVec3 const v)

◆ dot()

C3D_API RetDerivFloat castor3d::shader::dot ( DerivVec3 const lhs,
DerivVec3 const rhs )

◆ fma()

C3D_API RetDerivFloat castor3d::shader::fma ( DerivFloat const a,
DerivFloat const b,
DerivFloat const c )

◆ fwidth()

C3D_API sdw::Float castor3d::shader::fwidth ( DerivFloat const a)

◆ getNodeId() [1/4]

sdw::UInt castor3d::shader::getNodeId ( sdw::Array< shader::ObjectsIds > const & data,
sdw::Array< sdw::UVec4 > const & instances,
sdw::UInt pipelineID,
sdw::UInt drawID,
PipelineFlags const & flags )
inline

References castor3d::PipelineFlags::enableInstantiation(), and getNodeId().

Here is the call graph for this function:

◆ getNodeId() [2/4]

sdw::UInt castor3d::shader::getNodeId ( sdw::Array< shader::ObjectsIds > const & data,
sdw::Array< shader::ObjectIds > const & instances,
sdw::UInt pipelineID,
sdw::UInt drawID,
PipelineFlags const & flags )
inline

References castor3d::PipelineFlags::enableInstantiation(), and getNodeId().

Here is the call graph for this function:

◆ getNodeId() [3/4]

C3D_API sdw::UInt castor3d::shader::getNodeId ( sdw::Array< shader::ObjectsIds > const & data,
sdw::UInt pipelineID,
sdw::UInt drawID )

◆ getNodeId() [4/4]

template<ast::var::Flag FlagT>
static sdw::UInt castor3d::shader::getNodeId ( sdw::Array< shader::ObjectsIds > const & data,
shader::MeshVertexT< FlagT > const & surface,
sdw::UInt pipelineID,
sdw::UInt drawID,
PipelineFlags const & flags )
static

References castor3d::PipelineFlags::enableInstantiation().

Referenced by getNodeId(), and getNodeId().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPointShadowMapCount()

C3D_API uint32_t castor3d::shader::getPointShadowMapCount ( )

◆ getRaw() [1/3]

C3D_API sdw::Vec3 castor3d::shader::getRaw ( DerivVec3 const in)

◆ getRaw() [2/3]

C3D_API sdw::Vec3 castor3d::shader::getRaw ( sdw::Vec3 const in)

◆ getRaw() [3/3]

C3D_API sdw::Vec4 castor3d::shader::getRaw ( sdw::Vec4 const in)

◆ getRawXYZ() [1/3]

C3D_API sdw::Vec3 castor3d::shader::getRawXYZ ( DerivVec3 const in)

◆ getRawXYZ() [2/3]

C3D_API sdw::Vec3 castor3d::shader::getRawXYZ ( sdw::Vec3 const in)

◆ getRawXYZ() [3/3]

C3D_API sdw::Vec3 castor3d::shader::getRawXYZ ( sdw::Vec4 const in)

◆ getSpotShadowMapCount()

C3D_API uint32_t castor3d::shader::getSpotShadowMapCount ( )

◆ getW() [1/2]

C3D_API DerivFloat castor3d::shader::getW ( DerivVec4 const in)

◆ getW() [2/2]

C3D_API sdw::Float castor3d::shader::getW ( sdw::Vec4 const in)

◆ getXYW() [1/2]

C3D_API DerivVec3 castor3d::shader::getXYW ( DerivVec4 const in)

◆ getXYW() [2/2]

C3D_API sdw::Vec3 castor3d::shader::getXYW ( sdw::Vec4 const in)

◆ getXYZ() [1/2]

C3D_API DerivVec3 castor3d::shader::getXYZ ( DerivVec4 const in)

◆ getXYZ() [2/2]

C3D_API sdw::Vec3 castor3d::shader::getXYZ ( sdw::Vec4 const in)

◆ groupMemoryBarrierWithGroupSync()

C3D_API void castor3d::shader::groupMemoryBarrierWithGroupSync ( sdw::ShaderWriter & writer)

◆ length()

C3D_API RetDerivFloat castor3d::shader::length ( DerivVec3 const v)

◆ makeExprList()

template<typename ... ExprT>
sdw::expr::ExprList castor3d::shader::makeExprList ( ExprT &&... expr)
inline

◆ makeRawExpr()

C3D_API sdw::expr::ExprPtr castor3d::shader::makeRawExpr ( DerivFloat const & value)

◆ max()

C3D_API RetDerivFloat castor3d::shader::max ( DerivFloat const lhs,
DerivFloat const rhs )

◆ mix()

C3D_API RetDerivVec3 castor3d::shader::mix ( DerivVec3 const a,
DerivVec3 const b,
DerivVec3 const c )

◆ mulXY() [1/2]

C3D_API void castor3d::shader::mulXY ( DerivVec4 in,
sdw::Vec2 const mul )

◆ mulXY() [2/2]

C3D_API void castor3d::shader::mulXY ( sdw::Vec4 in,
sdw::Vec2 const mul )

◆ negate()

C3D_API DerivFloat castor3d::shader::negate ( DerivFloat const a)

◆ negateXYZ() [1/2]

C3D_API void castor3d::shader::negateXYZ ( DerivVec4 in)

◆ negateXYZ() [2/2]

C3D_API void castor3d::shader::negateXYZ ( sdw::Vec4 in)

◆ normalize()

C3D_API RetDerivVec3 castor3d::shader::normalize ( DerivVec3 const v)

◆ operator*() [1/7]

C3D_API DerivFloat castor3d::shader::operator* ( DerivFloat const lhs,
DerivFloat const rhs )

◆ operator*() [2/7]

C3D_API DerivFloat castor3d::shader::operator* ( DerivFloat const lhs,
sdw::Float const rhs )

◆ operator*() [3/7]

C3D_API DerivVec2 castor3d::shader::operator* ( DerivVec2 const lhs,
sdw::Vec2 const rhs )

◆ operator*() [4/7]

C3D_API DerivVec3 castor3d::shader::operator* ( DerivVec3 const lhs,
sdw::Vec3 const rhs )

◆ operator*() [5/7]

C3D_API DerivVec4 castor3d::shader::operator* ( DerivVec4 const lhs,
sdw::Vec4 const rhs )

◆ operator*() [6/7]

C3D_API DerivVec3 castor3d::shader::operator* ( sdw::Mat3 const lhs,
DerivVec3 const rhs )

◆ operator*() [7/7]

C3D_API DerivVec4 castor3d::shader::operator* ( sdw::Mat4 const lhs,
DerivVec4 const rhs )

◆ operator+() [1/5]

C3D_API DerivFloat castor3d::shader::operator+ ( DerivFloat const lhs,
DerivFloat const rhs )

◆ operator+() [2/5]

C3D_API DerivFloat castor3d::shader::operator+ ( DerivFloat const lhs,
sdw::Float const rhs )

◆ operator+() [3/5]

C3D_API DerivVec2 castor3d::shader::operator+ ( DerivVec2 const lhs,
sdw::Vec2 const rhs )

◆ operator+() [4/5]

C3D_API DerivVec3 castor3d::shader::operator+ ( DerivVec3 const lhs,
sdw::Vec3 const rhs )

◆ operator+() [5/5]

C3D_API DerivVec4 castor3d::shader::operator+ ( DerivVec4 const lhs,
sdw::Vec4 const rhs )

◆ operator-() [1/5]

C3D_API DerivFloat castor3d::shader::operator- ( DerivFloat const lhs,
DerivFloat const rhs )

◆ operator-() [2/5]

C3D_API DerivFloat castor3d::shader::operator- ( DerivFloat const lhs,
sdw::Float const rhs )

◆ operator-() [3/5]

C3D_API DerivVec2 castor3d::shader::operator- ( DerivVec2 const lhs,
sdw::Vec2 const rhs )

◆ operator-() [4/5]

C3D_API DerivVec3 castor3d::shader::operator- ( DerivVec3 const lhs,
sdw::Vec3 const rhs )

◆ operator-() [5/5]

C3D_API DerivVec4 castor3d::shader::operator- ( DerivVec4 const lhs,
sdw::Vec4 const rhs )

◆ refract()

C3D_API RetDerivVec3 castor3d::shader::refract ( DerivVec3 const i,
DerivVec3 const n,
sdw::Float const ior )

◆ rotateUV()

sdw::Vec2 castor3d::shader::rotateUV ( sdw::Float const & rotateU,
sdw::Float const & rotateV,
sdw::Vec2 const & uv )
inline

◆ scaleUV()

template<typename LhsT , typename RhsT >
LhsT castor3d::shader::scaleUV ( LhsT const & scale,
RhsT const & uv )
inline

◆ translateUV()

template<typename LhsT , typename RhsT >
LhsT castor3d::shader::translateUV ( LhsT const & translate,
RhsT const & uv )
inline

◆ Writer_Parameter() [1/47]

castor3d::shader::Writer_Parameter ( AABB )

◆ Writer_Parameter() [2/47]

castor3d::shader::Writer_Parameter ( AllDerivFragmentSurface )

◆ Writer_Parameter() [3/47]

castor3d::shader::Writer_Parameter ( BillboardData )

◆ Writer_Parameter() [4/47]

castor3d::shader::Writer_Parameter ( BlendComponents )

◆ Writer_Parameter() [5/47]

castor3d::shader::Writer_Parameter ( CameraData )

◆ Writer_Parameter() [6/47]

castor3d::shader::Writer_Parameter ( Cone )

◆ Writer_Parameter() [7/47]

castor3d::shader::Writer_Parameter ( CullData )

◆ Writer_Parameter() [8/47]

castor3d::shader::Writer_Parameter ( DerivFloat )

◆ Writer_Parameter() [9/47]

castor3d::shader::Writer_Parameter ( DirectionalLight )

◆ Writer_Parameter() [10/47]

castor3d::shader::Writer_Parameter ( DirectionalShadowData )

◆ Writer_Parameter() [11/47]

castor3d::shader::Writer_Parameter ( DirectLighting )

◆ Writer_Parameter() [12/47]

castor3d::shader::Writer_Parameter ( HdrConfigData )

◆ Writer_Parameter() [13/47]

castor3d::shader::Writer_Parameter ( Intersection )

◆ Writer_Parameter() [14/47]

castor3d::shader::Writer_Parameter ( LayeredLpvGridData )

◆ Writer_Parameter() [15/47]

castor3d::shader::Writer_Parameter ( Light )

◆ Writer_Parameter() [16/47]

castor3d::shader::Writer_Parameter ( LightSurface )

◆ Writer_Parameter() [17/47]

castor3d::shader::Writer_Parameter ( LpvGridData )

◆ Writer_Parameter() [18/47]

castor3d::shader::Writer_Parameter ( LpvLightData )

◆ Writer_Parameter() [19/47]

castor3d::shader::Writer_Parameter ( Material )

◆ Writer_Parameter() [20/47]

castor3d::shader::Writer_Parameter ( Meshlet )

◆ Writer_Parameter() [21/47]

castor3d::shader::Writer_Parameter ( MeshVertex )

◆ Writer_Parameter() [22/47]

castor3d::shader::Writer_Parameter ( MicrofacetDistributionSample )

◆ Writer_Parameter() [23/47]

castor3d::shader::Writer_Parameter ( ModelData )

◆ Writer_Parameter() [24/47]

castor3d::shader::Writer_Parameter ( ModelInstancesData )

◆ Writer_Parameter() [25/47]

castor3d::shader::Writer_Parameter ( MorphingWeightsData )

◆ Writer_Parameter() [26/47]

castor3d::shader::Writer_Parameter ( MorphTargetData )

◆ Writer_Parameter() [27/47]

castor3d::shader::Writer_Parameter ( MorphTargetsData )

◆ Writer_Parameter() [28/47]

castor3d::shader::Writer_Parameter ( OverlayData )

◆ Writer_Parameter() [29/47]

castor3d::shader::Writer_Parameter ( PickingData )

◆ Writer_Parameter() [30/47]

castor3d::shader::Writer_Parameter ( Plane )

◆ Writer_Parameter() [31/47]

castor3d::shader::Writer_Parameter ( PointLight )

◆ Writer_Parameter() [32/47]

castor3d::shader::Writer_Parameter ( PointShadowData )

◆ Writer_Parameter() [33/47]

castor3d::shader::Writer_Parameter ( Ray )

◆ Writer_Parameter() [34/47]

castor3d::shader::Writer_Parameter ( RsmConfigData )

◆ Writer_Parameter() [35/47]

castor3d::shader::Writer_Parameter ( SceneData )

◆ Writer_Parameter() [36/47]

castor3d::shader::Writer_Parameter ( ShadowData )

◆ Writer_Parameter() [37/47]

castor3d::shader::Writer_Parameter ( ShadowMapData )

◆ Writer_Parameter() [38/47]

castor3d::shader::Writer_Parameter ( SpotLight )

◆ Writer_Parameter() [39/47]

castor3d::shader::Writer_Parameter ( SpotShadowData )

◆ Writer_Parameter() [40/47]

castor3d::shader::Writer_Parameter ( SsaoConfigData )

◆ Writer_Parameter() [41/47]

castor3d::shader::Writer_Parameter ( Surface )

◆ Writer_Parameter() [42/47]

castor3d::shader::Writer_Parameter ( TextureConfigData )

◆ Writer_Parameter() [43/47]

castor3d::shader::Writer_Parameter ( TextureData )

◆ Writer_Parameter() [44/47]

castor3d::shader::Writer_Parameter ( TextureTransformData )

◆ Writer_Parameter() [45/47]

castor3d::shader::Writer_Parameter ( Voxel )

◆ Writer_Parameter() [46/47]

castor3d::shader::Writer_Parameter ( VoxelData )

◆ Writer_Parameter() [47/47]

castor3d::shader::Writer_Parameter ( VoxelSurface )