Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions extensions/2.0/Vendor/BENTLEY_materials_line_style/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<!--
Copyright 2015-2025 The Khronos Group Inc.
SPDX-License-Identifier: CC-BY-4.0
-->

# BENTLEY_materials_line_style

## Contributors

* Paul Connelly, Bentley Systems, [@pmconne](https://github.com/pmconne)

## Status

Draft

## Dependencies

Written against the glTF 2.0 spec.

## Overview

3D modeling and computer-aided drafting (CAD) environments like SketchUp, MicroStation, and Revit use lines extensively to annotate both two- and three-dimensional visualizations. Different lines are rendered with different styles to convey particular semantics and/or differing levels of emphasis. A CAD line style specifies the width of the line and a dash pattern. The BENTLEY_materials_line_style augments a material with a description of a CAD line style.

This specification describes a minimal extension sufficient to meet Bentley Systems' requirements, with some suggestions for how it might be broadened and/or generalized while retaining a focus on CAD visualization.

## Specifying Line Styles

The `BENTLEY_materials_line_style` extension is applied to a material. If that material is used by any line-type primitive, or by the edges described by the `EXT_mesh_primitive_edge_visibility` extension, then it dictates the width and pattern with which the lines are to be drawn.

The `width` property specifies the width in pixels of the lines. For each line segment, extrude by half this width perpendicularly on both sides.

> Potential generalization: permit width to be specified in meters.

> Potential generalization: permit pixel width to scale with distance between a minimum and maximum.

> Potential generalization: we currently assume lines face the camera, which is sensible when using pixels as units of measure. But the glTF spec permits for lines to have normal and tangent attributes for purposes of lighting; this could also be used to specify the plane in which they should be extruded.

The `pattern` property specifies a pixel pattern to be repeated along the length of the line. It is an arbitrary length bitfield expressed as a string in which a `-` (hyphen) indicates a lit pixel and a ` ` (space) indicates an unlit pixel. The first character in the string determines whether the first pixel drawn by the line is lit or not, and so on until the last character, at which point the pattern repeats from the first character.

> Potential generalization: permit patterns to be specified in meters, such that each character in the bitfield correspond to some specified number of meters.

> TBD: do pixel widths and patterns refer to device pixels or screen pixels?

## glTF Schema Updates



## Implementation Notes

Because many graphics APIs do not support line primitives with a width larger than 1, tesselation is generally required to draw wide lines. Implementations may smooth out the tesselated lines by, e.g., inserting additional triangles at the joints to round them.

> Potential generalization: permit the join style (e.g., round, miter, bevel, diamond) and end cap style (butt, round, diamond, square) to be specified.

The pattern should be continuous along the length of each continuous line string or line loop.

Implementations may choose to aggregate the set of unique dash patterns into a texture with one row per pattern to be indexed by the shader program when applying a line style's pattern.

## JSON Schema


46 changes: 46 additions & 0 deletions extensions/2.0/Vendor/BENTLEY_materials_planar_fill/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<!--
Copyright 2015-2025 The Khronos Group Inc.
SPDX-License-Identifier: CC-BY-4.0
-->

# BENTLEY_materials_planar_fill

## Contributors

* Paul Connelly, Bentley Systems, [@pmconne](https://github.com/pmconne)

## Status

Draft

## Dependencies

Written against the glTF 2.0 spec.

## Overview

3D modeling and computer-aided drafting (CAD) environments like SketchUp, MicroStation, and Revit make extensive use of non-photorealistic two- and three-dimensional visualizations involving planar polygons with filled interiors. The `BENTLEY_materials_planar_fill` allows the behavior of the interior fill to be customized.

This specification describes a minimal extension sufficient to meet Bentley Systems' requirements, with some suggestions for how it might be broadened and/or generalized while retaining a focus on CAD visualization.

## Specifying Planar Fill

The `BENTLEY_materials_planar_fill` extension is applied to a material. It specifies how the interior fill of a planar polygon should be rendered.

In a wireframe view, by default only the edges of polygons are displayed. The extension's `wireframeFill` property controls whether the fill is displayed in wireframe. `NONE` (0) indicates the fill is never drawn in wireframe, `ALWAYS` (1) indicates it is always drawn in wireframe, and `TOGGLE` indicates that it is drawn only if the user or application has chosen for toggleable fill to be drawn.

The extension's `backgroundFill` property, if `true`, specifies that the fill should be drawn in the same color as the view's background color. This permits an "invisible" polygon to mask out geometry behind it.

The extension's `behind` property, if `true`, specifies that the fill should be drawn behind other coplanar geometry representing the same object. This is useful for mitigating z-fighting when, for example, a hatch pattern is applied to a filled polygon, or text is drawn inside a filled rectangle.

> TBD: "representing the same object" has a specific meaning for Bentley (originating from the same element); it would need to be generalized somehow for other use cases.

## glTF Schema Updates


## Implementation Notes


## JSON Schema


45 changes: 45 additions & 0 deletions extensions/2.0/Vendor/BENTLEY_materials_point_style/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<!--
Copyright 2015-2025 The Khronos Group Inc.
SPDX-License-Identifier: CC-BY-4.0
-->

# BENTLEY_materials_point_style

## Contributors

* Paul Connelly, Bentley Systems, [@pmconne](https://github.com/pmconne)

## Status

Draft

## Dependencies

Written against the glTF 2.0 spec.

## Overview

This specification describes a minimal extension sufficient to meet Bentley Systems' requirements, with some suggestions for how it might be broadened and/or generalized while retaining a focus on CAD visualization.

## Specifying Point Styles

The `BENTLEY_materials_point_style` extension is applied to a material. When that material is used by a POINTS primitive, the extension dictates the size of the points.

The `size` property specifies the diameter of each point in pixels.

> Potential generalization: we assume round points. Permit square points? Permit the material's texture to be mapped to the point's bounding box to support arbitrary point shapes?

> Potential generalization: we currently assume points face the camera, which is sensible when using pixels as units of measure. But the glTF spec permits for points to have normal attributes for purposes of lighting; this could also be used to specify the plane in which they should be drawn.

> Potential generalization: permit size to be specified in meters.

## glTF Schema Updates


## Implementation Notes


## JSON Schema



35 changes: 35 additions & 0 deletions extensions/2.0/Vendor/EXT_textureInfo_constant_lod/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<!--
Copyright 2015-2025 The Khronos Group Inc.
SPDX-License-Identifier: CC-BY-4.0
-->

# EXT_textureInfo_constant_lod

## Contributors

* Paul Connelly, Bentley Systems, [@pmconne](https://github.com/pmconne)

## Status

Draft

## Dependencies

Written against the glTF 2.0 spec.

## Overview

[Basis](https://www.itwinjs.org/reference/core-common/rendering/texturemapping/texturemapping.constantlodparams).

## Specifying Constant LOD Texture Mapping


## glTF Schema Updates


## Implementation Notes


## JSON Schema