mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-22 04:21:51 +00:00
Import Matthew Wong's bsp2bmp utility using quakeio functions, creating an
image_t type for the line point drawing, ditching the raw and bmp formats in favor of pcx (for now), and renaming to bsp2img. I plan on working on getopt, bspfile and other image formats in the future as well as generally cleaning up the code.
This commit is contained in:
parent
447984226e
commit
2a1d8555d2
7 changed files with 1369 additions and 2 deletions
13
configure.ac
13
configure.ac
|
@ -1469,7 +1469,7 @@ QF_WITH_TARGETS(
|
|||
QF_WITH_TARGETS(
|
||||
tools,
|
||||
[ --with-tools=<list> compile qf tools:],
|
||||
[carne,pak,qfbsp,qfcc,qfdefs,qflight,qfmodelgen,qfprogs,qfvis,qwaq,wav],dummy
|
||||
[bsp2img,carne,pak,qfbsp,qfcc,qfdefs,qflight,qfmodelgen,qfprogs,qfvis,qwaq,wav],dummy
|
||||
)
|
||||
|
||||
unset CL_TARGETS
|
||||
|
@ -1631,6 +1631,7 @@ if test "x$ENABLE_servers_qw" = xyes; then
|
|||
QF_NEED(qw, [common net server])
|
||||
fi
|
||||
|
||||
unset BSP2IMG_TARGETS
|
||||
unset CARNE_TARGETS
|
||||
unset PAK_TARGETS
|
||||
unset QFCC_TARGETS
|
||||
|
@ -1642,6 +1643,9 @@ unset QFVIS_TARGETS
|
|||
unset QWAQ_TARGETS
|
||||
unset WAV_TARGETS
|
||||
unset TOOLS_TARGETS
|
||||
if test "x$ENABLE_tools_bsp2img" = xyes; then
|
||||
TOOLS_TARGETS="$TOOLS_TARGETS bsp2img"
|
||||
fi
|
||||
if test "x$ENABLE_tools_carne" = xyes; then
|
||||
TOOLS_TARGETS="$TOOLS_TARGETS carne"
|
||||
fi
|
||||
|
@ -1676,6 +1680,7 @@ if test "x$ENABLE_tools_wav" = xyes; then
|
|||
TOOLS_TARGETS="$TOOLS_TARGETS wav"
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(BUILD_BSP2IMG, test "$ENABLE_tools_bsp2img" = "yes")
|
||||
AM_CONDITIONAL(BUILD_CARNE, test "$ENABLE_tools_carne" = "yes")
|
||||
AM_CONDITIONAL(BUILD_PAK, test "$ENABLE_tools_pak" = "yes")
|
||||
AM_CONDITIONAL(BUILD_QFBSP, test "$ENABLE_tools_qfbsp" = "yes")
|
||||
|
@ -1890,6 +1895,11 @@ AC_SUBST(VID_TARGETS)
|
|||
AC_SUBST(plugin_ldflags)
|
||||
AC_SUBST(plugin_libadd)
|
||||
|
||||
QF_DEPS(BSP2IMG,
|
||||
[-I$(top_srcdir)/tools/qfbsp/include],
|
||||
[$(top_builddir)/libs/util/libQFutil.la],
|
||||
[$(WIN32_LIBS)],
|
||||
)
|
||||
QF_DEPS(QFBSP,
|
||||
[-I$(top_srcdir)/tools/qfbsp/include],
|
||||
[$(top_builddir)/libs/util/libQFutil.la],
|
||||
|
@ -2007,6 +2017,7 @@ AC_OUTPUT(
|
|||
qw/source/Makefile
|
||||
|
||||
tools/Makefile
|
||||
tools/bsp2img/Makefile
|
||||
tools/carne/Makefile
|
||||
tools/pak/Makefile
|
||||
tools/qfbsp/Makefile
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
SUBDIRS=carne pak qfbsp qfcc qfdefs qflight qfmodelgen qfprogs qfvis qwaq wav
|
||||
SUBDIRS=bsp2img carne pak qfbsp qfcc qfdefs qflight qfmodelgen qfprogs qfvis qwaq wav
|
||||
bin_SCRIPTS=zpak
|
||||
|
|
6
tools/bsp2img/.gitignore
vendored
Normal file
6
tools/bsp2img/.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
.deps
|
||||
.libs
|
||||
.vimrc
|
||||
Makefile
|
||||
Makefile.in
|
||||
bsp2img
|
20
tools/bsp2img/CHANGELOG
Normal file
20
tools/bsp2img/CHANGELOG
Normal file
|
@ -0,0 +1,20 @@
|
|||
0.0.1 - orig program, flat maps
|
||||
0.0.2 - fixed buggy plotting code
|
||||
lines overlapped properly now
|
||||
0.0.3 - added Z-axis handling
|
||||
0.0.4 - added command-line control of options
|
||||
0.0.5 - added direction of fake-Z offsetting
|
||||
0.0.6 - added camera axis, added auto-Z-offset selection
|
||||
0.0.7 - started implementing extraneous line removal
|
||||
0.0.8 - option to negate the picture
|
||||
0.0.9 - name now bsp2bmp, as it writes an (uncompressed) BMP file
|
||||
0.0.10 - bugfixes in BMP writing
|
||||
0.0.11 - add option for small polygon removal and small line removal,
|
||||
more BMP writing bigfixes (but still doesn't seem right).
|
||||
0.0.12 - fixed a big bug introduced in last version's BMP writing code.
|
||||
however is still not perfect.
|
||||
qf cvs - (Bill Currie) bring into QF using quakeio functions, creating an
|
||||
image_t type for the line point drawing, ditching the raw and bmp
|
||||
formats in favor of pcx (for now), and renaming to bsp2img. I'll be
|
||||
working on getopt, bspfile and other image formats in the future as
|
||||
well as generally cleaning up the code.
|
18
tools/bsp2img/Makefile.am
Normal file
18
tools/bsp2img/Makefile.am
Normal file
|
@ -0,0 +1,18 @@
|
|||
BSP2IMG_LIBS=@BSP2IMG_LIBS@
|
||||
BSP2IMG_DEPS=@BSP2IMG_DEPS@
|
||||
BSP2IMG_INCS=@BSP2IMG_INCS@
|
||||
|
||||
INCLUDES= -I$(top_srcdir)/include $(BSP2IMG_INCS)
|
||||
|
||||
if BUILD_BSP2IMG
|
||||
bsp2img=bsp2img
|
||||
else
|
||||
bsp2img=
|
||||
endif
|
||||
|
||||
bin_PROGRAMS=$(bsp2img)
|
||||
EXTRA_PROGRAMS=bsp2img
|
||||
|
||||
bsp2img_SOURCES= bsp2img.c
|
||||
bsp2img_LDADD= $(BSP2IMG_LIBS)
|
||||
bsp2img_DEPENDENCIES= $(BSP2IMG_DEPS)
|
94
tools/bsp2img/README
Normal file
94
tools/bsp2img/README
Normal file
|
@ -0,0 +1,94 @@
|
|||
BSP2BMP v0.0.12
|
||||
|
||||
How to use:
|
||||
-----------
|
||||
|
||||
bsp2bmp -h
|
||||
|
||||
> BSP->bitmap, version 0.0.12
|
||||
>
|
||||
> Usage:
|
||||
> bsp2bmp [options] <bspfile> <outfile>
|
||||
>
|
||||
> Options:
|
||||
> -s<scaledown> default: 4, ie 1/4 scale
|
||||
> -z<z_scaling> default: 0 for flat map, >0 for iso 3d, -1 for auto
|
||||
> -p<padding> default: 16-pixel border around final image
|
||||
> -d<direction> iso 3d direction: 7 0 1
|
||||
> \ | /
|
||||
> 6--+--2
|
||||
> / | \
|
||||
> 5 4 3
|
||||
> default: 7
|
||||
> -c<camera_axis> default: +Z (+/- X/Y/Z axis)
|
||||
> -t<flatness> threshold of dot product for edge removal;
|
||||
> default is 0.90
|
||||
> -e disable extraneous edges removal
|
||||
> -a<area> minimum area for a polygon to be drawn
|
||||
> default is 0
|
||||
> -l<length> minimum length for an edge to be drawn
|
||||
> default is 0
|
||||
> -n negative image (black on white)
|
||||
> -r write raw data, rather than bmp file
|
||||
|
||||
Explanation of options:
|
||||
-----------------------
|
||||
|
||||
scaledown - amount by which the bsp map coordinates are scaled down
|
||||
by when generating the bitmap. The default of 1/4 size
|
||||
gives a decent compromise between detail and a not-too-
|
||||
overly large resulting image. Value must be less than 1.
|
||||
|
||||
z_scaling - generate isometric-type (well, sorta) 3d look by taking
|
||||
the Z-coordinate to shift the point when plotting the
|
||||
bitmap. See <direction> for control of direction of
|
||||
shift. The number specified is the maximum number of pixels
|
||||
by which the shift will be done. If equal to 0 (default),
|
||||
the map will be 'flat'
|
||||
|
||||
padding - margin to place around the image, in pixels.
|
||||
Default is 16.
|
||||
|
||||
direction - direction in which shifting will be done for plotting of
|
||||
Z-axis. Default direction is 1 (up and to the right),
|
||||
which for a cube will give something like:
|
||||
|
||||
+-----+
|
||||
/| /|
|
||||
/ | / |
|
||||
+--|--+ |
|
||||
| +-----+
|
||||
| / | /
|
||||
|/ |/
|
||||
+-----+
|
||||
|
||||
camera axis - axis along which the camera will sit. Valid choices
|
||||
|
||||
flatness - extraneous edges are removed by taking the dot product of
|
||||
the unit vector normals of the faces which use that edge. If
|
||||
the dot product is less than this threshold, then the line
|
||||
will be plotted.
|
||||
A dot product of 1.0 means the two faces are in the
|
||||
same plane, and hence the edge should be dropped. Anything
|
||||
less than the threshold will be drawn. A bit of leeway is
|
||||
allowed with a 0.90 threshold for rounding errors and map
|
||||
design imperfections (ie. walls not EXACTLY parallel).
|
||||
|
||||
area/line minimums - if a given edge is smaller than the line minimum
|
||||
or a given face is smaller than the area minimum,
|
||||
the line(s) won't be drawn. This can be used to
|
||||
get rid of smaller details from cluttering up the
|
||||
final output. You may have to play around with the
|
||||
numbers to fine tune the output.
|
||||
|
||||
raw data - if specified, output will be the raw bitmap data, not a BMP.
|
||||
|
||||
Notes:
|
||||
------
|
||||
|
||||
* NO error checking is done on the bsp file as of this moment. Use at your
|
||||
own risk, if you plan on (or accidentally) specifiy a non-bsp file, or use
|
||||
on a buggy (ie. improperly referenced faces/edges/etc.) bsp file.
|
||||
|
||||
* Edge removal is still a big buggy... occasionally some edges which should
|
||||
be kept are removed anyways, or vice versa!
|
1218
tools/bsp2img/bsp2img.c
Normal file
1218
tools/bsp2img/bsp2img.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue