Commit Graph

3544 Commits

Author SHA1 Message Date
Philip Rideout
52abe75cfd RemoteServer code cleanup and logcat cleanup.
This fixes two different logcat messages that would occur when scrubbing
a slider in the UI:

- "Discarding message, message queue overflow."
- "Downloading model..." would repeat itself needlessly
2021-03-11 07:52:32 -08:00
Romain Guy
8065d18f54 Update release notes 2021-03-10 16:15:18 -08:00
Philip Rideout
1b3684933d Repair WebGL build. 2021-03-10 16:01:29 -08:00
Mathias Agopian
e657921b5a Camera API improvements
- Add a "shift" parameter to Camera. This has the effect of translating
  the viewport, without changing its size. 
  This is an effect similar to using a shift lens.

- Camera::setScaling() now takes a double2 instead of double4, this is
  because scaling the result of the projection in the Z direction 
  can lead to very confusing problems -- it will essentially move the
  near/far planes, and we don't want to expose that as a public API.

- setCustomProjection() now allows to set a different projection for
  rendering and culling (useful for e.g. for using an infinite far 
  rendering projection matrix).
2021-03-10 16:01:29 -08:00
Seth Vargo
91ce5c785b Improve Actions hygiene (#3630)
Only run GitHub Actions for pushes and PRs against the main branch of the repository.
2021-03-10 15:02:16 -08:00
Philip Rideout
676b0542c4 sample-gltf-viewer: fix ColorGrading JNI assert 2021-03-10 11:14:31 -08:00
Philip Rideout
dced766999 Update Remote Control page. 2021-03-10 10:51:19 -08:00
Philip Rideout
eb0b5d16bf Migrate ColorGrading to SimpleViewer. 2021-03-10 09:27:51 -08:00
Mathias Agopian
2845f37ac7 improve CoC computation comment 2021-03-09 22:21:28 -08:00
Mathias Agopian
922ce83f48 add the --split-view option to gltf_viewer
useful for debugging shadows problems
2021-03-09 10:48:23 -08:00
Mathias Agopian
7445d80202 Improve circle-of-confusion computation
- generously document the CoC computation

- rewrite the code so that the computation will work for any
  perspective projection matrix, instead of assuming
  an "infinite-far" projection.
2021-03-09 10:48:08 -08:00
Philip Rideout
4d6f3ad392 JsonSerializer: do not repeatedly re-construct ostringstream. 2021-03-08 15:13:01 -08:00
Philip Rideout
c4ac8a9f06 AutomationEngine can now be used as a remote control. 2021-03-08 10:32:06 -08:00
Philip Rideout
b554a68186 Remote page now has UI and pushes settings. 2021-03-08 10:32:06 -08:00
Philip Rideout
b7ad20249d Improve the Settings serialization API, expose to JS.
This not only makes it easier to expose to JavaScript, it also paves the
way for a much more efficient implementation.
2021-03-08 10:32:06 -08:00
Philip Rideout
65f4b600bc Polish up the Remote Control page. 2021-03-08 10:32:06 -08:00
Philip Rideout
03945b88c8 ImGuiHelper now manages the UI camera. 2021-03-08 10:32:06 -08:00
Philip Rideout
24583332a2 Add filagui and SimpleViewer to the WASM build. 2021-03-08 10:32:06 -08:00
Benjamin Doherty
ce26801a91 Update RELEASE_NOTES for 1.9.15 2021-03-08 10:06:30 -08:00
Benjamin Doherty
7fd5b65f3b Release Filament 1.9.15 2021-03-08 10:05:56 -08:00
Philip Rideout
61b1542468 Add new remote page to site. 2021-03-08 08:57:57 -08:00
Mathias Agopian
d740378277 More code size optimizations and bvecn fixes
MaterialInstance: generate versions of setParameter() methods that
are templated on the parameter sizeof(), which allows us to
coalesce implementations, e.g. vec4<float> and vec4<int> are now
the same. We make the compiler generate non-inline version of all
these methods, the typed version just call through, taking
advantage of the tail-call optimization in clang.


MaterialParser: improve code to avoid calling multiple methods that
all did more or less the same thing and were inlined.

PostProcessManager: use a loop to initialize the materials

ToneMapping: de-dup ACES implementation

And other more minor optimizations.


Fix alignment issues with setting booleans in UBOs
2021-03-05 10:59:30 -08:00
Philip Rideout
0815adf722 PostProcessManager: fix setMinMaxLevels for StructureMipmap. 2021-03-05 08:15:04 -08:00
Philip Rideout
ef1eacf22e PostProcessManager: fix setMinMaxLevels for StructureMipmap. 2021-03-05 08:15:04 -08:00
Benjamin Doherty
fc896f81f0 Fix broken filamat lite build 2021-03-04 10:09:26 -08:00
Ben Doherty
884d5c1b87 Make material compilation deterministic (#3610)
With multithreaded variant compilation, compiled materials differ based on which variants finish first. This change ensures that compiled materials are always bit-for-bit identical.

This is helpful when comparing two compiled materials. Hashing the material files can be used to check for equality. It's also convenient for variants to occupy the same index when using matinfo's --print-glsl flag, for example.
2021-03-03 16:55:35 -08:00
Romain Guy
627186abc8 Update incorrect documentation (#3608) 2021-03-03 14:42:47 -08:00
Philip Rideout
30b0f39a36 sample-gltf-viewer: add polish to the drag-and-drop feature. 2021-03-03 14:41:22 -08:00
Philip Rideout
c3c2a732cd gltfio: Add ResourceLoader evict API. 2021-03-03 14:41:22 -08:00
Philip Rideout
5cc8ebd3e1 gltfio: fix ResourceLoader cache bug. 2021-03-03 14:41:22 -08:00
Philip Rideout
9ceb3b016c sample-gltf-viewer: add drag-and-drop feature.
This adds a WebSockets server to filament-utils-android.

Unlike my first attempt (#3599), this does not use a piping server and
is therefore much faster to use over a LAN. It also has lower user
friction because there is no need to touch a button in the app or
scan a QR code.
2021-03-03 14:41:22 -08:00
Philip Rideout
76e18475d3 gltf_viewer: avoid writeJson when automation is off. 2021-03-03 12:10:42 -08:00
Philip Rideout
2964e99175 sample-gltf-viewer: add URL hint. 2021-03-03 12:10:42 -08:00
Mathias Agopian
1189c9e294 FrameGraph rewrite from the ground up
The main goal of this rewrite was to make the code
simpler and easier to maintain.

The API is mostly unchanged, however there are some differences.
- we now have the concept of subresources, e.g. for Textures, as
  subresource is a mip level or layer.
- RenderTargets are no longer resources, instead they are transiant
  objects associated to a pass and are now called RenderPasses.
- RenderPasses take subresources for attachments.
- We have better validation of graph building.

We should also compute discard flags more accurately.
2021-03-02 22:25:56 -08:00
Philip Rideout
50799f3760 Replace QR code page with something better. 2021-03-02 18:36:38 -08:00
Philip Rideout
4b580b6eb1 Add automation to Android build, change PNG to PPM.
This adds libs/viewer to filament-utils-android and provides JNI
bindings for AutomationEngine.

This commit also changes the AutomationEngine to use PPM for screenshots
rather than PNG. The reasoning is that it is wasteful to include stb and
our two image-related libraries just to dump screenshots, especially for
a feature we might not use on Android.
2021-03-02 10:41:06 -08:00
Ben Doherty
8d6e794486 Remove exceptions on iOS (#3600) 2021-03-02 10:38:19 -08:00
Benjamin Doherty
7fa2053c55 Update RELEASE_NOTES for 1.9.14 2021-03-01 11:11:15 -08:00
Benjamin Doherty
cb7f81ccd6 Release Filament 1.9.14 2021-03-01 11:10:46 -08:00
Philip Rideout
6227496478 Update MoltenVK to 1.1.2 2021-03-01 09:42:23 -08:00
Philip Rideout
74aa7d3c87 Add QRCode page for glTF files. 2021-02-28 17:59:53 -08:00
Ben Doherty
bc107e7def Downgrade Linux GitHub Actions environment to fix error (#3588) 2021-02-26 17:00:56 -08:00
Ben Doherty
09e05ae00d Label Metal render encoders with group markers (#3583) 2021-02-26 10:37:34 -08:00
Philip Rideout
1921536f90 filamat: Fix data race with SPIRV error registrations. 2021-02-24 10:17:51 -08:00
Philip Rideout
1a9334e818 Modernize Python print syntax. 2021-02-23 14:43:30 -08:00
Mathias Agopian
bc6acd5c5a GL backend: fix race condition when asserting a handle exists 2021-02-22 23:25:43 -08:00
Mathias Agopian
3a15756c78 GL backend: track handles lifetime in debug builds 2021-02-22 17:22:18 -08:00
Mathias Agopian
f1fd96983b assert_invariant() now terminates the program in failure
rename logAndPanic to panicLog, since it doesn't actually panics.
2021-02-22 14:57:41 -08:00
Benjamin Doherty
1f000bd10d Update RELEASE_NOTES for 1.9.13 2021-02-22 10:29:30 -08:00
Benjamin Doherty
ce2c49217f Release Filament 1.9.13 2021-02-22 10:29:02 -08:00