2076 Commits

Author SHA1 Message Date
yvt
d31dc21048 fix(client): handle all cases correctly when uncrouching
When a player releases the "crouch" key, `Player::TryUncrouch` is
responsible for checking if uncrouching is possible and adjusting the
local player position accordingly so that the legs won't be embedded in
a ground thereafter. There are two cases in which uncrouching succeeds.
Case 1: The player is airborne, and there's room under the legs. Case 2:
There's room over the head.

The old code did not rely on `Player::TryUncrouch` for player position
readjustment. Instead, `Player::SetInput` was actually responsible for
this. Unfortunately, it did not distinguish the cases correctly. It did
check correctly whether uncrouching is possible. However, to determine
which of Case 1 and Case 2 is applicable, it only checked the player's
airborne-ness, therefore it incorrectly selected Case 1 if the player is
airborne but there's no room under the legs. This incorrect
implementation resulted in annoying bugs where a player gets stuck in a
ground if the player uncrouches just above it.
2021-12-08 20:19:46 +09:00
yvt
fdba89bc14 doc(core): VoxelModel::GetOrigin is a misnomer 2021-08-15 00:54:09 +09:00
yvt
9e0403430e fix(draw): use the correct materials for models materialized by CreateModel 2021-08-15 00:54:06 +09:00
yvt
a9333424ba
Merge pull request #964 from Haxk20/patch-1
Disable recoil if not local player
2021-08-14 14:44:18 +09:00
yvt
23a74265c5
Merge pull request #969 from Haxk20/enet
Sources/ENet: Update ENet to latest version
2021-08-14 14:43:58 +09:00
yvt
ee1f8a4772 fix(client): relax the lower bound of the denominator used in numerical differentiation for velocity estimation
Improves the smoothness of non-local player movement in a server that
sends ten WorldUpdate packages for each second (i.e., 10 updates per
second).

I wouldn't dare to relax the bound further since this technique is
extremely susceptible to jitter. The server sending WorldUpdate packets
with `PACKET_FLAG_UNSEQUENCED` isn't exactly helping since that
introduces discontinuity into the received position stream, and the
denominator lower bound is the only thing that keeps the estimation from
exploding. (The packets should really be unreliable + sequenced.)
2021-08-11 23:43:36 +09:00
Haxk20
0ddf702c3b Sources/ENet: Update ENet to latest version
This commit updates the enet version from 2013 !!! to the latest commit (74cea7abf52ddd355146aeb0a4077d2b95368122)

Since 2013 there have been MANY improvements to the library
and we should absolutely use them since it can improve the gameplay.
2021-07-26 16:44:19 +02:00
yvt
4f5c2427d8 fix(client): std::deque::deque(size_t n) sets the length to n, not the capacity
Fixes #918.
2021-07-22 17:48:30 +09:00
Haxk20
b15894bd64 Player.cpp: Disable recoil if not local player
This commit completely disables any sign of recoil if
the packet is coming from a player that is not local
player.

We want to apply recoil to local player weapon
but we do not want to apply it to others as
we just want to display what was given to us
(Their client already adds recoil. If not they
are cheating)
2021-07-11 01:23:01 +02:00
yvt
f2f56ff4fa feat(draw): reduce the temporal AA's effect near the fog distance 2021-07-03 11:27:47 +09:00
yvt
70feb0870b feat(client): revamp the flashlight 2021-06-20 16:13:02 +09:00
yvt
3bda029e34 feat(client): remove the lens flare effect of the flashlight
It had caused severe banding when HDR is enabled.
2021-06-20 16:13:02 +09:00
yvt
14de74ac1f perf(client): use the VP-screen matrix to calculate the result of Client::Project 2021-06-20 16:11:47 +09:00
yvt
9a758f27f7 refactor(client): add SceneDefinition::{ToOpenGLProjectionMatrix, ToViewMatrix} 2021-06-20 16:11:45 +09:00
yvt
8ac141daf4 feat(draw): support linear lights 2021-06-20 16:11:39 +09:00
yvt
a35dab4e61 fix(core): handle the cases where start is inside correctly in OBB3::RayCast 2021-06-20 16:11:29 +09:00
yvt
690520040e feat(core): implement Line3::{Project, GetDistanceTo} 2021-06-20 16:11:26 +09:00
yvt
a70ed62a63 fix(core): OBB3::RayCast now uses a consistent origin for hitPos for all cases 2021-06-20 16:11:24 +09:00
yvt
70443fe87a Revert "feat(draw): increase the effect of GLFogFilter2 in a near field"
This reverts commit f6912b7a1da2fb68c6b7edb1565133f8fbb04c10.
2021-06-06 23:17:36 +09:00
yvt
0d73f3cfcb
Merge pull request #953 from Pablo-Dallegri/alerts-volume
Add volume adjustment for alerts
2021-05-08 13:13:25 +09:00
Pablo-Dallegri
a4f3e067d8 Fix displayed string 2021-05-07 11:56:17 -03:00
Pablo-Dallegri
b6e0153e62 Rename new cvar 2021-05-07 11:52:16 -03:00
Pablo-Dallegri
4fd3329c1d Revert cg_alerts renaming 2021-05-07 11:46:14 -03:00
Pablo-Dallegri
3349ac54ab Add alerts volume slider 2021-05-07 11:00:17 -03:00
Pablo-Dallegri
b9001dfb55 Rename cg_alerts to cg_alerts_show 2021-05-07 10:29:49 -03:00
yvt
7f5c203222
Merge pull request #952 from Pablo-Dallegri/chat-beep-volume
Add volume adjustment for chat beeps
2021-05-06 21:34:27 +09:00
Pablo-Dallegri
de21f9ea6c Create UI volume slider 2021-05-05 14:57:09 -03:00
Pablo-Dallegri
bb751ebebb Use unit inteval 2021-05-05 07:32:23 -03:00
Pablo-Dallegri
fb9edc11e0 Create and use prescale constructor 2021-05-05 07:23:55 -03:00
Pablo Dallegri
e59acb67ab Change chat beep from toggle to slider 2021-05-05 04:12:08 -03:00
yvt
18f8b77c4a feat(gui): indicate the usage of a pre-release version in the startup window 2021-05-03 00:38:12 +09:00
yvt
52681ea7fb Bump version to 0.1.5-beta 2021-05-03 00:15:43 +09:00
yvt
59f34b5f5a
Merge pull request #941 from yvt/feat-vfog2
Volumetric Fog Level 2

> This PR adds a new volumetric fog implementation, which can be selected by `r_fogShadow 2`.
> 
>     * The new implementation calculates the fog density in the same way as the original client does (#409).
> 
>     * The influence factors of shadow casters are weighted according to their distances to the camera. Shadows don't "pop up" like they do in the Level 1 implementation.
> 
>     * It's significantly more demanding compared to the Level 1 implementation but not as much as current-gen games.
> 
>     * It supports global illumination. (The non-GI path is unimplemented, so it'll fall back to Level 1 if GI is disabled.)
> 
>     * Being implemented by naive ray marching, its code is much simpler compared to the Level 1 one.
2021-05-03 00:13:20 +09:00
yvt
52d579cf16 Merge branch 'master' into feat-vfog2 2021-05-03 00:04:52 +09:00
yvt
f141208322
Merge pull request #844 from yvt/patch-modernize
Modernize
2021-05-02 23:57:20 +09:00
yvt
b1022213f3 Merge branch 'master' into patch-modernize 2021-05-02 23:39:03 +09:00
yvt
28a283cc82 Merge branch 'master' into feat-vfog2 2021-04-10 21:39:52 +09:00
yvt
4d71214d04 feat(draw): extrapolate depth values using a tangent in the bilateral filter
Improve the SSAO quality of surfaces seen from a grazing angle.
2021-04-10 19:36:38 +09:00
yvt
e4e38d85c0 fix(core): remove the exception specification of IStream::~IStream
The exception specification isn't really useful.

Fixes build failure on Windows + MSVC.
2021-04-10 12:09:01 +09:00
yvt
12364d4151 feat(draw): add r_scaleFilter
- 0: Nearest neighbor
 - 1: Bi-linear
 - 2: Bi-cubic
2021-04-10 00:12:18 +09:00
yvt
5e9835c0fa fix(draw): do not blit depth bits from a framebuffer lacking a depth attachment
Fixes the visual corruption of the level 3 water rendering after
live-editing `r_scale` cvar.
2021-04-09 23:11:35 +09:00
yvt
6ccd397681 Fix an issue causing the first frame to be corrupted 2021-04-09 20:49:39 +09:00
yvt
a27caab565 3D render scaling (r_scale) 2021-04-09 20:14:10 +09:00
yvt
d2b9a2defc feat(draw): use jittered sampling
Dithered sampling turned out to be insufficient to remove banding.
2021-04-09 19:45:10 +09:00
yvt
2d972c00c7
Merge pull request #945 from hourai-dev/shader-fix
Fix crash due to shader program linking error
2021-03-07 14:14:08 +09:00
hourai-dev
0cda35b616
Fix crash due to shader program linking error
When built from master, Openspades would crash at startup with the
following error:
```
Error while linking a program: 'Shaders/BasicBlock.program'

error: unresolved reference to function 'PrepareForRadiosityForMap_Map'
```
The culprit was said function's definition in `MapRadiosityNull.vs`
which was missing a parameter. Fixes #944
2021-03-07 00:03:19 -05:00
yvt
43c857b201 refactor(draw): store a long-lived instance of GLFogFilter2 in GLRenderer::fogFilter2 2021-03-04 01:20:49 +09:00
yvt
d2daa7537c Merge branch 'master' into feat-vfog2 2021-02-10 01:23:03 +09:00
yvt
b6f70c3619 perf(draw): lower the AO sample count and ray distance
This doesn't severely affect the output quality thanks to the denoising
pass.
2021-02-10 01:21:06 +09:00
yvt
95c73193d1 feat(draw): alleviate the AO blurring artifact on chunk boundaries 2021-02-10 00:55:07 +09:00