Classes | Defines | Enumerations | Functions

shaders.h File Reference

#include "iparamb2.h"
#include "stdmat.h"
#include "buildver.h"

Go to the source code of this file.

Classes

class   ShaderParamDlg
  A shader parameter dialog class. More...
class   BaseShader
  One of the base classes for the creation of the Shaders, which plug-in to the Standard material[?]. More...
class   Shader
  Used by developers to create Shader plug-ins. More...

Defines

#define  N_ID_CHANNELS   16
  Number of IDs in stdMat.
#define  OPACITY_PARAM   0
#define  DEFAULT_SOFTEN   0.1f
#define  SELFILLUM_CLR_ON   (1<<16)
#define  HAS_BUMPS   0x01L
  Indicates that the bump mapping is present.
#define  HAS_REFLECT   0x02L
  Indicates that there is any kind of reflection (raytraced, etc).
#define  HAS_REFRACT   0x04L
  Indicates that there is any kind of refraction.
#define  HAS_OPACITY   0x08L
  Indicates that opacity mapping is used.
#define  HAS_REFLECT_MAP   0x10L
  Indicates that there is a reflection map only.
#define  HAS_REFRACT_MAP   0x20L
  Indicates that there is a refraction map only.
#define  HAS_MATTE_MTL   0x40L
#define  UNSUPPORTED_CHANNEL   0x01L
  Indicates that the channel is not supported (is not used).
#define  CLR_CHANNEL   0x02L
  A color channel.
#define  MONO_CHANNEL   0x04L
  A monochrome channel.
#define  BUMP_CHANNEL   0x08L
  The bump mapping channel.
#define  REFL_CHANNEL   0x10L
  The reflection channel.
#define  REFR_CHANNEL   0x20L
  The refraction channel.
#define  DISP_CHANNEL   0x40L
  The displacement channel.
#define  SLEV_CHANNEL   0x80L
#define  ELIMINATE_CHANNEL   0x8000L
  Indicates that the channel is not supported.
#define  SKIP_CHANNELS   (UNSUPPORTED_CHANNEL+BUMP_CHANNEL+REFL_CHANNEL+REFR_CHANNEL)
  This is used internally to indicate that the channels to be skipped.
#define  DEFAULT_SHADER_CLASS_ID   BLINNClassID
  Class Id upper half for loading the Pre 3.0 shaders.
#define  PHONGClassID   (STDSHADERS_CLASS_ID+2)
#define  METALClassID   (STDSHADERS_CLASS_ID+4)
#define  BLINNClassID   (STDSHADERS_CLASS_ID+3)
  For Blinn Shader.
#define  ANISOSHADER_CLASS_ID   0x2857f460
  For Anisotropic Shader.
#define  NEWSHADERS_CLASS_ID   0x2857f420
  For Oren/Nayar/Blinn Shader.
#define  STRAUSS_SHADER_CLASS_ID   0x2857f450
  For Strauss Shader.
#define  SHADERBASE_CHUNK   0x39bf
#define  SHADERNAME_CHUNK   0x0100
#define  STD_PARAM_NONE   (0)
  Indicates that none of the flags in the Standard_Parameters is used.
#define  STD_PARAM_ALL   (0xffffffffL)
  Indicates that all of the flags in the Standard_Parameters are used.
#define  STD_PARAM_METAL   (1)
  Only used by the Metal shader.
#define  STD_PARAM_LOCKDS   (1<<1)
  Indicates support for the Diffuse/Specular lock.
#define  STD_PARAM_LOCKAD   (1<<2)
  Indicates support for the Ambient/Diffuse lock.
#define  STD_PARAM_LOCKADTEX   (1<<3)
  Indicates support for the Ambient/Diffuse texture lock.
#define  STD_PARAM_SELFILLUM   (1<<4)
  Indicates support for the Self Illumination parameter.
#define  STD_PARAM_SELFILLUM_CLR   (1<<5)
  Indicates support for the Self Illumination color parameter.
#define  STD_PARAM_AMBIENT_CLR   (1<<6)
  Indicates support for the Ambient color parameter.
#define  STD_PARAM_DIFFUSE_CLR   (1<<7)
  Indicates support for the Diffuse color parameter.
#define  STD_PARAM_SPECULAR_CLR   (1<<8)
  Indicates support for the Specular color parameter.
#define  STD_PARAM_FILTER_CLR   (1<<9)
  Indicates support for the Filter color parameter.
#define  STD_PARAM_GLOSSINESS   (1<<10)
  Indicates support for the Glossiness parameter.
#define  STD_PARAM_SOFTEN_LEV   (1<<11)
  Indicates support for the Soften Level parameter.
#define  STD_PARAM_SPECULAR_LEV   (1<<12)
  Indicates support for the Specular Level parameter.
#define  STD_PARAM_DIFFUSE_LEV   (1<<13)
  Indicates support for the Diffuse Level parameter.
#define  STD_PARAM_DIFFUSE_RHO   (1<<14)
  Indicates support for the Roughness parameter.
#define  STD_PARAM_ANISO   (1<<15)
  Indicates support for the Specular Highlight Anisotropy parameter.
#define  STD_PARAM_ORIENTATION   (1<<16)
  Indicates support for the Specular Highlight Orientation parameter.
#define  STD_PARAM_REFL_LEV   (1<<17)
  This is reserved for future use.
#define  STD_PARAM_SELFILLUM_CLR_ON   (1<<18)
  Indicates support for the Self Illumination Color On/Off checkbox.
#define  STD_BASIC2_DLG   (1<<20)
  This bit is only set by the three pre-R3 shaders (Phong, Blinn, and Metal).
#define  STD_EXTRA_DLG   (1<<21)
  Indicates support for the Extended Parameters rollout.
#define  STD_EXTRA_REFLECTION   (1<<22)
  Indicates support for Reflection Dimming parameters (Apply, Dim Level, Refl Level).
#define  STD_EXTRA_REFRACTION   (1<<23)
  Indicates support for Index of Refraction parameter.
#define  STD_EXTRA_OPACITY   (1<<24)
  Indicates support for Opacity parameters (Amount, In/Out, Type).
#define  STD_EXTRA
#define  STD_BASIC   (0x00021ffeL | STD_BASIC2_DLG)
#define  STD_BASIC_METAL   (0x00021fffL | STD_BASIC2_DLG)
#define  STD_ANISO   (0x0002cffe)
#define  STD_MULTILAYER   (0x0002fffe)
#define  STD_ONB   (0x00023ffe)
#define  STD_WARD   (0x00000bce)

Enumerations

enum   Shader_Anisotropic_Shader_BlockID { aniso_params }
 

BlockID Anisotropic Shader.

More...
enum   Shader_Anisotropic_Shader_ParamIDs {
  an_ambient, an_diffuse, an_specular, an_self_illum_color,
  an_diffuse_level, an_specular_level, an_self_illum_amnt, an_glossiness,
  an_anisotropy, an_orientation, an_map_channel, an_ad_texlock,
  an_ad_lock, an_ds_lock, an_use_self_illum_color
}
 

ParamID's for Anisotropic Shader.

More...
enum   Shader_Oren_Nayar_Blinn_BlockID { onb_params }
 

BlockID Oren Nayer Blinn Shader.

More...
enum   Shader_Oren_Nayar_Blinn_ParamIDs {
  onb_ambient, onb_diffuse, onb_specular, onb_self_illum_color,
  onb_self_illum_amnt, onb_glossiness, onb_specular_level, onb_soften,
  onb_diffuse_level, onb_roughness, onb_ad_texlock, onb_ad_lock,
  onb_ds_lock, onb_use_self_illum_color
}
 

ParamID's for Oren Nayer Blinn Shader.

More...
enum   Shader_Strauss_BlockID { strauss_params }
 

BlockID for Strauss Shader.

More...
enum   Shader_Strauss_ParamIDs { st_diffuse, st_glossiness, st_metalness }
 

ParamID's for Strauss Shader.

More...

Functions

static Class_ID  BlinnClassID (STDSHADERS_CLASS_ID+3, 0)
  For Blinn Shader.
static Class_ID  AnisoShaderClassID (ANISOSHADER_CLASS_ID, 0)
  For Anisotropic Shader.
static Class_ID  AnisoShaderDlgClassID (ANISOSHADER_CLASS_ID, 0)
  For Anisotropic Shader.
static Class_ID  OrenNayarBlinnShaderClassID (NEWSHADERS_CLASS_ID+1, 0)
  For Oren/Nayar/Blinn Shader.
static Class_ID  OrenNayarShaderDlgClassID (NEWSHADERS_CLASS_ID+2, 0)
  For Oren/Nayar/Blinn Shader.
static Class_ID  StraussShaderClassID (STRAUSS_SHADER_CLASS_ID, 0)
  For Strauss Shader.

Define Documentation

#define N_ID_CHANNELS   16

Number of IDs in stdMat.

Definition at line 16 of file shaders.h.

#define OPACITY_PARAM   0

Definition at line 18 of file shaders.h.

#define DEFAULT_SOFTEN   0.1f

Definition at line 19 of file shaders.h.

#define SELFILLUM_CLR_ON   (1<<16)

Definition at line 112 of file shaders.h.

#define DEFAULT_SHADER_CLASS_ID   BLINNClassID

Class Id upper half for loading the Pre 3.0 shaders.

Definition at line 164 of file shaders.h.

#define PHONGClassID   (STDSHADERS_CLASS_ID+2)

Definition at line 167 of file shaders.h.

#define METALClassID   (STDSHADERS_CLASS_ID+4)

Definition at line 168 of file shaders.h.

#define BLINNClassID   (STDSHADERS_CLASS_ID+3)

For Blinn Shader.

Definition at line 172 of file shaders.h.

#define ANISOSHADER_CLASS_ID   0x2857f460

For Anisotropic Shader.

Definition at line 175 of file shaders.h.

#define NEWSHADERS_CLASS_ID   0x2857f420

For Oren/Nayar/Blinn Shader.

Definition at line 195 of file shaders.h.

#define STRAUSS_SHADER_CLASS_ID   0x2857f450

For Strauss Shader.

Definition at line 216 of file shaders.h.

#define STD_EXTRA
#define STD_BASIC   (0x00021ffeL | STD_BASIC2_DLG)

Definition at line 820 of file shaders.h.

#define STD_BASIC_METAL   (0x00021fffL | STD_BASIC2_DLG)

Definition at line 823 of file shaders.h.

#define STD_ANISO   (0x0002cffe)

Definition at line 824 of file shaders.h.

#define STD_MULTILAYER   (0x0002fffe)

Definition at line 825 of file shaders.h.

#define STD_ONB   (0x00023ffe)

Definition at line 826 of file shaders.h.

#define STD_WARD   (0x00000bce)

Definition at line 827 of file shaders.h.


Enumeration Type Documentation

BlockID Anisotropic Shader.

Enumerator:
aniso_params 

Definition at line 180 of file shaders.h.

BlockID Oren Nayer Blinn Shader.

Enumerator:
onb_params 

Definition at line 200 of file shaders.h.

{
    onb_params
};

BlockID for Strauss Shader.

Enumerator:
strauss_params 

Definition at line 220 of file shaders.h.

ParamID's for Strauss Shader.

Enumerator:
st_diffuse 
st_glossiness 
st_metalness 

Definition at line 226 of file shaders.h.


Function Documentation

static Class_ID BlinnClassID ( STDSHADERS_CLASS_ID+  3,
 
) [static]
static Class_ID AnisoShaderClassID ( ANISOSHADER_CLASS_ID  ,
 
) [static]
static Class_ID AnisoShaderDlgClassID ( ANISOSHADER_CLASS_ID  ,
 
) [static]
static Class_ID OrenNayarBlinnShaderClassID ( NEWSHADERS_CLASS_ID+  1,
 
) [static]

For Oren/Nayar/Blinn Shader.

static Class_ID OrenNayarShaderDlgClassID ( NEWSHADERS_CLASS_ID+  2,
 
) [static]

For Oren/Nayar/Blinn Shader.

static Class_ID StraussShaderClassID ( STRAUSS_SHADER_CLASS_ID  ,
 
) [static]