-
Notifications
You must be signed in to change notification settings - Fork 9
EXT_textureInfo_constant_lod #92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
@markschlosseratbentley @pmconne This first draft is ready for review. Feedback especially needed on the implementation notes part and if the formula is explained accurately and clearly, and how many shader-specific details to include here. Questions for reviewers:
|
No, we agreed that this one is of potential general utility (we know of at least one other organization that has expressed interest in something similar), hence the |
danielzhong
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great job! Just some small suggestions.
...dor/EXT_textureInfo_constant_lod/schema/textureInfo.EXT_textureInfo_constant_lod.schema.json
Show resolved
Hide resolved
|
The specification should define what the TextureInfo's |
|
Hm. I didn't have this extension on the radar until now (just became aware of it due to the CesiumJS PR). I'll have to read it more thoroughly, and try it out. A veeery high-level brainstorming question: Could it be possible (and have there been any considerations) to "map" this to the https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_texture_transform/README.md extension? The point is that implementors will already offer the possibiity to add some offset/scale to the textures. And they will (likely) add the option to apply these offset/scale dynamically, at runtime (c.f. It sounds like the goal of this extension would largely be to apply a specific offset/scale, based on the current view configuration. But 1. maybe I misunderstood that, and 2. even if it is, it can still make sense to "package" this in one, specific extension, instead of trying to "emulate" it with small building blocks from generic (but very complex) extensions. |
That would pretty undoubtedly be the case. The core of the question did not even aim at any form of explicit dependency between the extensions. It was really about mapping the texture transform that seems to be done here to what already exists for the texture transform extension. This might have been on a low level (think of something like replacing |
Co-authored-by: Mark Schlosser <47000437+markschlosseratbentley@users.noreply.github.com>
From looking at precedents from other texture-related extensions, I think it makes sense for encoders to have the option of either omitting |
|
@weegeekps This is ready for your review whenever you have the chance |
|
Thanks, @eringram. Been under water this week but I am planning on taking a look tomorrow PM. |
|
@pmconne I know we decided to make this a Vendor extension, but do you remember why we decided to keep the |
My recollection of our discussion with @weegeekps regarding the evolving semantics around glTF extensions:
|
weegeekps
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks really good. I have some small editorial changes for your consideration.
| \end{aligned} | ||
| ``` | ||
|
|
||
| >Note: the addition of $\lfloor logDepth \rfloor + 1$ when calculating $textureCoordinates_2$ allows the result of the $mix$ function to blend between two adjacent mipmap levels. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this note meant to be normative or non-normative? It looks non-normative to me, so the Note: portion should say Non-normative note:
FYI, a normative note dictates that the implementer must follow the note exactly. A non-normative note typically provides guidance to the implementer to be aware of edge cases or the intent of a normative piece.
Also, there's no strict style guide, but typically notes are italicized within glTF extension specifications and not within a quote box. I don't care strongly either way tbh, but I wanted to at least let you know in case you wanted to change it for consistency.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's meant to explain the purpose of the + 1 in the equation, so I guess in that sense it clarifies the intent of a normative piece (the formula). I added "non-normative" to the beginning and switched to italicized
Co-authored-by: Adam Morris <adam@cesium.com>
| ```math | ||
| x \cdot (1 − a) + y \cdot a | ||
| ``` | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider adding a "Known Implementations" section and adding iTwin.js with a link to your PR. (Perhaps CesiumJS w/ link to that draft PR as well). Feel free to resolve this comment on your own.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, added both of those
This PR is one result of splitting up #87 into more granular work.
This PR exists strictly for planning/feedback - this extension (EXT_textureInfo_constant_lod), once ready, should be submitted as a separate PR to KhronosGroup. This starts with Bentley's minimum requirements as a baseline.