Skip to content

Releases: Garux/netradiant-custom

Latest Build

09 Mar 12:12
Compare
Choose a tag to compare

Commits

  • 34038fd: unify WriteBSPFile() print (Garux)
  • 5daf2e2: * generate shaders to force nomipmaps flag on external lightmap images created by lightstyles and external lms hacks (Garux)

20221212

12 Dec 15:53
Compare
Choose a tag to compare

menus...

* view->filter->sky: Q3 shader based skies (skyParms keyword)

misc...

* render Q3 shader based skyboxes
* refactor textureTags GUI, make it toggleable in runtime
* textureTags work right away without scanning of all availbale textures & shaders
* superseded Patch Inspector by extended Surface Inspector functionality
* port editor to Qt framework
* texBro folders tree: sort it case insensitively
* "Built-In Group Dialog" layout option, embeds entity, textures etc dialog on the right of main window
* 2D view new brush creation: do not stumble on one dimenstion resizing, when the other is 0
* 2D view new brush creation: preserve brush start world coordinate, when viewpoint is changed in the process

20221027-QtTest1

27 Oct 09:10
Compare
Choose a tag to compare
20221027-QtTest1 Pre-release
Pre-release

menus...

* view->filter->sky: Q3 shader based skies (skyParms keyword)

misc...

* render Q3 shader based skyboxes
* refactor textureTags GUI, make it toggleable in runtime
* textureTags work right away without scanning of all availbale textures & shaders
* superseded Patch Inspector by extended Surface Inspector functionality
* port editor to Qt framework

20220211

11 Feb 22:58
Compare
Choose a tag to compare

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

20210105

05 Jan 05:33
Compare
Choose a tag to compare

Q3map2:

* fix: do not affect styled lightmaps by floodlight
* support -extlmhacksize N N input for non square lightmaps, for example -extlmhacksize 2048 1024
* no shaderlist.txt or empty one = load all shaders
* fix -fixaas
* packer, repacker: also handle fogs without drawsurfaces
* -repack -analyze switch: only analyze bsps and exit (to dump bsp resource calls)
* packer, repacker: handle nodraw patches correctly; warn on visible surface, having shader w/o maps (typically watercaulk)

Radiant:

binds...

* ctrl + shift + z: redo alias

misc...

* support misc_model::_remap facility of q3map2
* support indexed tga formats: (24/32bit palette)x(8bit colour index)x(rle/not)
* Model Browser: default bind '/'
	m1 = assign model to selected entity nodes (shift + e to select nodes of group entities)
	m1x2 = insert "misc_model" with given model
	m1 drag = rotate model
	Preferences.Model Browser: list of * separated folderToLoad/depth values, e.g. *models/mapobjects/99*maps/1*; */99* loads root
* new rendering system for volatile text
* new filter: Point Entities (nongroup entities besides misc_models and lights)
* unzoom from mouse pointer in 2D and 3D
* set clipper points to selected face on clipper tool switching-on
* entity inspector: select entities by key, value, key+value buttons
* no shaderlist.txt or empty one = load all shaders
* brush.icosahedron.truncate option

20200320

20 Mar 05:18
Compare
Choose a tag to compare

Q3map2:

* _maxlight worldspawn key (works unless exposure is used) (for those, who know, what they do)
* misc_model::_remap: also remap 'abrakadabraNAME' shaders by _remap = 'NAME;newname'
* -fillpink in light stage: fill unoccupied lightmap pixels with pink colour
* support -lightmapsastexcoord conversion to .ase
* support -shadersasbitmap in -lightmapsastexcoord conversion mode
* -lightmapsastexcoord conversion: support 'external lightmaps, referenced by shader' hack
* -extlmhacksize N (external lightmaps hack size) -light switch
	similar to -lightmapsize N: Size of lightmaps to generate (must be a power of two)
	but instead of native external lightmaps enables hack to reference them in autogenerated shader (for vanilla Q3 etc)
* -brightness only affects lightmap brightness, like q3map_lightmapBrightness, as there are -vertexscale and -gridscale for the rest
	is multipled with q3map_lightmapBrightness
* fix: qer_editorimage, q3map_lightImage etc work with file names, containing period

MBSPC:

* deduce OutputFile path out of input file path in -bsp2map, -bsp2map220, -entlist, -texinfo modes (like for .aas)
* append _decompiled suffix to decompiled map file names

Radiant:

binds...

* shift + }/{: CameraModeNext/Prev
* build menu.customize: ctrl + c / ctrl + insert = copy, ctrl + v / shift + insert = paste build presets and command lines
* ctrl + alt + m1: extrude pointed faces of selected brushes and selected faces inside/outside

misc...

* disable overlay front buffer rendering hack in 3D camera and completely in 64bit builds
* render 2D crosshair, as overlay, update it during manipulations
* fix active 2D view outline rendering in 2x2 layout
* prevent runouts of 2D views from grid area (world bounds)
* focus all 2D views on map load, selection by q3map2, NextLeakSpot, selection by brush/entity number
* fix invisible radiant with floating 3D camera window hidden in non floating layout
* calculate fov against max of 3D viewport width, height for consistency
* workaround gamma bug in 2D views and texture browser with fresh nvidia drivers
* suggest to automatically restart editor on change of preferences, which require this
* suggest to restart after selected game preference change
* build menu.customize: show placeholder string in entries for creation of new ones
* shader editor: support files with crlf line feeds in linux
		preserve line feeds on saving
		indicate 'modified' state by save button and window name
		view shaders from packs too (read only)
* brushexport plugin: "Weld vertices" option (welds inside group or object, thus result depends on collapse option)
* brushexport plugin: add Save button to reexport to recently specified file directly
* brushexport plugin: add 'Ignored materials' on Enter, delete on Delete
* brushexport plugin: for 'Ignored materials' use input after last slash, as comparison is only using this part
* brushexport plugin: make comparison with 'Ignored materials' case insensitive
* brushexport plugin: hide window on closing = preserve settings
* support Quake3 and Quake in -gamedetect (autodetects by availability of "baseq3/pak0.pk3" and "id1/pak0.pak" in folders prior to radiant's)
* improve alt + m1 resizing in camera for slanted faces
* csg tool: +faces face specification mode (only process selected faces)
* csg tool: also process unselected brushes with selected faces
* preferences->Grid->Max grid coordinate: how much big grid to render (visual aid for games with small world)
* open/save dialogs: use current file path, name, focus it, if present
* alt + m1 2D view face vertex manipulator: use 'faces on the only best plane' pickup strategy
* improved CSGTool::Hollow::diagonal algorithm (reliable for complex brushes complete extrude, handle simple brushes deep partial extrude)
* DragExtrudeFaces: diagonal extruded brushes joints if extruding multiple faces per brush
* DragExtrudeFaces: process with selected faces only, i.e. w/o objects selection
* shortcuts list: add Reset button (defaults selected shortcut)
* shortcuts list: add Reset All button (defaults all shortcuts)
* QE tool mouse move: highlight PlaneSelectables with alt/ctrl+alt, components in component modes

UPD 20200325

  • picomodel::ase: support standard empty bitmap name 'none'
  • support misc_model::_remap facility of q3map2
  • fix: do not affect styled lightmaps by floodlight

20190705

06 Jul 10:57
Compare
Choose a tag to compare

Q3map2:

* fix map region -light compilation: load lights from .reg, not .map
* model autoclip: handle 'triangle points almost on line' case
* allow maps with only point entity@( 0, 0, 0 )
* obj export: save in popular 'Y = Up, -Z = Forward' format
* picomodel::obj: load as popular 'Y = Up, -Z = Forward' format
* picomodel::obj: fix support of back references in faces
* picomodel::obj: support polygons > quads
* assign surfaceflags to brush 'bevel' planes, so physics like slick/nodamage/metalsteps function at brush edges and vertices
* picomodel: fix md2 loader
* fix unwanted culling of both matching brush faces

MBSPC:

* add MBSPC fork of BSPC utility to the project
* import fixes and QuakeLive support from mainstream BSPC
* bump hardcoded limits for Q3 and HL maps
* add -bsp2map220 switch, writting map in Valve 220 format with correct textures alignment for Quake 1/2, SiN and Half-Life BSPs
* various improvements of decompiling

Radiant:

binds...

* ctrl + r: clone stuff and repeat recent transforms; clipper tool toggle resets transforms stack
* bindable commands TextureProjectAxial/Ortho/Cam, using default texdef, unlike surface inspector buttons
* all plugins commands are bindable
* G: UV Tool (edit texture alignment of selected face or patch), modifiers:
	pivot control point and lines: ctrl = snap hard to face vertices and grid
	grid density controls: shift = change density of both axes synchronously, ctrl = power of two grid
	scale lines: shift = scale axes synchronously, ctrl = snap hard to vertices
	alt + m1 on grid = skew texture (is possible alright in BP and Valve220 map formats, not in AP); ctrl = snap hard to edges
	texture move: shift = only move along the axis with the biggest move, ctrl = snap grid lines hard to vertices and pivot
	patch controls move: shift = only move along the axis with the biggest move, ctrl = snap hard to grid and povit lines
	rotate: shift = rotate with step of 15 degrees, ctrl = snap hard to edges

menus...

* Brush->AutoCaulk Selected (F4); camera must be there, where legit player respawn could be, i.e. close to selection and not inside of a brush

misc...

* fix crashy assertions on vertices/edges selection (also = during vertex manipulations)
* disable points snapping to .125 grid during edge manipulation (already disabled for vertex mode)
* lower Winding_Clip ON_EPSILON to play with weird brushes w/o error
* fix brush shader names handling by bobtoolz
* "BuildMenu" preference: store filename (def. build_menu.xml) instead of absolute path for portability; absolute path is supported too, if set
* fix: load customized build_menu.xml from settings folder on the very first start and with senseless "BuildMenu" value
* brushexport plugin: write Kd (diffuse color) and map_Kd (diffuse map) data to .mtl
* brushexport plugin fix: invert Y during YZ swap; invert V of UV coords (correct texturing)
* brushexport plugin: default to 'Don't collapse' option
* entity inspector::smartEdit: display real key names
* entity inspector::smartEdit: show tooltips with extended names and descriptions for keys and flags
* prtview plugin: support PRT2 and PRT1-AM .prt formats
* bobToolz::Vis Viewer repair (shows current vis cluster brush drawsurfaces in green and rest visible ones in other colours for Q3 and Wolf/QL .bsp):
	don't crash on bsp w/o vis
	don't crash with origin in the void (includes inside of structural brush)(do reset)
	grab point to analyse from camera position with nothing selected; grab from any objects selection too
	fix rendering issues
	read surfaces written by q3map2 correctly + faster rendering code
	print number of loaded drawsurfaces to console for evaluation of optimization done
	fix a couple of of leaks and crashes after new/delete
* Shortcuts edit: fix "already assigned" check
* special mWheel scrolling mode during orbiting in camera (alt + m2)
* region XY: only deselect excluded objects for convenience
* fix precision of brush vertex editing and wrap merge
* fix sloped brushes evaluation at big coordinates (aka disappearing faces and brushes)
* prevent resizing brushes to zero volume by faces drag, try to stop at minimal configuration
* bigger components handles
* render occluded brush vertices differently
* consider texture alpha channel during rendering of shaders with qer_trans
* override fully transparent alpha of tga images by fully opaque
* fix alt + m1 indirect faces picking, when object is partially or fully out of camera view
* fix face centroids of small faces at big coordinates in 64 bit

20181213

13 Dec 19:15
Compare
Choose a tag to compare

Update 2018-12-16:

  • workaround for very slow fontconfig initialization @windows by Zarr
  • Ubuntu build by Fjoggs

Q3map2:

* picomodel::obj: fix black default vertex color, also use one from .mtl
* picomodel: fix parser->curLine for line number report (was increased twice)
* fix reading of old wolf, et, etut bsps
* picomodel: do some guessings about shader paths to handle more cases out of the box; ones are based on material and diffuse map names:
	name w/o path: assume textures are in the folder, where model file is
	absolute path or with ..: try to cut at "/models/" or "/textures/" (as if leading to game folders); do previous case, if not
	strip extensions and turn slashes to forward ones anytime
* picomodel::obj: fix diffuse map paths loading from .mtl
* picomodel::obj: fix over allocating vertices with multiple surfaces (by zturtleman)

Radiant:

binds...

* bindable commands FitTextureWidth, FitTextureHeight, FitTextureWidthOnly, FitTextureHeightOnly
* bindable commands EntityMovePrimitivesToLast, EntityMovePrimitivesToFirst, EntityUngroup, EntityUngroupPrimitives
* m3: copy texture name, alignment +new: color, light power, color
* alt + m3/drag: paste texture name (to pointed and selected stuff)
* shift + m3/drag: paste texture name, alignment +new: light power
* ctrl + m3/drag: paste texture seamlessly between brush faces +new: light color
* ctrl + shift + m3/drag: project texture from copied brush face +new: paste light power, color
* alt + ctrl/shift/ctrl+shift + m3/drag: respective texture alignment paste w/o texture name
* alt + m1 in camera: new resizing mode for brushes, curves and doom3 lights with direct and indirect selection methods
* alt + m2 in camera: orbit around clicked point
* ctrl + u: new uniform CSG wrap merge algorithm, merging selected brushes, components and clipper points
* z, backspace (DeleteSelection): also delete selected components (vertices/edges/faces) of brush in a component mode
* clipper::enter, shift+enter, doubleclick: merge brushes and components with clipper points, if no cut occured
* 3d camera clipper: move points in XY + Z style with shift, ctrl, alt; snap to grid with ctrl

misc...

* replace reGroup command with simpler to use Move Primitives to Entity one (select primitives to move, select target entity primitive, go)
* remove entity->ungroup command: change classname to worldspawn does equal job; 'create worldspawn' click ungroups selected primitives only
* add statusbar->patches count
* statusbar: show selected brushes/patches/entities counts, if anything is selected; total, if not
* default (QE) tool: new translation styles: "XY plane + Z with Alt", "View plane + Forward with Alt" (prefs->Selection->Move style in 3D)
* up/down floor walker: examine all types of scene nodes (was brushes only)
			consider only top/down and selected instances (was whole scene)
			fix jam at close coords
			also jump to bottommost coord of considered objects				
* enable entity->killconnect for game type="q1"
* map objects counts statusbar icons
* omit textures/ prefix in texture clipboard status
* disable clipper cut action on doubleclick, if click has set second point
* selector size: bump default 8->12
		clipper's one = user preference + 4
		hardcode for pivoted manipulators to 8 (since their size is constant)
* handle degenerate cases of 2 points clipper in camera (points on the line of view direction)
* preferences->Clipper->On DoubleClick do: clip or split (def = split)
* use external textures mipmaps generation, draw NPoT textures correctly
* update Texture Quality (mip level) preference without restart
* fix group entities name position with origin key used
* more robust open/save/import dialog path handling (could crash by opening file w/o extension or with illegal one)
	likely fix for extensions in uppercase in OSes with case dependent FSes
* rectangular selector gestures, enabling select, deselect and toggle behaviors
* fix clone, clone-make-unique, select all of type, expand selection to entities/primitives for maps w/o worldspawn
* fix automatic connection names resolving of cloned entities
* render direction arrow for group entities, having angle/angles key set or having angle/angles/direction attribute in .ent
* render workzone in 3d camera
* render size info in 3d camera
* rewrite and fix 2d background image feature; fix bug on intels (glPushAttrib)
* represent grid by 3d camera workzone
* arbitrary rotation dialog fix: also handle extra precision of values on execution by button press
* improve skew manipulation consistency in camera
* XY + Z style of transform manipulator translations
* improve rotation manipulations consistency in camera
* also filter "textures/common/donotenter" by Botclips filter
* fix: update component modes toolbar buttons on entering clipper mode
* new vertex editing mode, preserving non modified vertices (=adding/removing faces automatically)
* Snap to grid in a component mode: snap whole objects, if no components selected
* Snap brush/its vertices to grid: rebuild brush from snapped vertices with optional texture vertex lock
* insert brush vertices in vertex mode by clicking with no ones selected
* massive supplement/fixing of Q3 entities.ent; defrag.def->defrag.ent

20180723 Debian buster x86_64 build

02 Aug 06:26
Compare
Choose a tag to compare

Acknowledgment to Vita

20180516

16 May 14:40
Compare
Choose a tag to compare

Q3map2:

* buffered broadcast xml stream to dramatically increase compilation monitoring speed
* mark warning messages with respective flag for colorized monitoring output
* colored warnings and errors in Windows console
* modify message flags system to allow SYS_WRN | SYS_VRB, SYS_ERR | SYS_NOXML etc combinations

Radiant:

* fix filter structural filtering point entities for q1
* introduce globalWarningStream()
* fix RadiantSelectionSystem::getSelectionAABB() for PlaneSelectables
* orange console warnings
* new robust (working well in camera too) algorithm of indirect faces selection for brushes, patches, doom3 lights, transform tool
* select only plane of planeselectables in camera (since it's not easy to select multiple ones on purpose anyway)
* build system: prevent empty commands execution
* build monitoring: determine if pending stack got monitorable commands, use non monitorable path, if not
* preferences->Build->Dump non Monitored Builds Log (default = no)
* catch degenerate cases in texture vertex lock (ex: verts edit to noncontributing face, then back)
* brush creation in camera; alt = modify height
* entity based structural/detail filters depend on brushtypes="quake" in .game to make detail surfaceflags usable for quake 1
* lower alt+m2 (2d zoom) sensitivity
* support mouse_moved_epsilon system in camera freelook
* preferences->Camera->Strafe Speed slider
* camera strafe: m1 one is disableable by mode 'none'
		do not block strafe by pressed shift in up/forward modes
		enable forward strafe with only shift pressed in 'both' modes (no ctrl is required)
* remove hack, making freelook move speed fps dependent and harsh move start
* preferences->Camera->Scroll Move Speed slider
* change freelook move speed units to game units; expand range; simplify
* print speed values on change by CameraSpeedDec/CameraSpeedInc commands to console
* preferences->Camera->Time to Max Speed slider (camera key moves acceleration)
* fix backslashes in opened by cmd line map path = fix duplicates in recent maps list
* check move amount (56 pixels) in M2 toggle freelook or keep strafemode condition to allow fast strafe moves
* texbro: show tags frame on M2 release after small or zero move to enable (m2 drag = scroll pan) with tags on
* change GDK_KP_Home, GDK_KP_Page_Down, GDK_KP_End binds to GDK_KP_7, GDK_KP_3, GDK_KP_1: works under Windows at least
* fix mixed up ViewFront and ViewSide commands, NextView menu entry typo
* preferences->Selection->Selector size (pixels)
* turn off 64u deep selection of components in QE tool
* fix qer_alphafunc equal/greater/less/lequal alphatest modes (was always 'gequal')
* clipper tool total rewrite; works in 3d viewport
* fix: update BrushClipPlane rendering on selection change
* clipper points are draggable right after been dropped
* preferences->Clipper->"Reset Flipped State" (on cut done and on manipulator changed), "Reset Points on Split", "2 Points in 2D Views"
* wysiwyg lights selection (was bbox based)
* fix: update BrushClipPlane rendering on undo
* snap Clipper points to brush planes, edges and vertices (in 3d camera)
* Valve220: transform basis in special way with texture lock off