Skip to content
This repository was archived by the owner on Dec 22, 2023. It is now read-only.

SheenChair updated, renamed, Readme added#270

Closed
echadwick-artist wants to merge 5 commits intoKhronosGroup:pbr-nextfrom
echadwick-artist:pbr-next
Closed

SheenChair updated, renamed, Readme added#270
echadwick-artist wants to merge 5 commits intoKhronosGroup:pbr-nextfrom
echadwick-artist:pbr-next

Conversation

@echadwick-artist
Copy link
Contributor

Sheenchair.gltf updated to current conventions in KHR_materials_sheen, assets renamed to match parent folder including PascalCase, and readme created with screenshots.

SheenChair gltf updated to current conventions for KHR_materials_sheen, assets renamed to match parent folder, and readme created with screenshots.
@cx20
Copy link
Contributor

cx20 commented Aug 11, 2020

I think the readme file name should be README.mb instead of readme.MD.

@cx20
Copy link
Contributor

cx20 commented Aug 11, 2020

The file name of the screenshot should be screenshot/screenshot.<jpg|png|gif> when used as a thumbnail. There are no special rules for naming other screenshots.

Please refer to the list of file names below.
https://github.com/KhronosGroup/glTF-Sample-Models/blob/master/2.0/model-index.json

@emackey Do you have any advice?

@cx20
Copy link
Contributor

cx20 commented Aug 11, 2020

This folder still contains the files before the change. Please delete unnecessary files to save space. I think you can delete the files in the red box below.
image

@echadwick-artist
Copy link
Contributor Author

Thanks for the review! I'll work on these changes.

I also remembered the model is using KHR_texture transform, should probably be noted in the readme.

@PatrickRyanMS
Copy link
Contributor

In looking at the asset and how it implements sheen, I had a few questions:

  1. Is this fabric meant to represent velvet with embroidery?
  2. What is the thinking behind using a metallic factor of 1.0 on the material? Is this textile truly metallic overall?
  3. If there are metallic reflections in some of the thread fibers, especially in the embroidery, shouldn’t there be a metallic map that contains that data? This would give a metallic/dielectric blend that seems more physically based.
  4. What is the thinking behind using a roughness factor rather than a roughness texture? Is there no difference between the velvet (if that is the material) and the embroidery (if it is embroidery and not some other technique in the fabric)? Are they both truly the same roughness?
  5. What is the reasoning behind the very bright and saturated color used for sheen (255, 0, 224)? This seems to be very saturated and bright for a sheen color, is there a real world sample that this is representing? Is the bright pink sheen color present on the real world sample?
  6. What is the thinking for changing the normal direction on the pattern? If representing sub-triangle detail, there would be changes in normal direction as the surface rolls from the background through the pattern detail, but the normal direction inside the pattern would match the normal direction of the background in some areas. As authored, the color in the normal texture is implying the pattern normal is drastically different (and consistently different) than the background normal direction. This causes light to reflect from different parts of the scene which is why the pattern is very distinct, even on our shader ball below with no other textures involved where you can see the offset in the reflections. This creates a physical impossibility in the surface of the fabric where the pattern does not share any common normals with the surrounding area. I can see this technique used to represent textiles that reflect light based on the direction of the fibers on the surface that would be too small to capture in a texture, but it seems that technique would be more mottled with different directions used in the surface where this pattern has a fairly consistent direction in the pattern meaning it is being used to separate the pattern from the background.

image

@cx20
Copy link
Contributor

cx20 commented Sep 16, 2020

I added this model to gltf-test as an experiment to test it. Some of the WebGL libraries resulted in the following.
Probably only Babylon.js supports the KHR_materials_sheen extension at the moment, but I can't judge whether the display results are as expected.

Library Result (small) Result (large)
three.js image image
Babylon.js image image
Filament image image
PlayCanvas image image

@echadwick-artist
Copy link
Contributor Author

echadwick-artist commented Sep 16, 2020 via email

@echadwick-artist
Copy link
Contributor Author

Here are a couple example material tests with a similar asset. The embroidery here uses gold thread, which may make more sense for full metalness.

When the purple velvet fabric is given zero metalness, the specular color looks incorrect to my eye. Perhaps we should be using Specular-Glossiness instead, but that makes a larger asset file size.
sheen_metals-compared_babylon-js-sandbox

Disabling/enabling sheen, with a metalness map that makes the purple fabric non-metal. In both cases, the purple fabric doesn't look like velvet to me.
sheen-on-off_metal-map_babylon-js-sandbox

@echadwick-artist
Copy link
Contributor Author

Also, the Babylon.js screenshots by cx20 look the closest to my intended results. On the right is the screenshot from my readme.
expected-results

@cx20
Copy link
Contributor

cx20 commented Sep 17, 2020

I noticed that a glTF editor called Gestaltor supports this extension, so I displayed the model to try it out.

Library Result (small) Result (large)
Babylon.js image image
Gestaltor image image

@UX3D-nopper It seems a bit dark. I may be using IBL incorrectly. Do you have any advice?

@UX3D-nopper
Copy link
Contributor

I noticed that a glTF editor called Gestaltor supports this extension, so I displayed the model to try it out.

Library Result (small) Result (large)
Babylon.js image image
Gestaltor image image
@UX3D-nopper It seems a bit dark. I may be using IBL incorrectly. Do you have any advice?

Did you change the light settings? By default, doge2 is used.
With the latest version of Gestaltor, using menu View - Show Light Settings, one can load and change the HDR environment map.

@UX3D-nopper
Copy link
Contributor

I noticed that a glTF editor called Gestaltor supports this extension, so I displayed the model to try it out.
Library Result (small) Result (large)
Babylon.js image image
Gestaltor image image
@UX3D-nopper It seems a bit dark. I may be using IBL incorrectly. Do you have any advice?

Did you change the light settings? By default, doge2 is used.
With the latest version of Gestaltor, using menu View - Show Light Settings, one can load and change the HDR environment map.

In this menu, you can also enable or disable on a global level punctual and environment lights. Futhermore, it is possible to change the intensity and orientation of the IBL.

@cx20
Copy link
Contributor

cx20 commented Sep 19, 2020

@UX3D-nopper Thank you for teaching me how to use Gestaltor.

Did you change the light settings? By default, doge2 is used.

I tried loading the HDR file based on your advice, but the IBL didn't seem to change.
Can you tell me the requirements for loadable HDR files?

Operation Result
image image

@UX3D-nopper
Copy link
Contributor

@UX3D-nopper Thank you for teaching me how to use Gestaltor.

Did you change the light settings? By default, doge2 is used.

I tried loading the HDR file based on your advice, but the IBL didn't seem to change.
Can you tell me the requirements for loadable HDR files?

Operation Result
image image

With "Add HDR", you are adding the HDR file to your IBL set. In the "Default" drop down list, now the IBL should be listed. Just change it and u should see it.

@cx20
Copy link
Contributor

cx20 commented Sep 19, 2020

@UX3D-nopper The cause is unknown, but when I select "Add HDR" and try to convert the file, the display driver seems to crash and the process is interrupted.

image

image

The PC environment I tested is as follows.
PC : MacBook Air + BootCamp
OS : Windows 10 Version 1909 (OS Build:1836.1082)
GPU : Intel UHD Graphics 617

I think it's a PC environment issue, so I'd like to try it on another PC.

@cx20
Copy link
Contributor

cx20 commented Sep 19, 2020

I was able to apply HDR textures with Gestaltor. The texture also adopted papermill. I don't know if it's correct, but Babylon.js seems to be more reflective. (It may be an angle issue.)

Library Result (small) Result (large)
Babylon.js image image
Gestaltor image image

@abwood
Copy link
Contributor

abwood commented Sep 25, 2020

The sheen specification had a slight change in that sheenTexture has been separated out into sheenColorTexture and sheenRoughnessTexture. Despite that change, this model only makes use of sheenColorFactor and sheenRoughnessFactor, so no updates are required.

@echadwick-artist
Copy link
Contributor Author

I will spend some time this week on updating the material.

@emackey
Copy link
Member

emackey commented Dec 1, 2020

Thanks Eric. Can we reconcile this with the material variants chair from #271? I don't want the sample repo to have two chairs that represent the same physical object but are such different 3D models. I think they're even different mesh resolutions. Would be great to have a single chair that had both sheen and variants.

This combines the two chairs from KhronosGroup#270 and KhronosGroup#271 into a single asset. The fabric materials have been adjusted to match real-world reference, which should help with calibrating material features and renderer handling so we can more accurately represent e-commerce products.
@echadwick-artist
Copy link
Contributor Author

The build failed. I'm wondering if I submitted incorrectly? I'm really new to Git, though I've used Perforce and SVN a lot in the past.

https://travis-ci.com/github/KhronosGroup/glTF-Sample-Models/pull_requests
Looking at the last few lines, perhaps these two assets are to blame instead?
Assets with errors: /home/travis/build/KhronosGroup/glTF-Sample-Models/2.0/Dragon/glTF/Dragon.gltf /home/travis/build/KhronosGroup/glTF-Sample-Models/2.0/HighHeel/glTF/HighHeel.gltf The command "./gltf_validator -r -a ./2.0/" exited with 1. Done. Your build exited with 1.

@lexaknyazev
Copy link
Member

This PR is opened against pbr-next branch that contains invalid assets: Dragon and HighHeel (they slipped through while CI was unavailable).

Although Sheen Chair doesn't show any errors now, let me update the validator in this repo so it can validate new PBR extensions.

@emackey
Copy link
Member

emackey commented Dec 4, 2020

Sorry, didn't notice this was on pbr-next. The chair's extensions are all ratified (incl. variants), so not "next" anymore. I'd like to get the new chair in a separate branch, isolated from pbr-next and Dragon and HighHeel etc. Eric I can do that myself if that's too much git fiddling from your side to make that happen.

@lexaknyazev I got an email from James that TravisCI is causing some grief. Can we migrate to GitHub Actions?

@lexaknyazev
Copy link
Member

Can we migrate to GitHub Actions?

Sure, this repo is probably the easiest one to migrate.

@echadwick-artist
Copy link
Contributor Author

echadwick-artist commented Dec 4, 2020 via email

@lexaknyazev
Copy link
Member

@emackey
Please review & merge #281. Then we should be able to retarget and merge this PR.

@cx20
Copy link
Contributor

cx20 commented Dec 8, 2020

@echadwick-wayfair Please place the .glb file in the glTF-Binary folder, not the GLB folder.
image
And I think you should reduce the size of screenshot.jpg a bit. Because this file is also used for the thumbnails. Perhaps the current screenshot.jpg should be renamed as screenshot_large.jpg.

See the recently added ToyCar for an example of a folder structure.

@emackey
Copy link
Member

emackey commented Dec 8, 2020

@cx20 I'm planning to make a new PR from this against the master branch instead of pbr-next. I'll include that change on that PR.

I do have a question for @echadwick-wayfair though: What happened to the cool purple fabric, can we use that? The red looks washed-out to me in the latest version.

@cx20
Copy link
Contributor

cx20 commented Dec 8, 2020

I have tried this model in a local environment for reference. The results are as follows.

Library Result (small) Result (large)
Babylon.js + Mango Velvet image image
Babylon.js + Peacock Velvet image image

@echadwick-artist
Copy link
Contributor Author

The purple used metalness, which was a bit contentious IIRC. I made the purple fabric 1.0 metal to force the specular to be colored, like most velvets and satins do in real life. I essentially used a physically-based feature outside the scope of its original intention, to overcome a limitation of the metal-rough shader.

The purple fabric was also not based on one specific real-world reference, which made it more difficult to replicate in glTF renderers.

For the new materials I deliberately chose specific surfaces that exist in real life and have published photographic examples. The photos were Photoshopped (often the case for e-commerce variants) but I can see they're close enough to reality to be usable for our purposes. We are ultimately attempting to match our CG materials to reality, so we need photo reference.
I could add the purple one back in, but I think I would need to find photo reference that closely matches the intention.

The Mango Velvet (red) does not use metalness, which does cause it to be a bit washed out as you noticed. The Peacock Velvet (green/blue) does use metalness. I'm still a bit conflicted whether to use it or not. 

A few tests in babylon.js:
2020-12-08 Babylon js SheenChair

@emackey
Copy link
Member

emackey commented Dec 8, 2020

Migrated this to #284, please use that PR for further review & discussion, thanks!

@emackey emackey closed this Dec 8, 2020
@emackey
Copy link
Member

emackey commented Dec 9, 2020

This is now merged to master in #284. Thanks @echadwick-wayfair and all!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants