fteqw/iqm
Spoike b9cd6ec91b openxr plugin: tweaked - inputs should be working properly now, and are visible to csqc. subject to further breaking changes, however.
_pext_vrinputs: added cvar to enable vr inputs protocol extension allowing vr inputs to be networked to ssqc too. defaults to 0 for now, will be renamed when deemed final.
updates menu: the prompt to enable sources is now more explicit instead of expecting the user to have a clue.
updates menu: added a v3 sources format, which should be more maintainable. not final.
updates menu: try to give reasons why sources might be failing (to help blame ISPs if they try fucking over TTH dns again).
presets menu: no longer closes the instant a preset is chosen. some presets have a couple of modifiers listed. force the demo loop in the background to serve as a preview.
prompts menus: now does word wrapping.
ftemaster: support importing server lists from other master servers (requested by Eukara).
server: try to detect when non-reply inbound packets are blocked by firewalls/nats/etc (using ftemaster to do so).
qcvm: added pointcontentsmask builtin, allowing it to probe more than just world, with fte's full contentbit range instead of just q1 legacy.
qcvm: memfill8 builtin now works on createbuffer() pointers.
qcvm: add missing unsigned ops. Fixed double comparison ops. fixed bug with op_store_i64. added missing OP_LOADP_I64
qcc: added '#pragma framerate RATE' for overriding implicit nextthink durations.
qcc: fixed '#pragma DONT_COMPILE_THIS_FILE' to not screw up comments.
qcc: added __GITURL__ __GITHASH__ __GITDATE__ __GITDATETIME__ __GITDESC__ for any mods that might want to make use of that.
qcc: fix up -Fhashonly a little
setrenderer: support for vulkan gpu enumeration.
rulesets: reworked to support custom rulesets (using hashes to catch haxxors, though still nothing prevents just changing the client to ignore rulesets)
bspx: use our BIH code for the bspx BRUSHLIST lump instead of the older less efficient code.
(static)iqm+obj: these model formats can now be used for the worldmodel (with a suitable .ent file). Also using BIH for much better collision performance.
pmove: tried to optimise PM_NudgePosition, should boost fps in stress tests.
wayland: fix a crash on startup. mousegrabs now works better.
imagetool: uses sdl for previews.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5813 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-04-14 05:21:04 +00:00
..
iqm.cpp openxr plugin: tweaked - inputs should be working properly now, and are visible to csqc. subject to further breaking changes, however. 2021-04-14 05:21:04 +00:00
iqm.h tweaked the iqm exporter code to output some custom iqm extensions. 2017-01-13 00:42:51 +00:00
LICENSE Initial (unmodified) import of Lee Salzman's iqm exporter. 2017-01-07 02:13:20 +00:00
Makefile Try to fix up some linux / build script stuff. 2017-04-29 02:45:21 +00:00
Makefile.mingw tweaked the iqm exporter code to output some custom iqm extensions. 2017-01-13 00:42:51 +00:00
README.txt Many general cleaups and warning fixes. 2018-11-19 06:37:25 +00:00
util.h makefile: attempt to fix freetype when not using makelibs (should make it slightly easier for people to compile with msys2 without needing to resort to cmake). 2020-06-13 00:05:47 +00:00

FTE's fork of Lee Salzman's commandline IQM exporter, based upon 'IQM Developer Kit 2015-08-03'.
there is no blender integration - export your files to a supported format first.

Main changes:
now utilises command files instead of needing the weird commandline stuff (although that should still mostly work).
additional mesh properties and multiple mesh files, providing for proper hitmesh support, as well as some other things.
more verbose text output, additional shader prefixes.
bone renaming+regrouping
animation unpacking, for qc mods that still insist on animating the lame way.

Supported import formats:
.md5mesh
.md5anim
.iqe
.smd
.fbx
.obj

Unless you're doing complex stuff like any of the above, there's probably not all that much difference. There may be some commandline behaviour differences.


Command File Format:
	output <FILENAME> - specifies the output file name. you should only have one of each type of output.
	output_qmdl <FILENAME> - specifies which file to write a quake1-format model. May only occur once.
	output_md16 <FILENAME> - specifies the filename to write a quakeforge 16-bit md16 model to (a upgraded variation of quake's format). May only occur once.
	output_md3 <FILENAME> - specifies the filename to write a quake3 md3 file to. May only occur once.
	exec <FILENAME> - exec the specified command file, before parsing the rest of the current file.
	hitbox <BODY NUM> <BONE NAME> <MIN POS VECTOR> <MAX POS VECTOR> - generates a hitmesh as a bbox centered around the bone in the base pose (the hitbox will rotate/move with animations). The bodynum will be visible to gamecode, and may merge with other hitboxes with the same group.
	modelflags <NAME OR HEX> - enables the specified bit in the iqm header. supported names include q1_rocket, q1_grenade, q1_gib, q1_rotate, q1_tracer1, q1_zomgib, q1_tracer2, q1_tracer3
	<MESH PROPERTY> - defined below and applied as the defaults to the following import lines as well as mesh lines.
	mesh <NAME> [MESH PROPERTIES LIST] - provides overrides for a single named mesh (properties used will be those as they're already defined, if not otherwise listed).
	bone <SOURCENAME> [rename <NEWNAME>] [group <GROUPNUM>] - provides bone renaming and grouping. try to avoid renaming two bones to the same resulting name... groups may have limitations if a parent/child relationship cannot be honoured. lowest group numbers come before higher groups. by default bones will inherit their group from their parent.
	<IMPORT PROPERTY> - defined below and applied as the defaults to the following import lines.
	import <FILENAME> [IMPORT PROPERTIES] [MESH PROPERTIES] - imports the meshes and animations from the specified file.

Mesh Properties:
	contents <NAMES OR 0xBITS> - 'body' or 'empty' are the two that are most likely to be used. 'solid' may also be desired, or possibly also 'corpse'.
	surfaceflags <NAMES OR 0xBITS> - 'q3_nodraw/fte_nodraw'
	body <NUMBER> - this is the 'body' value reported to gamecode when a trace hits this surface.
	geomset <GEOMGROUP> <GEOMID> - by configuring this, you can have models display different body parts for different character models.
	lodrange <MINDIST> <MAXDIST> - not yet implemented by the engine. 0 for both is the default.

Anim/Import Properties:
	name <NAME> - the imported animations will be assigned this name. May be problematic if the imported file(s) share the same name, so try to avoid using this at global scope.
	fps <RATE> - framerate for any imported animations.
	loop - flags animations as looping.
	clamp - disables looping.
	unpack - seperates each pose of the animations into a seperate single-pose animation for compat with q1 or q2-style model animations.
	pack - disables unpacking again.
	nomesh <1|0> - discards all meshed from the affected files.
	noanim <1|0> - discards animations from the affected files, does not disclude the base pose.
	materialprefix <PREFIX/> - provides a text prefix on the material name, which should make it easier for editors while still honouring shader paths.
	start <FIRSTPOSE> - the fist pose to import.
	end <LASTPOSE> - the last pose to import.
	rotate <PITCH> <YAW> <ROLL> - rotates the model
	scale <SCALER> - rescales the model
	origin <X> <Y> <Z> - moves the thing
	event [ANIM,]<POSE[.FRAC]> <EVENTCODE> <"EVENTDATA"> - embeds event info within the animation, for stuff like footsteps. How this is used depends on the engine... If used at global scope, can be reset with 'event reset' in order to not apply to later files.