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;
360 bool IsIDBufferRendering()
const;
365 float GetIDBufferPickingAlphaThreshold()
const;
370 bool IsOfflineRendering()
const;
372 FBViewingOptions* GetViewerOptions()
const;
374 #ifndef DOXYGEN_SHOULD_SKIP_THIS
488 virtual void ReplaceAll(
FBModel* pModel );
493 virtual void Append(
FBModel* pModel );
498 virtual bool ShaderNeedBeginRender();
594 virtual void ShaderPassDrawShadowBegin(
FBRenderOptions* pRenderOptions);
599 virtual void ShaderPassDrawShadowEnd (
FBRenderOptions* pRenderOptions);
611 virtual void CloneShaderParameter(
FBShader* pNewShader );
630 virtual bool FbxRetrieve(
FBFbxObject* pFbxObject, FBRenderer* pRenderer);
635 void InvalidateShaderVersion ();
638 int GetShaderVersion ()
const;
652 int GetDrawInstancedMaximumSize()
const;
655 void SetDrawInstancedMaximumSize(
int pMaxSize);
661 virtual void UploadModelViewMatrixArrayForDrawInstanced(
const double* pModelViewMatrixArray,
int pCount);
903 #ifdef FBSDKUseNamespace
FBPropertyBool UseGobo
Read Write Property: Includes the gobo in the shadow map calculation.
#define __FBClassDeclare(Name, Parent)
For internal use only.
FBPropertyDouble Contrast
Read Write Property: Changes the contrast of the object when it reflects light.
A box is a fundamental building block in the application architecture.
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.
FBPropertyListObject Lights
List: List of light object which will produce shadows.
Similar to the Planar Shadow, except that it treats all objects as opaque.
#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.
FBStringList ShaderTypeNamesLocalized
List of available shaders.
Similar to the Projective Light Map except that it uses a boolean algorithm to create a self-shadow...
FBPropertyAnimatableDouble Alpha
Read Write Property: Controls the actual effect of the shader on the object.
class FBPropertyBaseEnum< enum FBShadowType > FBPropertyShadowType
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...
FBPropertyBool UseLuminosity
Read Write Property: Activate the Luminosity option.
Template class to contain an array of items.
FBShaderPassActionCallback
Shader Pass Action Callback.
Uses a texture projection as a shadow.
Creates custom cameras and manages system cameras.
Contains definitions for devices, boxes and models.
#define IObject_Declare(IsPure)
Models are sorted and blended.
class FBPropertyBaseEnum< enum FBRenderingPass > FBPropertyRenderingPass
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
FBPropertyBool Enable
Read Write Property: Is the shader Enabled
FBPropertyBool UseContrast
Read Write Property: Activate the Contrast option.
FBShadowType
Shadow types.
Bases the shadow calculation on the shadow of the caster.
Shader Shadow Live class.
class FBPropertyBaseEnum< enum FBAlphaSource > FBPropertyAlphaSource
FBRenderingPass
Rendering Pass.
This shader will able to draw additional texture layer (for example, live shadow or reflection)...
Undocumented or unsupported.
FBStringList ShaderTypeNames
List of available shaders.
const char * ShaderDescription
Description.
PropertyList: Concrete class for PropertyList of component
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
FBPropertyDouble Luminosity
Read Write Property: Changes the brightness of the object when reflecting light.
KModelRenderInfo * HKModelRenderInfo
FBModel * GetFBModel()
Get Model.
#define FBSDKNamespace
FBSDKNamespace define.
FBPropertyAnimatableDouble ShadowIntensity
Read Write Property: Controls the darkness of shadows cast by a selected object.
FBAlphaSource
Shader transparency computation.
FBPropertyDouble ShadowZOffset
Read Write Property: Specifies the offset of the Live Shadow shader's plane from the original selecte...
Translucent(Models Z Sort).
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
FBPropertyRenderingPass RenderingPass
Read Write Property: Rendering pass object are shaded in.
FBPropertyBool UseSpecular
Read Write Property: Activate the Specularity option.
class FBPropertyBase< double, kFBPT_double > FBPropertyDouble
Property: double
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
KRenderOptions * HKRenderOptions
FBPropertyShadowType ShadowType
Read Write Property: Indicate which shadow type is desired.
class FBPropertyBaseAnimatable< double, kFBPT_double > FBPropertyAnimatableDouble
FBPropertyBaseAnimatableDouble type definition.
Uses a texture projection to create a shadow.
This shader is acting as a material effect, should sitting behind the material central network...
Similar to the Projective Shadow, except that it uses a boolean algorithm to create a self-shadow...
FBPropertyShadowFrameType ShadowFrameType
Read Write Property: Used to select the shadow calculation method.
Writes to depth buffer where Alpha > 0.5.
Models are blended additively.
class FBPropertyBaseEnum< enum FBShadowFrameType > FBPropertyShadowFrameType
This shader will able to draw different shape thus generate different shadow than original solid geom...
KShaderModelInfo * GetShaderModelInfo() const
Get Internal ShaderModelInfo object.
#define FBClassDeclare(Name, Parent)
Class declaration.
FBShaderCapacity
Shader Capacity.
FBPropertyAlphaSource Transparency
Read Write Property: Indicates the computation method of the transparency.
Alpha > 0.5 will show up.
FBPropertyListObject Models
List: List of object which when lighted will cast a shadow.
FBShadowFrameType
Shadow calculation methods.
FBPropertyDouble Specular
Read Write Property: Changes an object's level of shininess when it reflects light by affecting the s...
class FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool