Commit graph

1355 commits

Author SHA1 Message Date
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
Vsevolod Kremianskii
d32d974545 Replace FPS counter with ProfileOverlay 2021-03-16 00:33:24 +07:00
Vsevolod Kremianskii
46fa5eccb8 refactor: Minor refactoring of RenderWindow 2021-03-15 22:53:05 +07:00
Vsevolod Kremianskii
18a78eb9f1 Use Core OpenGL profile
Because why not - we do not use anything from the Compatibility profile.
2021-03-15 22:10:59 +07:00
Vsevolod Kremianskii
66aa13a0f3 fix: Party member must not enter combat during conversations 2021-03-14 15:27:23 +07:00
Vsevolod Kremianskii
b56080df2f fix: Fix ActionPlayAnimation semantic 2021-03-14 15:18:19 +07:00
Vsevolod Kremianskii
1f49f09f1b fix: RemovePartyMember must not destroy the creature 2021-03-14 15:06:33 +07:00
Vsevolod Kremianskii
9799711e41 fix: Prevent *mortal* friendlies attacking each other 2021-03-14 14:52:49 +07:00
Vsevolod Kremianskii
4d0483f487 feat: Load faction dispositions from repute.2da 2021-03-14 14:38:51 +07:00
Vsevolod Kremianskii
b6210747af fix: Do not show Unlock action for KeyRequired doors 2021-03-14 13:57:02 +07:00
Vsevolod Kremianskii
a45ad2fe27 feat: Implement MoveToLocation and FollowLeader actions 2021-03-14 13:57:02 +07:00
Vsevolod Kremianskii
c07cf9ee5d feat: Implement playing Ready animation 2021-03-14 13:14:32 +07:00
Vsevolod Kremianskii
2b03763c8c Define PBR materials for Endar Spire textures 2021-03-14 11:10:31 +07:00