KhronosGroup/glTF-Asset-Generator

Feature Roadmap

stevk opened this issue · 6 comments

stevk commented

These are the attributes that should have tests created next. They are listed in order of priority.

  • Materials and PBR

  • Samplers

  • Primitives_Attributes
    position
    normal
    tangent
    TexCoord_0
    TexCoord_1
    Color_0

  • Spec gloss material

  • Assets: Version checking
    Version/Min version
    Extensions required

  • Mesh
    indices (on/off)
    indices mode
    Single primitive
    multiple primitives (Split into 2 triangles. PrimitiveAttributes: All on - all off)

  • Color Space
    sRGB
    linear

  • Nodes
    Node w/ child
    Node w/ children
    Node w/ deep node hierarchy
    Node with transformations (Combo?, Axis flip, negative scale, etc.)
    matrix (transformation)
    rotation
    scale
    translation

  • Interleaved buffers
    Position, UV0, Vertex Color

  • Node Animation

  • Skin Animation

  • Animation Sampler component types #533

  • Instancing #419

  • Accessors - sparse

  • Buffers
    Individual buffers for POSITION, INDEX, NORMAL, animation channels #440
    multiple buffers
    BufferViews byteStride (undefined, two or more accessors)
    BufferViews target (ArrayBuffer, ElementArrayBuffer)

  • .Glb
    Data packed
    No data packed
    Some data packed

  • Texture Source
    .jpeg
    url

  • URI tests #451

  • Material test w/ normals, vertex colors, base color factor + base color texture #438

  • Alpha mask tested with different alpha factors (1, 0, 0.8)

  • Alpha blend tested with different alpha factors (1, 0, 0.8)

  • Max, min values of floats. Only ones with limited ranges?

  • Test engine limits #283

  • Unsigned indices with values high enough that they have negative values if treated as signed #316

  • Points w/ normals, w/o indices. w/ texture cords #371

  • Lines w/ normal #371

  • Lines w/ normals, tangent, normal texture, and texture coords #371

  • Alpha_blend, alpha_mask w/ double sided

  • Morph Targets
    Support of at least eight morphed attributes
    Add instancing model

  • Scenes
    Zero scenes
    One Scene
    Multiple Scenes
    One Scene w/ multiple nodes
    Multiple Scenes w/ multiple nodes
    Multiple Scenes w/ the same node
    Multiple Scenes/no scene attribute

  • Material test using ORM texture #405

  • Non-power of 2 textures #318

  • Node Parent-child hierarchy transform #363

  • MSFT LODs #353

  • KHR_materials_unlit (extension) #446

  • KHR_light_punctual (extension) #452

  • KHR_tex transform (extension) #531

  • Outside of range for attributes that have float values (Negative test)

  • Model missing a top level feature. E.g. Missing material, or node, etc… Won't render anything. (Negative test)

  • Test tangent space of normal map #472

  • Name field with special cases (null string, duplicated)

  • Node with negative scale and double sided (should work if both features work separately, so low pri).

NON-FEATURE WORK

  • Model, MeshPrimitive, and Modelgroup should have separate .cs files #510
  • Add data for validating animations (Blocked. Need external requirements) #456
  • Create MD detailing the base model used #140
  • Separate and display occlusion, roughness, and metallic textures in readme #198
  • Mesh_Primitives has only a single model (add models or consolidate) #421
  • Move glTF-Assets-Viewer to glTF-Asset-Generator #447
  • Only display the skybox for models that have attributes that require a skybox #519

I think Mesh, Primitives, Primitive_Attributes should be first in this list. Scene, node, etc. can go later.

stevk commented

Made that update.

Since there is a question mark for buffers, perhaps add individual buffers for POSITION, INDEX, NORMAL, animation channels etc. Some engines may expect that there is only one buffer, or one for geometry and one for animation.

Sure, we can do that. Do you mind filing a separate issue so that it doesn't get lost?

Please see #440.