Commit Graph

85 Commits

Author SHA1 Message Date
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