Garux
94cc88d8f4
fix header->ident handling
2021-09-27 16:18:46 +03:00
Garux
1b1e6769e8
std::vector<fog_t> mapFogs
2021-09-27 15:40:39 +03:00
Garux
efa324ebe6
remove unused stuff
2021-09-27 15:12:53 +03:00
Garux
ecf9a46e78
std::vector<bspAdvertisement_t> bspAds
2021-09-27 13:29:59 +03:00
Garux
ce0dd55cc5
std::vector<bspFog_t> bspFogs
2021-09-27 12:56:08 +03:00
Garux
4642753564
std::vector<bspDrawSurface_t> bspDrawSurfaces
2021-09-27 06:14:12 +03:00
Garux
7993cc8a1f
std::vector<int> bspDrawIndexes
2021-09-26 22:10:46 +03:00
Garux
c58bd839da
std::vector<bspDrawVert_t> bspDrawVerts
2021-09-26 21:41:46 +03:00
Garux
560060a908
std::vector<byte> bspVisBytes
2021-09-26 20:34:41 +03:00
Garux
28dfbaa5ab
std::vector<bspGridPoint_t> bspGridPoints
2021-09-26 20:01:26 +03:00
Garux
e4d6e63e91
std::vector<byte> bspLightBytes
2021-09-25 19:16:25 +03:00
Garux
f5c1a11a66
std::vector<bspBrushSide_t> bspBrushSides
2021-09-25 10:17:51 +03:00
Garux
9f63742fda
std::vector<std::uint8_t> opaqueBrushes
2021-09-24 17:35:58 +03:00
Garux
260dc59d4a
std::vector<bspBrush_t> bspBrushes
2021-09-24 17:05:00 +03:00
Garux
a20717c364
std::vector<int> bspLeafBrushes
2021-09-24 16:27:10 +03:00
Garux
6066fe2cc2
std::vector<int> bspLeafSurfaces
2021-09-24 16:16:02 +03:00
Garux
b1f32e6faa
std::vector<bspNode_t> bspNodes
2021-09-24 16:06:34 +03:00
Garux
bccd3bafd7
std::vector<bspPlane_t> bspPlanes
2021-09-24 15:43:24 +03:00
Garux
76d2b565b3
std::vector<bspLeaf_t> bspLeafs
2021-09-24 15:25:58 +03:00
Garux
6267f1d0af
std::vector<char> bspEntData
2021-09-24 13:57:17 +03:00
Garux
58911934e0
std::vector<bspShader_t> bspShaders
2021-09-24 13:39:04 +03:00
Garux
6e2fc92576
std::vector<bspModel_t> bspModels
2021-09-24 12:11:11 +03:00
Garux
0e0a295330
* new: bsp export/import in json format; Usage: q3map2 -json <-unpack|-pack> [-v] <mapname>
2021-09-23 03:11:43 +03:00
Garux
29ba8c4876
refactor command line arguments parsing
2021-09-19 11:58:00 +03:00
Garux
02a3b9c026
use ostream_write( CopiedString )
2021-09-18 15:30:11 +03:00
Garux
b78513f9f8
refactor InitPaths()
...
get rid of MAX_OS_PATH
2021-09-17 19:50:36 +03:00
Garux
e22e6169c9
* -fs_basegame gamename: Overrides default game directory name (e.g. Q3A uses 'baseq3', OpenArena 'baseoa', so -game quake3 -fs_basegame baseoa for OA )
2021-09-16 15:26:55 +03:00
Garux
97ad9bf5c5
separate path manipulating functions
...
unlimit VFS_MAXDIRS
2021-09-15 08:07:05 +03:00
Garux
e1186dd734
subdivide files
2021-09-13 22:29:44 +03:00
Garux
dbeb2d0718
rename game -> g_game
2021-09-13 18:49:09 +03:00
Garux
5c5f698c28
use standard [[ noreturn ]] attribute
...
add ENSURE macro
2021-09-13 18:22:44 +03:00
Garux
ef635cd95c
remove direct uses of MAIN_C macro
2021-09-13 16:33:29 +03:00
Garux
68b8d7d5dc
refactor game configs: using class inheritance to avoid massive duplication
2021-09-13 16:11:01 +03:00
Garux
34fc3d0a5d
minor tweaks
2021-09-08 20:03:15 +03:00
Garux
18c741a960
remove unused side_t field
2021-09-08 19:45:04 +03:00
Garux
77f2e39af5
minor tweaks
2021-09-08 19:40:09 +03:00
Garux
f3321cef5f
* auto fog direction: try all sides, not just axial; default to none, if no visible sides
...
* q3map_fogDir: pick best matching side, not strict match only; ignore invisible 'bevel' sides
2021-09-08 19:22:18 +03:00
Garux
23d82aa9ef
* prioritize +Z fog visible side in ambiguous case (= -Z fog direction), as in fogged pit
2021-09-08 10:11:49 +03:00
Garux
204c3138e2
emit warning on expected practical engine fog limit overflow
2021-09-07 08:14:04 +03:00
Garux
43b5148447
remove -metaMaxBBoxDistance
...
with current 'pre weld' strategy it's not optimization anymore, also wont work as option to merge non welded triangles with adjusted meta score
2021-09-05 14:45:01 +03:00
Garux
191d489d62
* hasten MergeMetaTriangles and SmoothMetaTriangles to perform typically in 0 seconds
...
* improve quality of metasurfaces and reduce their count in general case
2021-09-05 11:37:00 +03:00
Garux
bafb339c09
MergeMetaTriangles: epsilon compare st, improves merging imprecise sts, e.g. for nonplanar surfaces after q3map_tcgen or just brush face texture projection
2021-09-03 06:23:40 +03:00
Garux
d113eed245
improve MergeMetaTriangles out surfaces quality and reduce count
2021-09-03 06:19:41 +03:00
Garux
7f8e548c2f
* hasten MergeMetaTriangles greatly (around 30 times in worst case)
...
this has negative impact on surfaces count in certain scenario (big axial surface of easily mergable triangles)
it wins predecessor once we rotate such surface
so may be consider choosing sorting plane per lump or mergables
algorithm itself is dependent on test data ordering, thus best option would be tweaking it, not prerequisites
`redundant indexes suppressed` count is always worse with this due to sorting nature, sorting per axial plane helps
assuming this optimization is not important and case dependent
2021-09-01 20:16:57 +03:00
Garux
f067b5d6c3
tweak -meta
2021-08-28 18:37:22 +03:00
Garux
0ad3d89d4a
use spatially sorted indices during search of coincident vertices in AddMetaVertToSurface
2021-08-28 10:56:50 +03:00
Garux
e780b45696
enfasten -meta for nonplanar by doing cheap check 1st
2021-08-27 17:13:26 +03:00
Garux
160c1d33db
remove -texrange business (assuming it's not relevant for decades)
...
optimize -meta (shave off 1/3 in worst case)
2021-08-27 12:18:56 +03:00
Garux
3129fd0bce
refactor model clipping code
2021-08-20 22:32:33 +03:00
Garux
d82996d684
mbspc: fix q3 entities being loaded twice
2021-08-15 18:54:28 +03:00
Garux
1372ea440b
more move semantics
2021-08-15 15:15:30 +03:00
Garux
bb1931b745
* sort pk3s, so content of later (zzz) overrides earlier, like in radiant and engine
...
* fix strong performance penalty with large amount of files in pk3s
store pak file path once per pk3, not per each file inside
2021-08-13 03:20:07 +03:00
Garux
4beae3d362
* support entries with .shader extension in shaderlist.txt
...
vfsListShaderFiles (empty shaderlist = load all shaders, -pk3, -repack):
only list pk3 .shaders from scripts/ folder
support non scripts/ shaderPath (e.g. jka)
unlimit shader files count
case insensitive shaderlist entries, so duplicates aren't loaded twice
2021-08-12 11:23:59 +03:00
Garux
aa5de2fee9
wrap winding_next logic
...
prevent crash in AddWindingToConvexHull()
2021-08-11 18:18:38 +03:00
Garux
f492ab27eb
more c++ in q3map2
2021-08-10 22:41:43 +03:00
Garux
99f4a4a767
minor tweaks
2021-08-03 20:54:21 +03:00
Garux
357f67f237
remove Q_EXTERN int numLights
...
remove /* potential pre-setup */ :
1. it seems to never actually be the case
2. it is called from threaded functions, while SetupEnvelopes() itself is not thread safe
2021-08-03 18:26:47 +03:00
Garux
f49639c697
std::list<light_t> lights
2021-08-03 07:28:53 +03:00
Garux
a743668e44
prevent overflow in gridsize adjustment
2021-08-02 12:03:22 +03:00
Garux
15b391cdb3
minor tweaks
2021-08-02 00:47:18 +03:00
Garux
e8996d0857
using facelist_t = std::forward_list<face_t>
2021-08-01 22:50:35 +03:00
Garux
c3041cc2f8
using winding_t = std::vector<Vector3>
2021-07-31 18:28:38 +03:00
Garux
dbfb22e273
using winding_accu_t = std::vector<DoubleVector3>;
2021-07-30 12:20:56 +03:00
Garux
ffa1a4340c
std::vector<plane_t> mapplanes
2021-07-29 22:21:36 +03:00
Garux
ee92bdd801
minor tweaks
2021-07-27 22:16:05 +03:00
Garux
89b7bcdf53
* read .map brush plane points and store brush planes for windings calculation in double precision (fixes cracks between brush faces)
2021-07-27 20:04:35 +03:00
Garux
3c17f8fbc5
add MST_PLANAR and MST_TRIANGLE_SOUP counts to -info report
2021-07-22 17:32:58 +03:00
Garux
44907db895
Add KTX and ETC1 texture support by @Triang3l
...
https://github.com/xonotic/netradiant/pull/1
https://gitlab.com/xonotic/netradiant/-/issues/5
This pull request adds support for Khronos Textures to NetRadiant and Q3Map2, with OpenGL ES 2.0 formats, Ericsson Texture Compression version 1, and BGR/BGRA.
The patent-free Ericsson Texture Compression format will be used in the next version of Warsow to significantly reduce VRAM usage on mobile GPUs and the integrated GPU of Intel Broadwell.
2021-07-18 16:18:49 +03:00
Garux
0e4a4fdcf6
* fix _castShadows > 1: cast on world, as advertised
2021-07-02 16:50:01 +03:00
Garux
4697d7940c
fix new gcc build error: ‘N’ is not a constant expression, while using offsetof
2021-06-22 20:49:42 +03:00
Garux
5b33fae202
fix clang error: variable-sized object may not be initialized
2021-06-21 17:07:03 +03:00
germangar
3b9b05d40e
Undo changing to unsigned int for maxLMSurfaceVerts, maxSurfaceVerts and maxSurfaceIndexes. Restore qfusion.h long value
2021-06-03 22:28:29 +02:00
germangar
451f88efd7
Fix: Do not ignore game descriptor value for maxLMSurfaceVerts and keepLights
...
Use unsigned int for maxLMSurfaceVerts, maxSurfaceVerts and maxSurfaceIndexes
Fix: Out of bounds value at qfusion.h
2021-06-02 12:16:44 +02:00
Garux
6c00419653
fix spelling
2021-05-24 20:23:09 +03:00
Garux
5efe29d863
* use dynamic maxSurfaceVerts (user preference/game define) in 'force meta process for a surface' decision (was hardcoded)
2021-05-20 17:10:31 +03:00
Garux
31e7829e2b
* support negative misc_model scale
2021-05-11 19:05:54 +03:00
Garux
427ef0874b
* improve ase export compatibility
...
write normals after faces
write vertex normals right after their face normal
2021-05-08 14:15:17 +03:00
Garux
9eefda4fc5
* fix texturing, when origin key of group entity is set
2021-05-07 14:50:43 +03:00
Garux
75c7c09903
* replace model loaders by assimp library (40+ formats)
...
* auto split big model meshes to <= maxSurfaceVerts chunks (avoids excess meta process for vertexlit ones)
2021-05-07 14:47:39 +03:00
Garux
2222100316
indent classes, align by spaces
2021-03-24 00:25:15 +03:00
Garux
c7fedadcd1
use std::vector for flagging in SmoothNormals()
...
functions run about 10% faster due to cheaper access to a flag
2021-03-13 11:16:07 +03:00
Garux
1d4424f4c6
minor tweaks
2021-03-12 01:17:01 +03:00
Garux
09c78ec0dc
return Vector3 from vectorForKey()
2021-03-11 20:16:52 +03:00
Garux
1144be0881
add BasicVector3 uniform constructor
2021-03-11 19:14:07 +03:00
Garux
98f9023cdc
minor tweaks
2021-03-11 10:57:17 +03:00
Garux
0cff77e30d
consider "textures/system/" jka common folder during map decompilation
2021-03-09 20:13:42 +03:00
Garux
0737e962de
use std::sort instead of qsort
2021-03-09 20:09:08 +03:00
Garux
52ef1c838a
make sure to do VectorNormalize in double
2021-03-08 15:36:46 +03:00
Garux
858ec974f7
* -saturation light switch, default = 1, affects lightmaps and vertex color; > 1 = saturate, 0 = grayscale, < 0 = complementary colors
2021-03-08 13:34:58 +03:00
Garux
ac1dd904f1
* print available games on wrong -game and -format args
2021-03-08 13:32:16 +03:00
Garux
293fab0ffb
manage color-to-byte conversions
2021-03-05 13:37:56 +03:00
Garux
bee749118f
unify WindingExtendBounds logic
2021-03-05 06:15:48 +03:00
Garux
902fb46938
random tweaks
2021-03-04 16:11:00 +03:00
Garux
b68cbfd78b
clean ShiftBSPMain
2021-03-03 19:16:53 +03:00
Garux
ce93fb3be8
* -help -game lists available games
...
std::size for help arrays
2021-03-03 17:30:55 +03:00
Garux
39c22acbae
* case insensitive command line arguments
2021-03-03 07:54:16 +03:00
Garux
39f5a2d060
use MinMax functions instead of raw math
2021-03-03 07:01:28 +03:00
Garux
f9a424b6c8
more c++
2021-03-02 22:01:09 +03:00
Garux
9446aeca8e
fix introduced problems
2021-02-28 12:04:52 +03:00
Garux
9857bb955b
more c++ math
2021-02-26 01:10:51 +03:00