25 Commits

Author SHA1 Message Date
Kawe Mazidjatari
b0d2665550 /W4: Fix compiler compatibility
Clang doesn't support function-style casts with types containing a space.
2023-04-02 17:34:42 +02:00
Kawe Mazidjatari
4e7693bae6 /W4: Fix name shadowing warnings 2023-04-02 17:25:18 +02:00
Kawe Mazidjatari
a4a2f34c10 /W4: Fix signed/unsigned mismatch
This commit fixes warnings and bugs caused by signed/unsigned mismatch.
2023-04-02 12:09:43 +02:00
Kawe Mazidjatari
69624baa10 NavMesh debug draw code refactor
* Use mathlib SIMD wrappers instead, this is to maintain compatibility across different platforms/compilers.
* Moved camera distance logic to separate method.
2023-04-01 20:54:10 +02:00
Kawe Mazidjatari
f2d1b9e643 Fix crash caused by returning unsigned values
Function returned '-1' as 'ULONG_MAX'. This patch fixes this problem while suppressing compiler warnings.
2023-04-01 17:39:22 +02:00
Kawe Mazidjatari
371e15db41 Fix many verbose compiler warnings
Many compiler warnings regarding implicit conversions.
2023-03-18 16:45:43 +01:00
Kawe Mazidjatari
19447f1122 Improve debug draw depth test toggle logic
* Add box depth test cvar from engine for 'CBaseAnimating::DrawServerHitboxes'.
* Use noDepthTest field from OverlayBox_t instead of the cvar.
2023-01-24 12:05:09 +01:00
Kawe Mazidjatari
502a1d2324 Switch box overlay transform type to 'matrix3x4_t'
Actual type turned out to be 'matrix3x4_t' after further reverse engineering.
2023-01-23 02:20:21 +01:00
Kawe Mazidjatari
4bf0e2f544 Add camera range culling logic to 'CAI_Utility::DrawAIScriptNetwork'
Uses the same camera range cvar used by the NavMesh renderer: 'navmesh_debug_camera_range'. This allows for rendering them nicely on top of the NavMesh.
2022-11-17 20:49:23 +01:00
Marvin D
d00aaa933d CRenderView init, GetWorldMatrixForView()
* Fixed .gitignore for root /game/
* Fixed bug in WalkVTable where it would offset self.
* General clean up: VAR -> CON, CON -> VAR
2022-11-10 00:53:12 +01:00
Kawe Mazidjatari
b5b56c83ea CAI_Utility::DrawAIScriptNetwork: light cleanup 2022-10-24 00:52:32 +02:00
Kawe Mazidjatari
0f920ff602 Update comment in CAI_Utility::DrawNavMeshBVTree 2022-10-21 21:27:37 +02:00
Kawe Mazidjatari
530b645a4d Additional AI Network render optimizations
* Make box's mins and maxs static const.
* Use SSE to pack 4 indices into 1 128bit register, and shuffle to prevent duplication. Only 2 indices are used at the moment.
2022-10-11 01:20:59 +02:00
Kawe Mazidjatari
70153d209c Additional NavMesh debug draw optimizations
* Init vCamera once during call (MainViewOrigin() won't change during the execution of this function).
* Construct Vector3D for camera distance only once, using SIMD.
2022-10-05 00:55:29 +02:00
Kawe Mazidjatari
31903be52e Use Hungarian notation throughout rest of the file
For consistency, we use Hungarian notation.
2022-10-04 23:00:33 +02:00
Kawe Mazidjatari
036d2e8e80 CAI_Utility::DrawAIScriptNetwork: light cleanup 2022-10-03 01:15:29 +02:00
Kawe Mazidjatari
dbc47f81aa CAI_Utility: only check ConVar's once a frame
Obtain values of ConVar once a frame instead of checking within loop. There is no point changing the values while we are rendering. Thi sshould increase performance when drawing larger NavMeshes.
2022-10-01 00:25:21 +02:00
Kawe Mazidjatari
69491acb49 Additional NavMesh draw optimizations using SIMD
* Construct min/max for AI Script Network boxes using SIMD (significantly reduced instruction count!).
* Move NavMesh debug draw to dedicated class for future changes.
2022-09-30 01:16:26 +02:00
Kawe Mazidjatari
e111587dd7 Utilize SIMD for 'DrawNavMeshPortals'
* Use SIMD to construct vertices into single XMM register.
* Use SIMD to construct origin and destination vectors from vertices.
* Deref 'navmesh_debug_camera_range' only once outside the render loop.
* Light code cleanup.
2022-09-29 22:26:27 +02:00
Kawe Mazidjatari
f06c9a01e2 Utilize SIMD for 'DrawNavMeshPolys'
* Use SIMD to construct a Vector3D in a single instruction, instead of setting the vector fields individually.
* Store ConVar value as const bool outside loop.
* Slightly improved variable naming.
2022-09-29 20:14:39 +02:00
Kawe Mazidjatari
a6a44feb4d More NavMesh visualization SIMD optimizations
Use SIMD to construct Vector3D's for the BVTree's min/max.
2022-09-29 15:59:48 +02:00
Kawe Mazidjatari
2df13ecdfc NavMesh optimizations
Use SSE for subtraction of origin scalars
2022-09-29 10:59:27 +02:00
Kawe Mazidjatari
cc26113c9e Implement debug draw AIN node links to nearest node
Feature can be toggled using the "ai_script_nodes_draw_nearest" cvar.
2022-09-28 00:14:33 +02:00
Kawe Mazidjatari
93375d9a1f Improve NavMesh debug draw colors 2022-07-25 20:40:28 +02:00
Kawe Mazidjatari
086489a000 AIN/NavMesh debug draw improvements
* Move AIN/NavMesh debug draw to ai_utility_shared.cpp.
* Use shift index + range for AIN debug draw.
* Added cvar for determining max distance between camera and tile (anything outside this range doesn't get draw).
2022-07-25 16:39:07 +02:00