Skip to content

20220211

Compare
Choose a tag to compare
@Garux Garux released this 11 Feb 22:58
· 263 commits to master since this release

Q3map2:

* now runs on c++
* discard excess portals in the void (great optimization for maps with void areas in between of playable areas and non rectangular maps)
* optimize FloodPortals()
* fix xml_Select() of leaked entity (was selecting last map entity always)
* xml_Select() leaked entity exactly in the beginning of leak line
* case insensitive command line arguments
* -help -game lists available games
* print available games on wrong -game and -format args
* -saturation light switch, default = 1, affects lightmaps and vertex color; > 1 = saturate, 0 = grayscale, < 0 = complementary colors
* replace model loaders by assimp library (40+ formats)
* auto split big model meshes to <= maxSurfaceVerts chunks (avoids excess meta process for vertexlit ones)
* fix texturing, when origin key of group entity is set
* improve ase export compatibility
* support negative misc_model scale
* use dynamic maxSurfaceVerts (user preference/game define) in 'force meta process for a surface' decision (was hardcoded)
* fix _castShadows > 1: cast on world, as advertised
* read .map brush plane points and store brush planes for windings calculation in double precision (fixes cracks between brush faces)
* support entries with .shader extension in shaderlist.txt
* 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
* hasten MergeMetaTriangles and SmoothMetaTriangles to perform typically in 0 seconds
* improve quality of metasurfaces and reduce their count in general case
* prioritize +Z fog visible side in ambiguous case (= -Z fog direction), as in fogged pit
* 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
* -fs_basegame gamename: Overrides default game directory name (e.g. Q3A uses 'baseq3', OpenArena 'baseoa', so -game quake3 -fs_basegame baseoa for OA)
* new: bsp export/import in json format; Usage: q3map2 -json <-unpack|-pack> [-v] <mapname>
* synchronize -help, html help and actually available command line arguments
* -json -pack -useflagnames: deduce surface/content flag values from their names in shaders.json (useful for conversion to a game with different flag values)
* -skipflags: while -useflagnames, skip unknown flag names
* -pk3, -repack: support multiple bsp files input by command line
* unlimit MAX_IMAGES
* support inline /* */ comments
* -mergebsp [options] <mainBsp.bsp> <bspToinject.bsp>: Inject latter BSP to former. Tree and vis data of the main one are preserved.
* -mergebsp -fixnames: Make incoming BSP target/targetname names unique to not collide with existing names
* -mergebsp -world: Also merge worldspawn model (brushes as if they were detail, no BSP tree is affected) (only merges entities by default)
* fix decompilation of brushes with edge case face normal ( -0.577350259 -0.577350259 0.577350259 ) and MakeNormalVectors() in general
* non -fast bsp decompilation: deduce brush detail flag
* patchMeta: fix: keep playerclip patches for collisions
* autocaulk: do not impact fog brushes with all faces culled (global fog case)
* skylight extension: q3map_skylight amount iterations optional[horizon_min horizon_max sample_color]
	horizon_min horizon_max: two spherical angles, defining portion of sphere to emit light from.
	Default is 0 90, which is upper hemisphere. -90 90 will be whole sphere.
	sample_color: Default = 1: sample color of each individual light from skybox images, if they are present.
	0: use shader color, set by q3map_lightRGB/q3map_lightImage/_up skybox image/qer_editorImage.
* q3map_skylight may be used multiple times in a single shader

Radiant:

binds...

* ctrl + m3/drag: also paste texture seamlessly from brush face to patch and vice versa, when patch edge is on face plane

menus...

* Misc->Colors->Themes->Adwaita Dark color theme

misc...

* common shaders deduction: fallback to .game "common_shaders_dir" param (default = "common/"), so they may be configured all at once
* improve performance of big maps loading, undo/redo dramatically
* improve performance of deselecting big selections
* only scale light radius by mouse while it is displayed
* load all found *.fgd, not just halflife.fgd
* fgd: support studio("display/model/path") and flags(Angles)
* replace model loaders by assimp library (40+ formats)
* fix rendering of direction arrow of group entities, when origin key is set
* add optional `soundtypes` keyword of .game config, affecting file types shown in sound browsing dialog
* automatically add ExtraResoucePath to q3map2 arguments, if set
* support negative misc_model scale
* .ent: support setting default model value of MiscModel type (<model key="model" name="Model File" value="ass/spider.mdc">)
* .ent: "direction" attribute presence enables -1/-2 angle support for EclassModel, GenericEntity
* .ent: "angles" attribute presence enables angles support for EclassModel
* entity keys: prefer "angles" over "angle", "modelscale_vec" over "modelscale" if both are set
* support entries with .shader extension in shaderlist.txt
* Q2::surface inspector::brush face flags: add "Unset flags" button	
* patch thicken: set default thickness and increment step to current grid size
* patch thicken: create new patches in original patch entity
* region build: widen temp box to handle small volumes, light entities at the edge and flat primitives
* region build: pull temporal respawn to the box instead of error
* bobToolz.mergePatch: bruteforce merge all selected patches; keep unaffected patches selected
* view.show.blocks (_blocksize display): support q3map2 way of handling (3 values input, zero values, Z splits)
* fix: don't rename target/names without numeric suffix on paste to non clashing namespace
* cloneSelected, cloneSelectedMakeUnique: select cloned stuff (was preserving original selected)
* fix: don't increment target/names on file.import
* model shader paths guessings: prefer material names, starting with textures/ or models/ over diffuse map name
* add Inter-Quake Model (IQM) support
* add grid sizes 512, 1024