Commit graph

1339 commits

Author SHA1 Message Date
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
Vsevolod Kremianskii
f4909ea1c3 feat: Index data directory in current path 2021-03-14 10:29:01 +07:00
Vsevolod Kremianskii
498d6efd8d feat: Implement ActionWait 2021-03-14 10:11:33 +07:00
Vsevolod Kremianskii
3d29f31eb2 feat: Implement pause/resume conversation actions
When paused, conversation entries cannot be skipped by clicking the
mouse.
2021-03-14 09:51:59 +07:00
Vsevolod Kremianskii
77adec041f Update the project logo 2021-03-13 15:30:19 +07:00
Vsevolod Kremianskii
3e2567a26f feat: Initial find nearest creature by criterias implementation 2021-03-12 22:24:31 +07:00
Vsevolod Kremianskii
914bca91b2 feat: Add CreatureType enumeration 2021-03-12 15:13:32 +07:00
Vsevolod Kremianskii
9c1a7080ef feat: Implement GetCurrentAction routine 2021-03-12 14:34:32 +07:00
Vsevolod Kremianskii
6c1e445452 fix: Fix enemies being spotted through doors 2021-03-12 13:49:02 +07:00
Vsevolod Kremianskii
de2de5151e fix: Only blend animations when there is a previous animation
Hopefully this fixes animation "ghosting" with dead creatures.
2021-03-12 13:37:52 +07:00
Vsevolod Kremianskii
2ada61a1bc fix: Do not render fully transparent model nodes 2021-03-12 12:38:23 +07:00
Vsevolod Kremianskii
0199f8e8fd perf: Drop redundant particle sorting 2021-03-12 12:38:23 +07:00
Vsevolod Kremianskii
34a154f674 fix: Tweak and refactor collision detection
This fixes camera artifacts when colliding with doors, among other
things.
2021-03-12 12:38:23 +07:00
Vsevolod Kremianskii
3328cfe3e8 chore: Drop redundant _maxNodeIndex in Model 2021-03-11 20:45:39 +07:00
Vsevolod Kremianskii
d84ba3fd3d feat: Add a switch to toggle walkmesh rendering 2021-03-11 20:36:16 +07:00
Vsevolod Kremianskii
e1b3ff3676 fix: Update animation regardless of the object being on screen 2021-03-11 19:57:32 +07:00
Vsevolod Kremianskii
b510e2c06d fix: Fix loading OnUserDefined from placeable blueprints
Endar Spire is now effectively completable!
2021-03-11 19:43:09 +07:00