Skip to main content

Vertex Buffer Editor

Imported Geometry can be managed and configured in either ArrayBuffer or IndexBuffer format, depending on its Geometry Topology. ArrayBuffer offers higher rendering performance (cache efficiency and sequential read) but consumes more memory since vertices cannot be shared.

To configure these two types of Vertex Buffer elements, select the vertex buffer in the Solution Explorer, and then configure the VertexGeometry (vertex attribute statuses) within the [Vertex Buffer] category in the [Properties] panel.

drawing-4-1751508970.png

Within the Vertex Buffer, each Property Item (Normal, TextureCoordinate, Tangent, BiNormal) has a status of Imported (available), Removed (deleted), Regenerated/Generated (added), or Missing (not set). All selected Float32-type vertex attributes within the vertex buffer can be converted to Float16 if necessary, with convertible patterns indicated in parentheses.

When [Is Indexed] is enabled, the vertex buffer can be converted to an index array buffer by selecting the optimal index size. Depending on the vertex count, 8-bit, 16-bit, or 32-bit index buffers will be generated, and a valid buffer type can be specified via the BufferType property in the AssetData section.

When importing a glTF file that contains positions, UVs, and normals but lacks tangents, tangents will be automatically generated using the MikkTSpace algorithm. With MikkTSpace support in the Vertex Buffer Editor, the “Generated MikkTSpace” and “Regenerated MikkTSpace” options can now be selected for the Tangent and BiNormal Property Items, improving rendering quality when applying normal maps and ensuring consistency across tools.

The editable items are listed in the table below.

Normal

    When attribute is not included:
    Missing, Generated (Float16), Generated (Float32)

    When attribute is included:
    Imported (Float32), Imported (Float32 => Float16), Regenerated (Float16), Regenerated (Float32), Removed

    BiNormal/Tangent

      When attribute is not included:
      Missing, Generated MikkTSpace (Float16), Generated MikkTSpace (Float32), Generated (Float16), Generated (Float32)

      When attribute is included:
      Imported (Float32), Imported (Float32 => Float16), Regenerated MikkTSpace (Float16), Regenerated MikkTSpace (Float32), Regenerated (Float16), Regenerated (Float32), Removed

      The selectable items in the [Properties] panel vary depending on whether the imported file contains the respective vertex attributes.

      • If the respective vertex attribute is not included in the imported file (Missing status), [Generated] can be selected.
      • If the respective vertex attribute is included in the imported file (Imported status), [Regenerated] and [Removed] can be selected.

      Tangent and BiNormal support the MikkTSpace options, while TextureCoordinate is always included during import and thus never enters the Missing state, resulting in fewer selectable options compared to other attributes.

      Based on the above rules, the selectable options for each Property Item in the vertex buffer are as follows.

      Normal

        When attribute is not included:
        Missing, Generated (Float16), Generated (Float32)

        When attribute is included:
        Imported (Float32), Imported (Float32 => Float16), Regenerated (Float16), Regenerated (Float32), Removed

        BiNormal

          When attribute is not included:
          Missing, Generated MikkTSpace (Float16), Generated MikkTSpace (Float32), Generated (Float16), Generated (Float32)

          When attribute is included:
          Imported (Float32), Imported (Float32 => Float16), Regenerated MikkTSpace (Float16), Regenerated MikkTSpace (Float32), Regenerated (Float16), Regenerated (Float32), Removed

          Tangent

            When attribute is not included:
            Missing, Generated MikkTSpace (Float16), Generated MikkTSpace (Float32), Generated (Float16), Generated (Float32)

            When attribute is included:
            Imported (Float32), Imported (Float32 => Float16), Regenerated MikkTSpace (Float16), Regenerated MikkTSpace (Float32), Regenerated (Float16), Regenerated (Float32), Removed

            TextureCoordinate

            Imported (Float32), Imported (Float32 => Float16)

            If the import data and the property settings do not match, an error message will appear in the Output Panel. As with other properties, the settings can be reset using the arrow button on the left of each property (Please refer to the figure below). When settings are changed, values such as Vertex Stride, Vertex Count, and Vertex Format are updated and reflected within the [Vertex Buffer] category in the Properties panel.

            drawing-4-1751510001.png