Bjorn
78a70670bb
Merge branch 'dev' into MSFT_controller_model
2022-12-03 19:34:49 -08:00
bjorn
a615351f66
Actions; Sponsors; README;
2022-12-02 18:14:31 -08:00
Ilya
92c136bc73
Merge branch 'bjornbytes:master' into picofix
2022-12-01 21:20:33 +03:00
bjorn
f9d7742dfd
Add support for headless headset rendering;
...
Although the name is unfortunate, this allows access to lovr.headset
when no window is opened or when the graphics module is disabled. This
requires the XR_MND_headless extension to be supported by the runtime.
2022-11-26 14:40:39 -08:00
Ilya Chelyadin
3f20364c3f
Pico is back!
...
Tested on Pico Neo 3 with PUI v4.9.3
Also included generic (Monado-Android) Android flavor.
2022-11-22 22:01:13 +03:00
s-ol
043f9c7920
store headset model metadata for animations
2022-11-22 12:24:57 +01:00
bjorn
9783140725
Fix window resize;
2022-11-09 19:05:01 -08:00
bjorn
b81f86b5ad
rm Android flavors for now;
...
There used to be oculus and pico but pico doesn't work anymore.
Eventually things will converge on the standard loader and we won't
need different loaders, but manifests may require flavors.
2022-11-09 00:21:49 -08:00
bjorn
36e1471cf0
lovr.graphics.isInitialized;
...
Returns whether the graphics module is initialized. Used by the default
error handler to know if it's safe to try to render the error screen.
2022-11-07 19:12:11 -08:00
bjorn
5e2b44ad08
Fix stereo mirror window;
...
For some reason this was rendering both layers of a multi-layer
texture all squished. I think it was supposed to just render the
first layer.
2022-11-07 17:14:27 -08:00
bjorn
904fb282c2
v0.16.0;
2022-10-15 21:49:25 -07:00
bjorn
ee3cc30851
Animator renormalizes quantized weights;
...
It would be nice to do this in the importer, but it was 50+ lines and
was really tricky to write without reading from uncached GPU-mapped
memory. Instead, it's 1 line here.
I hope zero-weight vertices aren't a thing?
2022-10-03 01:29:01 -07:00
bjorn
cd04060467
Use correct roughness for indirect specular lighting;
2022-09-23 23:58:47 -07:00
bjorn
d905b649a4
Lighting helper fixes;
2022-09-23 23:44:31 -07:00
bjorn
ef407fd564
Add var shader helper;
...
Now you can write var(0) instead of layout(set = 2, binding = 0).
The advantage is less typing and resilience in the event that the
default set changes.
The disadvantage is that now you can't use var.
2022-09-22 20:44:06 -07:00
bjorn
952bff414a
Add more oculus manifest permissions;
...
- Keyboard tracking
- Render model
- Passthrough
2022-09-21 14:58:30 -07:00
bjorn
72334cc1f2
Fix cubemaps being horizontally flipped;
2022-09-20 22:17:58 -07:00
bjorn
28869431fb
Fix stereo mirror window;
2022-09-15 20:45:26 -07:00
bjorn
1dd737d8a4
Make the logo a default shader;
...
Improves build system, improves filesize, seemingly improves startup time
2022-09-13 17:36:10 -07:00
bjorn
d8c6c47e00
Add normal DefaultShader;
...
It's a pretty normal shader.
2022-09-10 11:07:55 -07:00
bjorn
5c4fc79242
mv lovr.graphics.init lovr.graphics.initialize;
...
init is undocumentable due to Lua conventions.
2022-09-10 10:22:52 -07:00
bjorn
688c698808
Enable hand tracking 2.0 in AndroidManifest.xml;
2022-09-02 18:53:31 -07:00
bjorn
8697466009
Shader flag adjustments;
...
- glowTexture is on by default, but still requires the glow flag.
- occlusionTexture is named ambientOcclusion, and is on by default,
but is still not used by any builtin shaders/helpers.
2022-09-02 15:33:18 -07:00
bjorn
0b0faf6dc6
DefaultColor respects flag_colorTexture;
2022-09-02 15:07:45 -07:00
bjorn
d513b98ce2
Fix cubemap shader;
2022-08-26 22:22:37 -07:00
bjorn
085550da33
Tonemapping, I guess;
2022-08-26 10:34:32 -07:00
bjorn
ad7c854571
Add evaluateSphericalHarmonics helper;
2022-08-26 10:28:43 -07:00
bjorn
70aff00a11
Rename shader flags; Add color flags;
2022-08-26 10:28:23 -07:00
bjorn
5a2fe54c04
Improve Pass:fill;
...
It can now fill an array texture to a multiview pass, copying to
the corresponding layers.
2022-08-26 09:57:51 -07:00
bjorn
f4f95a64d7
Pass blends by default;
2022-08-25 22:01:12 -07:00
bjorn
ede1036694
Temporary Passes;
...
Sigh, back to getPass. I don't even know at this point. Basically now
that we came up with a half-solution for temp buffers, it makes sense to
apply this to passes as well, since we aren't going with the workstream
idea and temp passes are more convenient than retained passes.
2022-08-25 21:57:15 -07:00
Josip Miskovic
11f2d052ef
Skybox view matrix includes local transform
2022-08-18 09:04:42 -07:00
bjorn
51312f4704
Add attachmentCount/defaultPointSize specialization constants;
2022-08-14 09:43:00 -07:00
bjorn
5799b0effb
Rename setBackground back to setBackgroundColor;
...
The "fancy background" idea won't go here.
2022-08-13 21:10:58 -07:00
bjorn
f894c87723
Clamp roughness to .05;
2022-08-13 00:26:18 -07:00
bjorn
13f40a05c3
Update getPixel syntax for array textures;
...
vec3 is just kinda weird.
2022-08-13 00:00:00 -07:00
bjorn
507c02bfb1
Invert surface normal when backfacing;
2022-08-12 23:30:39 -07:00
bjorn
efdbc7f7ba
Fix equirect shader;
2022-08-12 22:46:59 -07:00
bjorn
f6a1fbdfb9
Add new 'Constants' helper;
2022-08-12 22:44:18 -07:00
bjorn
3cbf85c98a
Adjust error screen font size and default perspective;
2022-08-12 21:08:25 -07:00
bjorn
23932c6e7c
Default errhand stops audio playback;
2022-08-12 20:46:59 -07:00
bjorn
016d3753d5
Further boot.lua cleanup;
2022-08-12 20:32:45 -07:00
bjorn
ad6360d2fd
Clean up boot.lua;
...
A lot of clean up can happen now that C doesn't push delayed errors to
Lua. This was happening for Pico and WebVR, neither of which are used
anymore.
Also default vsync to true but force it off if VR is active.
2022-08-12 20:18:55 -07:00
bjorn
5324ae9a84
Fix error screen;
2022-08-12 19:28:25 -07:00
bjorn
b51d4e7de7
Normal mapping;
2022-08-12 17:59:06 -07:00
bjorn
7e5221492d
rm pointSize from Material;
...
It's weird, and about as inconvenient as just putting it in the shader.
2022-08-09 19:54:54 -07:00
bjorn
0a599ccdd6
Rename PixelColors to PixelColor;
2022-08-09 19:51:53 -07:00
bjorn
63a327c0b2
Add getLighting builtin function to shaders;
2022-08-09 19:49:47 -07:00
bjorn
6d6e79e704
Recompile nogame shader;
...
Need to automate better, but later
2022-08-08 20:46:27 -07:00
bjorn
2047127a97
Enable depth submission by default;
2022-08-06 23:45:37 -07:00
bjorn
9b7b4e323c
appveyor rebuilds when CMakeLists changes;
2022-08-06 18:56:52 -07:00
bjorn
7efd19c45c
Add uniform buffer for global constants;
...
So far it has resolution and timestamp.
Broke the nogame shader, need to recompile.
2022-08-06 13:37:27 -07:00
bjorn
642388709b
Shader helper improvements;
2022-08-06 13:06:42 -07:00
bjorn
c41188c4b4
Merge branch 'master' into dev
2022-08-06 11:08:02 -07:00
bjorn
8b2fe0aa31
Adjust VulkanSDK path;
2022-08-06 10:58:42 -07:00
bjorn
246cbdfcdc
Update appveyor VulkanSDK command flags;
2022-08-06 10:52:17 -07:00
bjorn
b09519cdf4
Rebuild when changing etc;
2022-08-06 10:38:38 -07:00
bjorn
88ab8e5e5b
appveyor builds dev branch;
2022-08-06 10:36:09 -07:00
bjorn
6213dfb844
Test VulkanSDK on appveyor;
2022-08-06 10:34:25 -07:00
bjorn
dd40e6c829
Fix errhand;
2022-08-06 00:29:40 -07:00
bjorn
fcbeccdfb1
Fix background colors;
2022-08-05 21:05:02 -07:00
bjorn
804a1e6844
Fix stereoblit shader;
2022-08-05 19:18:29 -07:00
bjorn
acd87a5e5c
lovr.graphics.present;
...
It's nice to have an explicit action for presentation.
2022-08-04 00:06:54 -07:00
bjorn
89312c1c4b
Add on-disk shader cache;
...
Set t.graphics.shadercache to true (the default) and lovr will
read/write a shader cache file from/to disk.
2022-08-02 22:06:44 -07:00
bjorn
4ee092e81b
Make Pass a regular object;
...
It uses newPass instead of getPass. Temporary objects had lifetime
issues that were nearly impossible to solve. And normal objects are
easier to understand because they behave like all other LÖVR objects.
However, Pass commands are not retained from frame to frame. Pass
objects must be re-recorded before every submit, and must be reset
before being recorded again.
Pass objects now provide a natural place for render-pass-related info
like clears and texture handles. They also allow more information to be
precomputed which should reduce overhead a bit.
It is now possible to request a stencil buffer and antialiasing on the
window and headset textures, via conf.lua.
lovr.graphics.setBackground should instead set the clear color on the
window pass. Though we're still going to try to do spherical harmonics
in some capacity.
There are still major issues with OpenXR that are going to be ironed
out, and the desktop driver hasn't been converted over to the new
headset Pass system yet. So lovr.headset integration is a bit WIP.
2022-08-02 22:06:44 -07:00
bjorn
67b338a1d8
Change default window size;
2022-08-01 21:46:00 -07:00
bjorn
4bb3405ff0
Add missing shader;
2022-08-01 21:26:34 -07:00
bjorn
ac104e6f41
WIP stereo blit shader;
2022-07-31 13:26:35 -07:00
bjorn
6de50a83c4
Shader changes;
2022-07-31 12:49:18 -07:00
bjorn
50f596bd34
Default shaders use lovrmain;
2022-07-31 11:18:15 -07:00
bjorn
ff39a7485b
Update appveyor.yml;
2022-07-19 08:48:59 -07:00
bjorn
a0173252b9
Slight improvement to lovr.mirror;
2022-07-17 20:07:31 -07:00
bjorn
83fa750a4d
Support and default to reverse-z with infinite far plane;
2022-07-17 12:37:59 -07:00
bjorn
7aab5ce79b
Fix errhand;
2022-07-17 09:55:27 -07:00
bjorn
a4e4181489
Error screen;
2022-07-10 21:37:52 -07:00
bjorn
72dd7ee0f2
Fix compute shader compilation;
2022-07-09 23:39:20 -07:00
bjorn
b0c1dd5f12
Put nogame in its own file;
2022-07-06 23:50:43 -07:00
bjorn
3bf5ec5744
Shader improvements;
...
Mostly renaming things and adding helper functions.
2022-07-06 22:54:56 -07:00
bjorn
b934fac1df
Pass:skybox;
2022-07-04 00:18:38 -07:00
bjorn
7ce32e38b1
nogame screen;
2022-07-03 20:07:05 -07:00
bjorn
1a1026bc0f
Fix font alpha;
2022-07-03 20:06:55 -07:00
bjorn
0d23d10e43
Animate normals; Use material color;
2022-07-03 19:20:30 -07:00
bjorn
d088c5471d
Model;
...
Does not include some of the fancier accessors yet.
2022-07-03 17:26:31 -07:00
bjorn
8b37b25e54
TIME WIZARD;
2022-06-30 18:47:01 -07:00
bjorn
18a31349b4
boot.lua uses headset clip distance;
2022-06-25 14:37:49 -07:00
bjorn
4021d4e893
Pass:monkey;
...
Questionable.
2022-06-24 23:05:09 -07:00
bjorn
5c43ad0792
Pass:fill;
2022-06-24 19:59:48 -07:00
bjorn
0c36f53fe6
Placeholder error screen;
2022-06-20 18:26:32 -07:00
bjorn
3df9aea3fd
Add Font shader;
2022-06-20 18:17:37 -07:00
bjorn
af8c061c50
Default buffer can be used for colors;
2022-06-18 23:31:51 -07:00
bjorn
3c5288e979
Default fragment shader samples default texture;
2022-06-18 17:40:34 -07:00
bjorn
c1bb47d737
Merge branch 'master' into dev
2022-06-16 23:50:11 -07:00
bjorn
86b2c934e8
Materials, mostly;
2022-06-16 23:49:09 -07:00
bjorn
7de6bdf242
Shaders; Rework vertex formats;
2022-06-15 20:46:43 -07:00
bjorn
c2dab3cf2c
Update lovr.draw signature;
...
- If you return a truthy value from lovr.draw, the pass won't be
submitted. A falsy value will submit the input pass.
- For convenience, lovr.graphics.submit returns true.
2022-06-08 23:59:48 -07:00
bjorn
0d4d7bc0e3
Fix vertex shader draw count; Simplify upload sync;
2022-06-08 21:23:30 -07:00
bjorn
d5325b87b4
Headset support;
2022-06-05 20:38:14 -07:00
bjorn
e36cc6482d
rename pass/buffer to getPass/getBuffer;
2022-06-05 18:56:03 -07:00
bjorn
ffb71c9c04
rm vertex colors for now;
2022-05-30 15:36:26 -07:00
bjorn
6e27648ce5
Wire up non-headset lovr.draw/lovr.mirror;
2022-05-30 15:35:07 -07:00
bjorn
ff77a30f01
Default shaders;
2022-05-27 20:47:20 -07:00
bjorn
970a84a514
Surface, swapchain, window texture, vsync;
2022-05-11 15:28:04 -07:00
bjorn
e820e40e08
Move window opening to lovr.system;
2022-05-09 12:43:19 -07:00
bjorn
4483145d53
Allow passing a file to lovr;
...
The file will be treated as main.lua.
Its directory will be treated as the source.
2022-04-28 17:36:05 -07:00
bjorn
c2e9ff3c32
Add graphics table to conf;
2022-04-26 22:48:51 -07:00
bjorn
40e9a4ab73
core/gpu;
2022-04-21 17:39:59 -07:00
bjorn
37221afbc6
rm graphics module;
2022-04-21 17:39:58 -07:00
bjorn
efbcb5e4c2
Merge branch 'master' into dev
2022-03-30 13:52:58 -07:00
bjorn
faa42ee38b
mv resources etc;
2022-03-30 12:34:34 -07:00