Commit Graph

356 Commits

Author SHA1 Message Date
Benjamin Doherty
3809259f47 Release Filament 1.20.4 2022-03-21 14:45:00 -07:00
Benjamin Doherty
47e30c337e Release Filament 1.20.3 2022-03-14 14:17:25 -07:00
Philip Rideout
81fc2c1d23 Always apply bone matrices, even for non-animated models.
This changes the WebGL and desktop glTF viewers so that they always
call `updateBoneMatrices`, even when there are 0 animations. Note
that our Android sample was already doing this correctly.

When combined with #5301, this fixes #5299, although users would need to
use the `recomputeBoundingBoxes` feature in gltfio (`-r` in the desktop
viewer) for this model to be scaled to fill the viewport, since its
embedded bounds are quite large.
2022-03-10 13:41:35 -08:00
Benjamin Doherty
e4cb861817 Release Filament 1.20.2 2022-03-07 14:09:43 -08:00
Benjamin Doherty
1797ff5d90 Release Filament 1.20.1 2022-03-02 15:46:41 -08:00
Benjamin Doherty
b80d73f3cf Release Filament 1.20.0 2022-02-24 13:55:33 -08:00
Philip Rideout
327576274f Fix web apps that have multiple Filament viewers.
This fixes the emscripten binding errors that we've been seeing
with the <filament-viewer> test page, which prevented us from
including web in the last few Filament releases.

The binding errors were caused by double-initializing the emscripten
module.

I fixed this by allowing clients (e.g. FilamentViewer) to call
Filament.init() more than once. We now accumulate a list of "on ready"
callbacks that get triggered after the emscripten module becomes ready.

As far as I can tell, multiple canvases were actually always broken, and
the viewer test page worked in the past only because we got lucky.
2022-02-22 08:42:36 -08:00
Benjamin Doherty
fd69c7ed75 Release Filament 1.19.0 2022-02-14 13:46:06 -08:00
Elie Michel
2c8d296044 Make sure one use the right combination of version
To avoid `Material version mismatch`
2022-02-14 10:55:55 -08:00
Philip Rideout
2e0ace5026 WebGL: another fix for BufferDescriptor bindings.
The previous code would convert each element of the source data
into 8 bit-per-element, but we wnat to preserve the original format
that the user provides.

The new solution is to use `slice()` which is a robust way to clone
all the data in a typed array.

This fixes the new regression with Triangle that Ben caught.
2022-02-09 15:41:15 -08:00
Philip Rideout
b8725ffa22 WebGL: remove buffer sharing optimization.
If emscripten grows the heap inside one of our BufferDescriptor binding
functions, then the old heap becomes "detached" and an error can
occur.

This fixes the issue seen with the Parquet demo that Ben caught.
2022-02-09 12:29:54 -08:00
Benjamin Doherty
5e2c94c31a Release Filament 1.18.0 2022-02-08 09:18:10 -08:00
Ben Doherty
4c4a93d9b5 Support legacy morphing (#5129)
Support legacy morphing (morphing with targets supplied via VertexAttributes) for older clients. This gives clients more time to transition over to the new MorphTargetBuffer API.
2022-01-27 16:16:53 -08:00
daemyung jang
1952f0a1f7 Change morphing APIs to support LOD (#5080)
* Change morphing APIs to support LOD
* Add Java and Web bindings for morphing
* Omit and fix JS bindings
* Fix styles in MorphTargetBuffer.java
2022-01-25 21:57:11 -08:00
Benjamin Doherty
b657ccd75a Release Filament 1.17.0 2022-01-24 12:48:28 -08:00
Ben Doherty
fb76f8ed80 Add Java / WebGL bindings for screen-space reflections (#5054) 2022-01-19 12:50:32 -08:00
Benjamin Doherty
a8d72bb226 Release Filament 1.16.1 2022-01-18 13:52:08 -08:00
daemyung jang
6805940bbf Compute morphing on GPU (#4999) 2022-01-12 11:06:47 -08:00
Ankbzpx
fb1eb35ba5 Fix aabb misalignment for skinned gltf model (#4973) 2022-01-10 15:06:23 -08:00
Benjamin Doherty
a1a3adf8af Release Filament 1.16.0 2022-01-10 10:43:35 -08:00
jeanlemotan
9d7f5f593e Added line/triangle strip support (#5017)
* Added line/triangle strip support

* Added strip support for Java and JS
Changed README to indicate strip support for gltf
2022-01-06 13:07:32 -08:00
Benjamin Doherty
eaefaf8e59 Release Filament 1.15.2 2022-01-04 11:52:31 -08:00
Benjamin Doherty
8111c50a5a Release Filament 1.15.1 2021-12-13 11:06:12 -07:00
Benjamin Doherty
f3849a1f57 Update web docs for 1.15.0 2021-12-06 12:59:23 -08:00
Benjamin Doherty
3a33220dad Release Filament 1.15.0 2021-12-06 11:12:58 -08:00
Ben Doherty
477a3a8771 Pin web docs Filament version (#4907) 2021-11-30 12:05:40 -08:00
Benjamin Doherty
519ae4d143 Release Filament 1.14.2 2021-11-29 14:05:55 -08:00
Benjamin Doherty
15001524bd Release Filament 1.14.1 2021-11-22 10:10:35 -08:00
Benjamin Doherty
f690015a88 Release Filament 1.14.0 2021-11-15 10:06:45 -08:00
Benjamin Doherty
157c0264af Release Filament 1.13.0 2021-11-08 11:49:39 -08:00
Benjamin Doherty
81fa33abeb Release Filament 1.12.11 2021-11-01 14:55:54 -07:00
Benjamin Doherty
5fea428243 Release Filament 1.12.10 2021-10-25 11:06:12 -07:00
Benjamin Doherty
1dcf347b87 Release Filament 1.12.9 2021-10-20 12:11:46 -07:00
BStringhamVRSK
c10f7b01f4 Fixes normal map issues in mipgen and exposes a couple of SurfaceOrientation functions for Web
* mipgen: Linearized PNG bitmaps (such as normal maps) no longer perform gamma transform on read.

* mipgen: Using "-k normals" argument now works for all file types, not just KTX

* Web: Exposed SurfaceOrientation functions getQuatsHalf4() and getQuatsFloat()
2021-10-15 14:23:41 -07:00
Benjamin Doherty
eabfd08473 Release Filament 1.12.8 2021-10-11 11:02:30 -07:00
BStringhamVRSK
f04864c216 Expose ColorGrading$Builder, View.setPostProcessingEnabled()/View.setAntiAliasing() JS bindings
Co-authored-by: Romain Guy <romainguy@curious-creature.com>
2021-10-06 14:21:18 -07:00
Mathias Agopian
0229077293 added some missing javascript APIs 2021-10-06 08:08:18 -07:00
Benjamin Doherty
e203edc12a Release Filament 1.12.7 2021-10-04 10:21:10 -07:00
Benjamin Doherty
510f51d934 Release Filament 1.12.6 2021-09-27 11:12:08 -07:00
Benjamin Doherty
1980107925 Release Filament 1.12.5 2021-09-20 10:14:01 -07:00
Benjamin Doherty
cc70b827a8 Release Filament 1.12.4 2021-09-13 10:42:35 -07:00
Benjamin Doherty
807b9882c5 Release Filament 1.12.3 2021-09-08 11:02:45 -07:00
Romain Guy
dcfc27857f Update WebGL demos (#4564) 2021-08-30 12:45:02 -07:00
Benjamin Doherty
fe8e1d0734 Release Filament 1.12.2 2021-08-30 11:42:07 -07:00
Benjamin Doherty
93ce14659a Release Filament 1.12.1 2021-08-23 12:37:59 -07:00
Benjamin Doherty
5ef234153d Release Filament 1.12.0 2021-08-09 12:02:13 -07:00
Mathias Agopian
b5f9c66503 model/view matrices on Camera now use double precision
This PR only changes the API, internal storage and computation are 
still done in float, but this paves the way to double precision 
transforms.
2021-08-03 18:41:48 -07:00
Benjamin Doherty
d249f70750 Release Filament 1.11.2 2021-08-03 11:11:24 -07:00
Mathias Agopian
8a81486f5d Implement light channels
Currently there are 8 light channels, both renderables and lights can
be associated to one or several light channel, lighting occurs when
at least one channel is active on both the light and the renderable.

Fixes #4275
2021-07-30 18:54:32 -07:00
Mathias Agopian
4e9dcb45ea Implement SSAO bent normals
We now have an option for evaluating the bent normals from SSAO.
This is used to improve specular AO.
Currently these bent normals are not used for diffuse lighting because
they're "flat" (face normals), which is too distracting.

The bent normal buffer is stored in the SSAO texture, in a separate
layer. This is the first post processing effect that uses 2D array
in order to limit our sampler usage.

This CL also changes how we handle SPECULAR_AO_BENT_NORMALS when
material bent normals are not available: we're now using the "Cones"
algorithm with the regular normal, instead of Lagarde's approximation.
2021-07-27 21:54:54 -07:00