-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Conversation
An example model to test and demonstrate KHR_materials_clearcoat, KHR_materials_ior, KHR_materials_translucency, KHR_materials_transmission, KHR_materials_variants, KHR_materials_volume, and KHR_texture_basisu.
Thanks for this. A few ideas:
|
No, since people implementing new PBR extensions may lack KTX support.
Yes.
The
This repo has lots of 2048 PNGs, so it should be fine. In fact, it may be even better to use the same PNGs (if possible) for source models and glTFs so that git could deduplicate them internally.
In my opinion, the GLB version doesn't add much value to this sample model. Also please remove the validation info from the readme since that'll change eventually. |
I compared each model with I will link to the following issue as a related topic. |
* Redundant GLB removed. * Variant promoted to \glTF. * 2048x2048 textures duplicated from sourceModel, to enable git to deduplicate them internally. * Renamed assets to use "StainedGlassModel" prefix instead of "FDLV3095" SKU prefix. * glTF-KTX recompressed using ETC1S, to get the asset closer to the file size recommended by 3D Commerce guidelines. * DS-PBR render updated. * Removed validation info from README as it will be outdated soon. * Various small README improvements.
* Removed the model with KHR_materials_translucency, until it's been ratified. * Changed the KTX model to use no extensions except KHR_textures_basisu. * Added a model using JPG and PNG textures, with no extensions, to compare file sizes between it and the KTX version.
@echadwick-wayfair Thank you for organizing the folder of models. Is it possible to change the folder name to And if possible, To be consistent with other samples, it is better to name the sample model file the same as the folder name is a good idea.
|
Hi @cx20 and thanks for your comments. I know that the extension that adds the support for supercompressed textures is called KHR_texture_basisu but the carrier is KTX (version 2) |
Hmm, I haven't heard this. KTX files are not necessarily supercompressed BasisU files. I would recommend calling it glTF-BasisU. |
For reference, I have listed the names currently used for glTF folders. So far,
(I don't think there will be any significant impact by increasing the folder name. The only impact would be that I would have to add a few more |
What would the drawback be with calling it glTF-KTX2? From a broader ecosystem perspective I think it makes sense to try to unify how we name our features. |
That said, we could use |
Once the folder name is settled (and it looks like it is, from @lexaknyazev's comment above), we should update the files here and in other PRs that offer KTX, such as #285. |
* Copyright section added, Generator section shortened. * glTF files renamed to match root folder. * JPG-PNG version recompressed to use mostly JPG files. * KTX replaced with high-quality version created by @rsahlin . * KTX folder renamed to match convention. * Readme updated with new screenshots and information.
For details, see readme.md in push 8bee860 in pull request KhronosGroup/glTF-Sample-Models#292
Correcting the readme: only the baseColor textures with alpha were kept as PNG. Normal maps were not kept as PNG, they were converted to JPGs along with all the rest. Also added the reasoning behind keeping those PNGs.
Model proportions adjusted to match reference photo better. Stained-glass textures recreated to reduce stretching & aliasing. Stained-glass transmission roughness reduced to improve translucency. Normal map "scale" reset to 1 to improve bump quality. KTX vs JPG chart added to readme.
I noticed KTX2 model has some problems:
I'm re-compressing the textures to see if this fixes the problems. |
The KTX glTF was refusing the load in glTF Sample Viewer and <model-viewer>, so I added missing data to the glTF: extensionsUsed, extensionsRequired, extensions within Textures. Recompressed the textures too, just in case.
* No emissive on gems, beads. * Roughness adjusted for glass w/ transmission. * Volume & IOR added to gems/beads. * Various geometry fixes: Cord exit added under base, fixed interpenetrations between steel hangers and amber beads. * Texture tiling fixes on stained glass. (thanks for the nudge Gary!) * Brighter emissive for top part of base. * Re-compress all KTX with latest RDO & Linear parameters. * A/B/C versions created: no extensions, clearcoat/transmission/variants, clearcoat/transmission/variants/volume/IOR. * File size/memory size data collected for all versions. * Pathtracer version created for dsPBR use, with emissive textures disabled and bulb emissiveFactor increased to 100. * Screenshots created with Babylon.js, using manual override to avoid transmission roughness bug (Volume IOR = 1.15). * GLBs uploaded to 3D-Formats-Guidelines for demo use.
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.
The pathtracer version created for dsPBR use is actually in a separate commit, see https://github.com/KhronosGroup/3D-Formats-Guidelines/tree/main/samples/StainedGlassLamp
@echadwick-wayfair I tried the latest version of the model locally. "extensions": {
"KHR_materials_variants": {
"variants": [
{
"name": "Lamp off"
}
]
} |
Thanks for the review. Yes that is intended. It seems to me the "lamp on" variant is redundant since it's a duplicate of the original state. |
I see, it is the same idea as the default camera. [updated 2021.04.11] I added the default state to variants in gltf-test. |
* Model proportions adjusted to match reference photo better. * Stained-glass textures recreated to reduce stretching & aliasing. * Stained-glass transmission roughness reduced to improve translucency. * No emissive on gems, beads. * Volume & IOR added to gems/beads. * Various geometry fixes: Cord exit added under base, fixed interpenetrations between steel hangers and amber beads. * Texture tiling fixes on stained glass. (thanks for the nudge Gary!) * Brighter emissive for top part of base.
Is there anything else that needs to be done with this asset to resolve the merge? Thanks. |
The choice between "Lamp off" vs "default" seems far less intuitive than the old "Lamp off" vs "Lamp on". I think the KHR_material_variants spec itself needs a bit of clarification. Perhaps we can give the default state a name somehow, or ask clients to detect whether the default state is redundant with the named states and simply not show it when it's redundant. Or we could ask implementors of variants to always include the default state among the variants, and say that clients are not required to offer the default state, and should instead detect its name from matching it to the list of named states or something. It seems like something that needs discussion at the spec level before we commit to a model like this one that forces clients to show a nameless state. |
1. Variant added for the "on" state, so the model has a specific variant for the default state. See pull request 292 for discussion on default variant states. 2. Links to specific pages on Wayfair.com have been removed from the readme; this is no longer an active product so it no longer has a "live" webpage.
Thanks again @echadwick-wayfair for this amazing model! |
An example model to test and demonstrate KHR_materials_clearcoat, KHR_materials_ior, KHR_materials_translucency, KHR_materials_transmission, KHR_materials_variants, KHR_materials_volume, and KHR_texture_basisu.
Re-posting #288 into its own branch, with slight updates, and including the source model.