Skip to content

EXT_mesh_primitive_edge_visibility#2479

Merged
weegeekps merged 39 commits into
KhronosGroup:mainfrom
CesiumGS:pmc/edge-visibility
May 28, 2026
Merged

EXT_mesh_primitive_edge_visibility#2479
weegeekps merged 39 commits into
KhronosGroup:mainfrom
CesiumGS:pmc/edge-visibility

Conversation

@pmconne

@pmconne pmconne commented Mar 14, 2025

Copy link
Copy Markdown
Contributor

The EXT_mesh_primitive_edge_visibility extension augments a triangle mesh primitive with sufficient information to enable engines to produce non-photorealistic visualizations of 3D objects with visible edges. The edge visibility is encoded in a highly compact form to avoid excessively bloating the glTF asset. Adapted for glTF from iTwin/itwinjs-core#5581. We intend to add support for the extension to the CesiumJS engine.

@pjcozzi

pjcozzi commented Mar 15, 2025

Copy link
Copy Markdown
Member

@pmconne so excited for this!

  • @lilleyse could you please take a quick look from a 3D Tiles and CesiumJS perspective?
  • @kring could you take a quick look from a Cesium Native and game engine perspective?

Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md

@kring kring left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for opening this @pmconne! I have a few thoughts below.

Overall it looks good! I can't see any particular reason it couldn't be implemented in Unreal Engine or Unity.

Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
@pmconne

pmconne commented Apr 14, 2025

Copy link
Copy Markdown
Contributor Author

@kring @javagl @pjcozzi thank you for your feedback. I've revised the spec accordingly.

@pjcozzi

pjcozzi commented Apr 26, 2025

Copy link
Copy Markdown
Member

@kring @javagl @lexaknyazev or others - do you have any additional feedback for @pmconne on this extension?

@kring

kring commented May 2, 2025

Copy link
Copy Markdown
Contributor

@pmconne I read through the spec again and I think this looks great! No further suggestions from me.

I would like to see a complete implementation of this extension in CesiumJS or iTwinJS, though, if there isn't one already. It would be useful both as proof that it can be implemented sensibly in WebGL (2?), and for my own interest in the rendering techniques involved.

@pmconne

pmconne commented May 2, 2025

Copy link
Copy Markdown
Contributor Author

I would like to see a complete implementation of this extension in CesiumJS or iTwinJS

Most of the rendering pieces are already in place in iTwin.js. I think the quickest path to a complete implementation would be for me to update the iModel -> 3D Tiles pipeline to encode the edges according to the spec and update iTwin.js decode accordingly.

Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
@markschlosseratbentley

Copy link
Copy Markdown
Contributor

The spec has been updated to now list CesiumJS as a known implementation in addition to iTwin.js. These implementations have the caveat that they do not implement the full capability of this specification, namely materials. This support is forthcoming.

@CLAassistant

CLAassistant commented Jan 13, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
@lexaknyazev

lexaknyazev commented Mar 11, 2026

Copy link
Copy Markdown
Member

In addition to the review comments please optimize all PNG images with

$ oxipng --zopfli --strip all -o max *.png

@danielzhong

Copy link
Copy Markdown
Contributor

@lexaknyazev Thanks! I’ve gone through and updated all the PR feedback.

Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated

@weegeekps weegeekps left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to get this merged today. @markschlosseratbentley, you've got two changes that are needed and then we should be good to go since this is a Vendor extension.

Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md Outdated
Comment thread extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/README.md
@weegeekps weegeekps merged commit 5382af5 into KhronosGroup:main May 28, 2026
2 checks passed
@weegeekps weegeekps deleted the pmc/edge-visibility branch May 28, 2026 20:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.