Commit graph

1467 commits

Author SHA1 Message Date
Vsevolod Kremianskii
6f4ec13ab0 Fix animation blending not working 2021-03-23 10:17:28 +07:00
Vsevolod Kremianskii
48ae0226ea Simplify AnimatedProperty 2021-03-23 10:02:27 +07:00
Vsevolod Kremianskii
c71a513401 ci: Remove Azure from APT sources
This should fix the GitHub actions build.
2021-03-23 09:47:45 +07:00
Vsevolod Kremianskii
76ef2b481e Fix animating light properties 2021-03-23 00:28:01 +07:00
Vsevolod Kremianskii
8ee6fa3bdc Fill Danglymesh struct when loading MDL 2021-03-22 22:50:11 +07:00
Vsevolod Kremianskii
e65ecd6ca4 Refactor animation keyframes 2021-03-22 22:40:36 +07:00
Vsevolod Kremianskii
2e47ae21ed Refactor Model 2021-03-22 19:46:32 +07:00
Vsevolod Kremianskii
a0d95f16e5 Cleanup MdlReader 2021-03-22 19:30:26 +07:00
Vsevolod Kremianskii
ac55ac6a8d Read Danglymesh header and AABB tree from MDL 2021-03-22 19:27:54 +07:00
Vsevolod Kremianskii
100f318c81 Refactor MDL model loading
Read structs directly from memory.
2021-03-22 18:41:33 +07:00
Vsevolod Kremianskii
e5a41b92db Read ALL known controller types 2021-03-22 14:24:39 +07:00
Vsevolod Kremianskii
11cb6cea28 Color is a light-only controller 2021-03-22 13:57:23 +07:00
Vsevolod Kremianskii
4b075ab56c Remove redundant MdlReader.openMDX function 2021-03-22 13:55:00 +07:00
Vsevolod Kremianskii
d531e40a0f Refactor MDL controllers
Loading code was getting untidy with all the switch cases and functions.
2021-03-22 10:10:05 +07:00
Vsevolod Kremianskii
3ee16a5a24 Implement MDL reference nodes 2021-03-22 02:09:24 +07:00
Vsevolod Kremianskii
3019831286 Fix regression where not all particles were drawn 2021-03-21 16:23:44 +07:00
Vsevolod Kremianskii
3c32d4f752 Make dynamic room lighting not part of "enhanced graphics" mode 2021-03-20 15:44:24 +07:00
Vsevolod Kremianskii
f4f3ac7b91 Update room visibility less frequently
When in a third-person camera mode, room visibility must only be updated
when the party leader changes rooms.
2021-03-20 15:23:52 +07:00
Vsevolod Kremianskii
801a6b5200 Rename onScreen to culledOut 2021-03-20 15:13:50 +07:00
Vsevolod Kremianskii
48bc91a675 Add ERF/MOD writer 2021-03-20 14:24:22 +07:00
Vsevolod Kremianskii
9a98be39d5 Reimplement instanced particle drawing 2021-03-20 12:06:51 +07:00
Vsevolod Kremianskii
639dadc4d4 Pass large UBO structs as smart pointers 2021-03-20 11:46:23 +07:00
Vsevolod Kremianskii
7011d0ff8d Revert to using a separate UBO for all major features 2021-03-20 10:49:09 +07:00
Vsevolod Kremianskii
edccb17f6b Make grass density dependant on surface area 2021-03-19 23:37:26 +07:00
Vsevolod Kremianskii
a29b1e7a08 fix: Fix writing PTH files 2021-03-19 17:35:36 +07:00
Vsevolod Kremianskii
e84ada326b fix: Fix CTD when no PTH file is found 2021-03-19 17:18:08 +07:00
Vsevolod Kremianskii
5f5f173552 Render multiple grass clusters per face based on density 2021-03-19 13:28:01 +07:00
Vsevolod Kremianskii
cdd4c09536 Use a dedicated grass mesh 2021-03-19 13:15:03 +07:00
Vsevolod Kremianskii
08fc51f3aa Improve grass rendering 2021-03-19 12:31:42 +07:00
Vsevolod Kremianskii
a1d65ab1f3 feat: Implement grass
Grass is placed at grass face centroids - must be evenly distributed
across these faces in the future.
2021-03-19 01:42:05 +07:00
Vsevolod Kremianskii
9143e884fc perf: Make drawSingle non-virtual in SceneNode 2021-03-18 23:47:56 +07:00
Vsevolod Kremianskii
f545fcc195 feat: Load area grass properties 2021-03-18 23:35:49 +07:00
Vsevolod Kremianskii
5a8f02083b feat: Add method to return grass surfaces to Surfaces 2021-03-18 23:21:23 +07:00
Vsevolod Kremianskii
0be6771175 feat: Load surface walkability from surfacemat.2da 2021-03-18 23:17:54 +07:00
Vsevolod Kremianskii
0fc2713d52 Disable particle grouping
Since it doesn't really help performance.
2021-03-17 18:27:42 +07:00
Vsevolod Kremianskii
3bbe40d507 Revert to using squared distances for slight performance gain 2021-03-17 18:16:30 +07:00
Vsevolod Kremianskii
49b6bdb0fb Set non-squared drawDistance in game objects 2021-03-17 17:31:34 +07:00
Vsevolod Kremianskii
71d43a4fd3 refactor: Move skeletal uniforms into a separate UBO
So as to stay within 16K size limit, guaranteed by OpenGL.
2021-03-17 16:13:56 +07:00
Vsevolod Kremianskii
cab17fe23e perf: Use vec4 to pass text char transform, not mat4
12 bytes vs 64 bytes per character.
2021-03-17 15:58:09 +07:00
Vsevolod Kremianskii
38c87b1e96 perf: Extract particle position from transform in shader 2021-03-17 15:42:51 +07:00
Vsevolod Kremianskii
957df9984c Optimize text rendering
Might not work on all GPUs due to UBO size limit, need to split into
multiple UBOs.
2021-03-17 13:01:52 +07:00
Vsevolod Kremianskii
0beb844668 Cleanup font on destruction 2021-03-17 10:03:54 +07:00
Vsevolod Kremianskii
d38e19471e perf: Use triangle strip when drawing fonts 2021-03-17 09:49:06 +07:00
Vsevolod Kremianskii
cee087458a refactor: Replace verb render with draw everywhere except pipelines 2021-03-16 15:33:30 +07:00
Vsevolod Kremianskii
4eda8ce7a7 refactor: Replace dynamic casts with static casts in game objects 2021-03-16 15:13:57 +07:00
Vsevolod Kremianskii
ff86a296b0 refactor: Replace dynamic casts with static casts in scene nodes 2021-03-16 13:50:43 +07:00
Vsevolod Kremianskii
c17774d82c fix: Only creatures must cast shadows
This fixes shadowing artifacts in some areas.
2021-03-16 13:24:26 +07:00
Vsevolod Kremianskii
db3ffa9ebe perf: Use static pointer casts in ActionExecutor
No point dynamic casts, since we know the type in advance.
2021-03-16 12:38:32 +07:00
Vsevolod Kremianskii
2ff1314e2e refactor: Replace multiple UBOs with a single one 2021-03-16 11:53:11 +07:00
Vsevolod Kremianskii
4acc288419 Replace min FPS with 1% Low in ProfileOverlay 2021-03-16 09:42:39 +07:00