The Saphira's Wiki
Advertisement

Le COLLADA propose deux méthodes pour déterminer le format approprié pour une surface. La première basé sur un identifiant représentant le format, et la deuxième se basant sur une liste de contraintes sur le format. Le moteur n’utilisera peut-être pas le format voulu, l’implémentation pouvant ne pas proposer tel ou tel format, cependant, il essaiera d’obtenir un format approché en ajustant éventuellement la taille des différentes composantes.

Première méthode : utilisation de l’élément surface/format[]

L’élément surface/format contient une chaine de caractère décrivant le format à utiliser parmi la liste des différents formats reconnu par le moteur.

La liste ci-dessus répertorie l’ensemble des différents formats internes de texture acceptés par le moteur ; ils peuvent être utilisés dans la description des surfaces dans les fichiers COLLADA. Celle-ci reprend à la fois les notations utilisés par OpenGl 3.1 et par DirectX.

Voici la liste exhaustive des formats acceptés par le jeu :

  • ALPHA, RED, RG, RGB, RGBA, GL_RGB_SNORM, GL_RGBA_SNORM
  • ALPHA4, ALPHA8, ALPHA12, ALPHA16
  • R8, R8_SNORM, R16, R16_SNORM
  • RG8, RG8_SNORM, RG16, RG16_SNORM
  • R3_G3_B2, RGB4, RGB5, RGB8, RGB8_SNORM, RGB10, RGB12, RGB16, RGB16_SNORM
  • RGBA2, RGBA4, RGB5_A1, RGBA8, RGBA8_SNORM, RGB10_A2, RGBA12, RGBA16, RGBA16_SNORM
  • SRGB, SRGB8, SRGB_ALPHA, SRGB8_ALPHA8
  • R16F, RG16F, RGB16F, RGBA16F, R32F, RG32F, RGB32F, RGBA32F, R11F_G11F_B10F, RGB9_E5
  • R8I, R8UI, R16I, R16UI, R32I, R32UI, RG8I, RG8UI, RG16I, RG16UI, RG32I, RG32UI, RGB8I, RGB8UI, RGB16I, RGB16UI, RGB32I, RGB32UI, RGBA8I, RGBA8UI, RGBA16I, RGBA16UI, RGBA32I, RGBA32UI
  • DEPTH_COMPONENT, DEPTH_STENCIL
  • DEPTH_COMPONENT16, DEPTH_COMPONENT24, DEPTH_COMPONENT32, DEPTH_COMPONENT32F, DEPTH24_STENCIL8, DEPTH32_STENCIL8
  • COMPRESSED_RED, COMPRESSED_RG, COMPRESSED_RGB, COMPRESSED_RGBA, COMPRESSED_SRGB, COMPRESSED_SRGB_ALPHA, COMPRESSED_RED_RGTC1, COMPRESSED_SIGNED_RED_RGTC1, COMPRESSED_RG_RGTC2, COMPRESSED_SIGNED_RG_RGTC2
  • R32G32B32A32_FLOAT, R32G32B32A32_UINT, R32G32B32A32_SINT, R32G32B32_FLOAT, R32G32B32_UINT, R32G32B32_SINT
  • R16G16B16A16, R16G16B16A16_FLOAT, R16G16B16A16_UINT, R16G16B16A16_UNORM, R16G16B16A16_SINT, R16G16B16A16_SNORM
  • R32G32_FLOAT, R32G32_UINT, R32G32_SINT
  • R10G10B10A2, R11G11B10_FLOAT, R8G8B8A8, R8G8B8A8_UNORM, R8G8B8A8_UNORM_SRGB, R8G8B8A8_UINT, R8G8B8A8_SINT, R8G8B8A8_SNORM
  • R16G16, R16G16_FLOAT, R16G16_UINT, R16G16_UNORM, R16G16_SINT, R16G16_SNORM
  • R32_FLOAT, D32_FLOAT, R32_UINT, R32_SINT, D24_UNORM_S8_UINT
  • R8G8, R8G8_UNORM, R8G8_UINT, R8G8_SINT, R8G8_SNORM, R16, D16, R16_FLOAT, R16_UNORM, D16_UNORM, R16_UINT, R16_SNORM, R16_SINT, R8, R8_UNORM, R8_UINT, R8_SNORM, R8_SINT, A8
  • R9G9B9E5_SHAREDEXP

Deuxième méthode : utilisation de l’élément surface/format_hint[]

Dans cette deuxième méthode, vous pouvez préciser quelques critères que le moteur s’efforcera de respecter, cependant, celui-ci peut ne pas les respecter si ceux-ci ne peuvent être remplis comme par exemple demander une texture RGB 32 UNORM.

La table ci-dessus décrit les différents champs de surface/format_hint :

Nom Description Occurrences
channels Contient une énumération décrivant les différentes composantes utilisés pour chaque texel. Les valeurs disponibles sont :
  • RGB
  • RGBA
  • D (depth map)
  • XYZ ( assimilé à du RGB )
  • XYZW ( assimilé à du RGBA )

Les valeurs suivantes sont ignorées par le moteur :

  • L
  • LA

Si celle-ci étaient utilisées, le moteur utiliserait le format par défaut RGBA8.

1
range Contient une énumération décrivant le type utilisé pour chaque texel. Les valeurs possibles sont :
  • SNORM : Format décimal représentant l’ensemble .
  • UNORM : Format décimal représentant l’ensemble .
  • SINT : Format représentant un entier signé décrivant l’ensemble où j est le nombre de bits utilisés.
  • UINT : Format représentant un entier non-signé décrivant l’ensemble où j est le nombre de bits utilisés.
  • FLOAT : Format flottant souvent utilisé pour le HDR.
1
precision Contient une énumération décrivant la précision utilisé. Les valeurs possibles sont :
  • LOW : 8-bits pour des entiers, 16-bits pour des flottants.
  • MID : 16-bits pour des entiers, 24-bits pour des flottants.
  • HIGH : 32-bits pour des entiers et pour des flottants.
0 ou 1
option Contient une énumération permettant de définir des options supplémentaires relatives au format. Les valeurs possibles sont :
  • SRGB_GAMMA : Les couleurs sont stockées dans l’espace colorimétrique sRGB et non linéairement.
  • COMPRESSABLE : La texture peut être compressée, dans ce cas, le moteur utilise systématiquement un des formats suivants :
    • COMPRESSED_RGB
    • COMPRESSED_RGBA
    • COMPRESSED_SRGB
    • COMPRESSED_SRGB_ALPHA

Les options suivantes ne sont pas reconnus par le moteur :

  • NORMALIZED3
  • NORMALIZED4
0 ou plus
Advertisement