50 #define FBSDK_DLL K_DLLIMPORT
60 #ifdef FBSDKUseNamespace
71 #define FBRegisterShader( UniqueNameStr, ClassName, Label, Description, IconFilename ) \
72 HIObject RegisterShader##ClassName( HIObject ,const char* pName,void * ) \
74 ClassName *Class = new ClassName( pName ); \
75 Class->UniqueName = UniqueNameStr; \
76 Class->ShaderDescription = Description; \
77 if (Class->FBCreate()) { \
78 return Class->GetHIObject(); \
84 FBLibraryModule( ClassName ) \
86 FBRegisterObject( ClassName##R1,"renderer/usershader/ogl",Label,Description,RegisterShader##ClassName,true, IconFilename ); \
87 FBRegisterObject( ClassName##R2,"FbxStorable/Shader",UniqueNameStr,Description,RegisterShader##ClassName,true, IconFilename ); \
94 #define FBShaderDeclare( ClassName, Parent ) \
95 FBClassDeclare( ClassName,Parent); \
97 ClassName(const char* pName):Parent(pName) { FBClassInit; } \
103 #define FBShaderImplementation( ThisComponent ) \
104 FBClassImplementation( ThisComponent )
233 FBShaderManager& operator=(
const FBShaderManager& );
258 FBShader* CreateShader(
const char* pShaderTypeName );
307 virtual void UpdateModelShaderInfo(
int pShader_Version);
315 int GetSubRegionIndex();
321 int GetModelVersion()
const;
324 int GetShaderVersion()
const;
327 bool GetOriginalTextureFlag()
const;
330 unsigned int GetGeometryArrayIds()
const;
333 void SetGeometryArrayIds(
unsigned int pArrayIds);
336 KShaderModelInfo* mLocalPtr;
355 int GetRenderFrameId()
const;
366 bool IsIDBufferRendering()
const;
371 float GetIDBufferPickingAlphaThreshold()
const;
376 bool IsOfflineRendering()
const;
380 #ifndef DOXYGEN_SHOULD_SKIP_THIS
494 virtual void ReplaceAll(
FBModel* pModel );
499 virtual void Append(
FBModel* pModel );
504 virtual bool ShaderNeedBeginRender();
600 virtual void ShaderPassDrawShadowBegin(
FBRenderOptions* pRenderOptions);
605 virtual void ShaderPassDrawShadowEnd (
FBRenderOptions* pRenderOptions);
617 virtual void CloneShaderParameter(
FBShader* pNewShader );
641 void InvalidateShaderVersion ();
644 int GetShaderVersion ()
const;
658 int GetDrawInstancedMaximumSize()
const;
661 void SetDrawInstancedMaximumSize(
int pMaxSize);
667 virtual void UploadModelViewMatrixArrayForDrawInstanced(
const double* pModelViewMatrixArray,
int pCount);
909 #ifdef FBSDKUseNamespace
FBPropertyAnimatableDouble ShadowIntensity
Read Write Property: Controls the darkness of shadows cast by a selected object.
FBPropertyDouble Specular
Read Write Property: Changes an object's level of shininess when it reflects light by affecting the s...
This shader will able to draw additional texture layer (for example, live shadow or reflection)...
FBPropertyDouble ShadowZOffset
Read Write Property: Specifies the offset of the Live Shadow shader's plane from the original selecte...
#define __FBClassDeclare(Name, Parent)
For internal use only.
class FBPropertyBaseEnum< enum FBAlphaSource > FBPropertyAlphaSource
FBRenderingPass
Rendering Pass.
FBAlphaSource
Shader transparency computation.
Open Reality renderer interface.
FBStringList ShaderTypeNamesLocalized
List of available shaders.
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
FBPropertyBool UseLuminosity
Read Write Property: Activate the Luminosity option.
FBPropertyAnimatableDouble Alpha
Read Write Property: Controls the actual effect of the shader on the object.
class FBPropertyBase< double, kFBPT_double > FBPropertyDouble
Property: double
class FBPropertyBaseAnimatable< double, kFBPT_double > FBPropertyAnimatableDouble
FBPropertyBaseAnimatableDouble type definition.
Creates custom cameras and manages system cameras.
FBModel * GetFBModel()
Get Model.
FBPropertyShadowType ShadowType
Read Write Property: Indicate which shadow type is desired.
Translucent(Models Z Sort).
Viewing options for rendering.
This shader is acting as a material effect, should sitting behind the material central network...
Contains definitions for devices, boxes and models.
Similar to the Projective Shadow, except that it uses a boolean algorithm to create a self-shadow...
#define IObject_Declare(IsPure)
FBPropertyBool UseContrast
Read Write Property: Activate the Contrast option.
Writes to depth buffer where Alpha > 0.5.
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
FBShadowFrameType
Shadow calculation methods.
Uses a texture projection to create a shadow.
class FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
FBPropertyRenderingPass RenderingPass
Read Write Property: Rendering pass object are shaded in.
FBPropertyShadowFrameType ShadowFrameType
Read Write Property: Used to select the shadow calculation method.
FBPropertyListObject Lights
List: List of light object which will produce shadows.
Models are blended additively.
This shader will able to draw different shape thus generate different shadow than original solid geom...
Shader Shadow Live class.
Alpha > 0.5 will show up.
class FBPropertyBaseEnum< enum FBShadowFrameType > FBPropertyShadowFrameType
FBShaderCapacity
Shader Capacity.
PropertyList: Concrete class for PropertyList of component
FBStringList ShaderTypeNames
List of available shaders.
FBPropertyDouble Luminosity
Read Write Property: Changes the brightness of the object when reflecting light.
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Similar to the Projective Light Map except that it uses a boolean algorithm to create a self-shadow...
Template class to contain an array of items.
FBPropertyBool UseGobo
Read Write Property: Includes the gobo in the shadow map calculation.
KModelRenderInfo * HKModelRenderInfo
FBPropertyListObject Models
List: List of object which when lighted will cast a shadow.
#define FBSDKNamespace
FBSDKNamespace define.
Bases the shadow calculation on the shadow of the receiver.
FBPropertyBool LocalShadow
Read Write Property: Creates an accurate projection of a shadow for each object.
FBShaderPassActionCallback
Shader Pass Action Callback.
Similar to the Planar Shadow, except that it treats all objects as opaque.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Uses a texture projection as a shadow.
A box is a fundamental building block in the application architecture.
FBPropertyBool UseSpecular
Read Write Property: Activate the Specularity option.
KShaderModelInfo * GetShaderModelInfo() const
Get Internal ShaderModelInfo object.
#define K_DEPRECATED_2014
Use this shadow type to create darkened shadow areas only on planar surfaces.
This shader can support GL_ARB_draw_instanced extension, and thus could benefit from Geometry instanc...
class FBPropertyBaseEnum< enum FBShadowType > FBPropertyShadowType
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
class FBPropertyBaseEnum< enum FBRenderingPass > FBPropertyRenderingPass
KRenderOptions * HKRenderOptions
FBPropertyBool Enable
Read Write Property: Is the shader Enabled
Models are sorted and blended.
const char * ShaderDescription
Description.
FBShadowType
Shadow types.
#define FBClassDeclare(Name, Parent)
Class declaration.
Undocumented or unsupported.
FBPropertyAlphaSource Transparency
Read Write Property: Indicates the computation method of the transparency.
FBPropertyDouble Contrast
Read Write Property: Changes the contrast of the object when it reflects light.
Bases the shadow calculation on the shadow of the caster.