Commit Graph

169 Commits

Author SHA1 Message Date
Joshua Barretto
0a5e257b77 Remove close-up camera jitter 2022-10-23 01:42:01 +01:00
Joshua Barretto
db4cc21ec3 Fixed seams 2022-10-23 01:42:00 +01:00
Joshua Barretto
3f2efea4f2 Experimental river velocity in shaders 2022-10-23 01:42:00 +01:00
Forest Anderson
67534488b3 Merge branch 'tygyh/CleanUp' into 'master'
Tygyh/clean up

See merge request veloren/veloren!3480
2022-07-17 14:04:45 +00:00
Joshua Barretto
cda6c031b8 Limit number of minor lights applied to entities to solve performance problems 2022-07-16 15:39:06 +01:00
Joshua Barretto
b08a501aef Cleaned up ready for merge 2022-07-16 11:09:35 +01:00
tygyh
5e5698249b Remove unnecessarily qualified paths 2022-07-15 14:49:46 +02:00
Joshua Barretto
07ba4dcc33 Fixed particles for non-body entities, AO for non-volumetric illumination 2022-07-15 08:43:34 +01:00
Imbris
54f6f278a0 Include an associated Config type in the atlas trait which is provided when creating the atlas 2022-07-01 23:47:42 -04:00
Imbris
95f17a6d22 General cleanup, remove local dependency, switch to u16 from i32 in several places, avoid guillotiere types in atlas API (one spot still remains) 2022-07-01 23:47:42 -04:00
Imbris
16461cfcba Cleanup atlas allocator work, remaining TODO:
* refactor meshing and trait API to replace guillotiere types
* associated config type on atlas trait
* investigate other areas of sprite performance like LOD scaling (i.e.
  there are now significant gaps in between meshing)
2022-07-01 23:47:41 -04:00
Imbris
5e5f7885e5 Tiled guillotiere allocator for sprites working 2022-07-01 23:47:41 -04:00
Imbris
b1f5fc01db Before removing variable size edge tiles 2022-07-01 23:47:41 -04:00
Joshua Barretto
3b347a2aa3 Improved underwater lighting on low shader settings 2022-01-21 13:35:40 +00:00
Jonathan Berglin
596307c9b7 Remove unused clippy suppressions 2021-12-05 17:59:02 +00:00
Imbris
7760210824 Remove redundant closures 2021-11-28 12:24:57 -05:00
Marcel Märtens
ef40ebe0c8 update toolchain to nightly-2021-11-24 2021-11-24 10:09:22 +01:00
Joshua Barretto
8b8adcc1b8 More block particles, changes ore vein colour 2021-08-28 14:53:30 +01:00
Dr. Dystopia
db48e30ea1 Resolve unused '#[allow(clippy::needless_range_loop)]' error supressions 2021-07-24 20:22:05 +02:00
Dr. Dystopia
632eba0145 Resolve unused '#[allow(clippy::collapsible_if)]' error supressions 2021-07-24 20:16:18 +02:00
Dr. Dystopia
5cc2fc8182 Resolve all '#[allow(clippy::or_fun_call))]' error supressions 2021-07-15 13:49:59 +02:00
Imbris
01aa6af1fd Address various TODOs introduced in wgpu transition 2021-06-03 00:10:06 -04:00
Imbris
d5f4a4443a Fix all clippy warnings 2021-06-03 00:10:05 -04:00
Imbris
c532f50e64 Remove wgpu patch/update wgpu, rebase fixes, remove use of deprecated
vek functions for left, right, up, down, forward_rh, forward_lh
2021-06-02 23:59:49 -04:00
Imbris
fd0c4c166a migrate cloud pipeline, migrate iced renderer, rebase fixes 2021-06-02 23:56:43 -04:00
Capucho
8c3995298b More fixes 2021-06-02 23:56:43 -04:00
Imbris
23eca4c3f6 Re-disable incremental just for common-systems, small fix in plugin
crate, more new clippy fixes
2021-05-31 20:44:57 -04:00
Joshua Yanovski
d87225d908 Various improvements to chunk load latency.
Firstly, most importantly, improves the heuristic used for deciding
which chunks to mesh (which matters more even at low view distances
with meshing being so expensive now, but has an even more obvious
improvement at large view distances).  Essentially, instead of always
prioritizing whatever chunk was fetched earliest from the server,
instead we prioritize chunks *closest* to the player first, then chunk
order.

This greatly improves the apparent latency for things like
picking up a sprite, as well as cases where the player moves out of the
loaded range but (due to slow loading from the server or a large VD
range) there are many remaining chunks left to be meshed still within
the VD but nowhere near the player.  By properly priotizing chunks near
the player, we minimize the time / likelihood of a player being on or
very near an unmeshed chunk, and make high VDs and faster travel
speeds more viable.

We make a few other minor improvements as well:

Avoid duplicate meshing of neighbors when first inserting chunks, if
they are already in the todo list and the chunk being inserted was not
directly modified.

Also avoid remeshing neighbors if only a solid block's color changed,
which could sometimes be useful for non-sprite modifications (for
example flame-induced changes to non-destructible terrain color).
2021-05-18 17:10:29 -07:00
Joshua Yanovski
3869cdf1d2 Don't remesh chunk vertex data on sprite update.
This results in an extremely visually noticeable improvement in latency
when adding or removing sprite data and makes the game feel more
responsive.

This happens, for instance, when picking up a sprite like an apple or
flower from the environment.  We check to make sure that for items
with lighting (like Velorite) or changes that otherwise affect meshing
(like changing from fluid to nonfluid) this doesn't trigger.
2021-05-11 12:58:15 -07:00
Joshua Yanovski
1bdf3b13a8 Mesh sprites in the background.
This makes the delay afetr selecting a character before logging into the
game much shorter, in the common case.  It still doesn't handle things
perfectly (it blocks creating Terrain::new if it's not finished, and it
could be faster due to working in the background), but it's still a lot
better than it was before.

To improve sprite meshing performance, we also apply the terrain
flat_get optimizations to sprites.  Though I didn't initially know how
much of an impact it would have, it feels significantly faster to me,
though being able to parallelize it would be ideal.
2021-04-10 17:51:42 +02:00
Joshua Yanovski
af94753ad9 Remove panics and unwraps, part 1.
Also fixes various other miscellaneous bugs.
2021-04-10 10:03:21 +02:00
Joshua Barretto
09e32cb952 Initial implementation of glow/shininess 2021-03-10 18:58:25 +00:00
Marcel Märtens
4ebfbdde0f Move Specs code to own common_ecs create, put tracy and macros into common_base 2021-03-09 00:54:01 +01:00
Joshua Barretto
36d20e6990 Better docs, faster terrain meshing 2021-03-07 14:25:07 +00:00
Joshua Barretto
862cd5fe49 fmt 2021-03-07 14:25:03 +00:00
Joshua Barretto
7b807ed34c Removed dead code 2021-03-07 14:25:02 +00:00
Joshua Barretto
717bbbf23e Better static light propagation between translucent objects 2021-03-07 14:25:01 +00:00
Joshua Barretto
100cafa91b Directional baked lights for figures 2021-03-07 14:25:01 +00:00
Joshua Barretto
7d526da735 Experimental giant mother trees 2021-03-07 14:25:01 +00:00
Marcel Märtens
ea84cb138f fix wrong alignment 2020-12-16 15:17:17 +01:00
Marcel Märtens
a1b50a86c4 update guillotiere 2020-12-16 10:56:00 +01:00
Marcel Märtens
ccb01e1898 adjust fmt and clippy after toolchain upgrade 2020-12-10 14:53:01 +01:00
Treeco
ca2e4080c0 Various tiny fixes:
Text over lootbags no longer scales with distance due to performance

Fixed meshing panic

Fixed ambiant lighting default
2020-11-26 21:46:41 +00:00
Joshua Barretto
26fd40c0e3 Fmt, make clippy happy 2020-11-23 15:39:03 +00:00
Joshua Barretto
0513a41981 Iteration order fix x2 2020-11-23 10:58:22 +00:00
Joshua Barretto
765a1ca17b Switched light map iteration order, fire bowls in dungeons 2020-11-23 10:58:21 +00:00
Joshua Barretto
b539ecf438 More lights, minimised light and glow map data 2020-11-23 10:58:21 +00:00
Joshua Barretto
bb9e593a44 Fixed glow AO 2020-11-23 10:57:57 +00:00
Joshua Barretto
27e7fd0727 Preserved light/glow maps to prevent sprites/entities being lit when they shouldn't be 2020-11-23 10:57:56 +00:00
Joshua Barretto
51d1a2ecff Added glow 2020-11-23 10:57:56 +00:00