154 lines
4.3 KiB
Plaintext
154 lines
4.3 KiB
Plaintext
|
unit aiMaterial;
|
||
|
|
||
|
interface
|
||
|
|
||
|
uses aiTypes, aiVector2D, aiVector3D;
|
||
|
|
||
|
{This following directive causes enums to be stored as double words (32bit), to be compatible with
|
||
|
the assimp C Dll}
|
||
|
{$Z4}
|
||
|
|
||
|
type TaiTextureOp = (
|
||
|
aiTextureOp_Multiply = $0,
|
||
|
aiTextureOp_Add = $1,
|
||
|
aiTextureOp_Subtract = $2,
|
||
|
aiTextureOp_Divide = $3,
|
||
|
aiTextureOp_SmoothAdd = $4,
|
||
|
aiTextureOp_SignedAdd = $5
|
||
|
//_aiTextureOp_Force32Bit = 0x9fffffff
|
||
|
);
|
||
|
|
||
|
type TaiTextureMapMode = (
|
||
|
aiTextureMapMode_Wrap = $0,
|
||
|
aiTextureMapMode_Clamp = $1,
|
||
|
aiTextureMapMode_Decal = $3,
|
||
|
aiTextureMapMode_Mirror = $2
|
||
|
//_aiTextureMapMode_Force32Bit = 0x9fffffff
|
||
|
);
|
||
|
|
||
|
type TaiTextureMapping = (
|
||
|
aiTextureMapping_UV = $0,
|
||
|
aiTextureMapping_SPHERE = $1,
|
||
|
aiTextureMapping_CYLINDER = $2,
|
||
|
aiTextureMapping_BOX = $3,
|
||
|
aiTextureMapping_PLANE = $4,
|
||
|
aiTextureMapping_OTHER = $5
|
||
|
//_aiTextureMapping_Force32Bit = 0x9fffffff
|
||
|
);
|
||
|
|
||
|
type TaiTextureType = (
|
||
|
aiTextureType_NONE = $0,
|
||
|
aiTextureType_DIFFUSE = $1,
|
||
|
aiTextureType_SPECULAR = $2,
|
||
|
aiTextureType_AMBIENT = $3,
|
||
|
aiTextureType_EMISSIVE = $4,
|
||
|
aiTextureType_HEIGHT = $5,
|
||
|
aiTextureType_NORMALS = $6,
|
||
|
aiTextureType_SHININESS = $7,
|
||
|
aiTextureType_OPACITY = $8,
|
||
|
aiTextureType_DISPLACEMENT = $9,
|
||
|
aiTextureType_LIGHTMAP = $A,
|
||
|
aiTextureType_REFLECTION = $B,
|
||
|
aiTextureType_UNKNOWN = $C
|
||
|
//_aiTextureType_Force32Bit = 0x9fffffff
|
||
|
);
|
||
|
|
||
|
const AI_TEXTURE_TYPE_MAX = aiTextureType_UNKNOWN;
|
||
|
|
||
|
type TaiShadingMode = (
|
||
|
aiShadingMode_Flat = $1,
|
||
|
aiShadingMode_Gouraud = $2,
|
||
|
aiShadingMode_Phong = $3,
|
||
|
aiShadingMode_Blinn = $4,
|
||
|
aiShadingMode_Toon = $5,
|
||
|
aiShadingMode_OrenNayar = $6,
|
||
|
aiShadingMode_Minnaert = $7,
|
||
|
aiShadingMode_CookTorrance = $8,
|
||
|
aiShadingMode_NoShading = $9,
|
||
|
aiShadingMode_Fresnel = $A
|
||
|
//_aiShadingMode_Force32Bit = 0x9fffffff
|
||
|
);
|
||
|
|
||
|
|
||
|
type TaiTextureFlags = (
|
||
|
aiTextureFlags_Invert = $1,
|
||
|
aiTextureFlags_UseAlpha = $2,
|
||
|
aiTextureFlags_IgnoreAlpha = $4
|
||
|
//_aiTextureFlags_Force32Bit = 0x9fffffff
|
||
|
);
|
||
|
|
||
|
type TaiBlendMode = (
|
||
|
aiBlendMode_Default = $0,
|
||
|
aiBlendMode_Additive = $1
|
||
|
//_aiBlendMode_Force32Bit = 0x9fffffff
|
||
|
);
|
||
|
|
||
|
type TaiUVTransform = packed record
|
||
|
mTranslation: TaiVector2D;
|
||
|
mScaling: TaiVector2D;
|
||
|
mRotation: single;
|
||
|
end;
|
||
|
|
||
|
type TaiPropertyTypeInfo = (
|
||
|
aiPTI_Float = $1,
|
||
|
aiPTI_String = $3,
|
||
|
aiPTI_Integer = $4,
|
||
|
aiPTI_Buffer = $5
|
||
|
// _aiPTI_Force32Bit = 0x9fffffff
|
||
|
);
|
||
|
|
||
|
type TaiMaterialProperty = packed record
|
||
|
mKey: aiString;
|
||
|
mSemantic: Cardinal;
|
||
|
mIndex: Cardinal;
|
||
|
mDataLength: Cardinal;
|
||
|
mType: TaiPropertyTypeInfo;
|
||
|
mData: PChar;
|
||
|
end;
|
||
|
type PaiMaterialProperty = ^TaiMaterialProperty;
|
||
|
|
||
|
type TaiMaterial = packed record
|
||
|
mProperties: pointer;
|
||
|
mNumProperties: Cardinal;
|
||
|
mNumAllocated: Cardinal;
|
||
|
end;
|
||
|
type PaiMaterial = ^TaiMaterial;
|
||
|
type PaiMaterialArray = array[0..0] of PaiMaterial;
|
||
|
type PPaiMaterialArray = ^PaiMaterialArray;
|
||
|
|
||
|
const AI_MATKEY_NAME = '?mat.name';
|
||
|
const AI_MATKEY_TWOSIDED = '$mat.twosided';
|
||
|
const AI_MATKEY_SHADING_MODEL = '$mat.shadingm';
|
||
|
const AI_MATKEY_ENABLE_WIREFRAME = '$mat.wireframe';
|
||
|
const AI_MATKEY_BLEND_FUNC = '$mat.blend';
|
||
|
const AI_MATKEY_OPACITY = '$mat.opacity';
|
||
|
const AI_MATKEY_BUMPSCALING = '$mat.bumpscaling';
|
||
|
const AI_MATKEY_SHININESS = '$mat.shininess';
|
||
|
const AI_MATKEY_REFLECTIVITY = '$mat.reflectivity';
|
||
|
const AI_MATKEY_SHININESS_STRENGTH = '$mat.shinpercent';
|
||
|
const AI_MATKEY_REFRACTI = '$mat.refracti';
|
||
|
const AI_MATKEY_COLOR_DIFFUSE = '$clr.diffuse';
|
||
|
const AI_MATKEY_COLOR_AMBIENT = '$clr.ambient';
|
||
|
const AI_MATKEY_COLOR_SPECULAR = '$clr.specular';
|
||
|
const AI_MATKEY_COLOR_EMISSIVE = '$clr.emissive';
|
||
|
const AI_MATKEY_COLOR_TRANSPARENT = '$clr.transparent';
|
||
|
const AI_MATKEY_COLOR_REFLECTIVE = '$clr.reflective';
|
||
|
const AI_MATKEY_GLOBAL_BACKGROUND_IMAGE = '?bg.global';
|
||
|
|
||
|
const _AI_MATKEY_TEXTURE_BASE = '$tex.file';
|
||
|
const _AI_MATKEY_UVWSRC_BASE = '$tex.uvwsrc';
|
||
|
const _AI_MATKEY_TEXOP_BASE = '$tex.op';
|
||
|
const _AI_MATKEY_MAPPING_BASE = '$tex.mapping';
|
||
|
const _AI_MATKEY_TEXBLEND_BASE = '$tex.blend';
|
||
|
const _AI_MATKEY_MAPPINGMODE_U_BASE = '$tex.mapmodeu';
|
||
|
const _AI_MATKEY_MAPPINGMODE_V_BASE = '$tex.mapmodev';
|
||
|
const _AI_MATKEY_TEXMAP_AXIS_BASE = '$tex.mapaxis';
|
||
|
const _AI_MATKEY_UVTRANSFORM_BASE = '$tex.uvtrafo';
|
||
|
const _AI_MATKEY_TEXFLAGS_BASE = '$tex.flags';
|
||
|
|
||
|
|
||
|
|
||
|
implementation
|
||
|
|
||
|
end.
|