v0.1.0
This release marks the largest <model-viewer>
update since it was launched publicly, and includes a ton of great work from our contributors. The following is a summary of that work:
New features
Thanks to a ton of foundational work by @jsantell, we have landed the following huge rendering improvements:
- HDR environment map support #323
- Environment-base radiance map (PMREM) support #338
- ✋BREAKING CHANGE: Normalize lighting with Filament #387
- Considered breaking because default lighting levels have changed
Additionally, we have landed the following new public API for controlling lighting details:
- Configurable
shadow-intensity
attribute #388 - Configurable
exposure
attribute #389 - Configurable
stage-light-intensity
attribute #391 - Configurable
environment-image
andenvironment-intensity
attributes #392
We have also landed a bunch of improvements to accessibility for <model-viewer>
overall:
- ✋BREAKING CHANGE: Improved mobile scrolling behavior #311
- Previously it was possible to become "trapped" by
<model-viewer>
swallowing events while scrolling - Considered breaking because the default interaction model is different now, see PR for details
- Previously it was possible to become "trapped" by
- Make poster focusable / dismissable via keyboard #313
- Resize the scene correctly when zooming #314
- Substantially improved a11y for camera controls #319
- Added screen reader announcements related to loading status #345
Bug fixes
- Make sure
<model-viewer>
works when WebGL is not available #329- In particular, this makes
<model-viewer>
compatible with Googlebot, which has WebGL disabled
- In particular, this makes
- We no longer light unlit materials #377
Other notable changes
- ✋BREAKING CHANGE: We upgraded Three.js from r99 to r101 #312 #331
- Intersection Observer support is now optional, we will use it if it is available #398
- ✋BREAKING CHANGE: Our default bundle is now an ECMAScript module #401
- If you prefer the old format, you can change your script source from
dist/model-viewer.js
todist/model-viewer-umd.js
to load a compatible bundle - We now recommend a new snippet for loading the bundles. Please refer to README.md for details!
- If you prefer the old format, you can change your script source from
We have added a new category of testing: fidelity testing. These tests will help us to keep rendering results in line with ourselves and other model viewers over time. Check out our live fidelity test results for an example of how different viewers are being compared!
- Fidelity test regime has been introduced #305
- Screenshot collection for golden reference images has been automated #351
- We test against most of the Khronos glTF Sample Models #375
Since the last release, our docs have undergone a lot of changes, including a complete visual overhaul courtesy of @yuinchien :