docs: remove old man/ directory
This commit is contained in:
parent
663c0a8f98
commit
cf7a289bfb
|
|
@ -92,7 +92,6 @@ endif ()
|
|||
|
||||
add_subdirectory(qbsp)
|
||||
add_subdirectory(vis)
|
||||
add_subdirectory(man)
|
||||
|
||||
install(FILES README.md DESTINATION bin)
|
||||
install(FILES changelog.md DESTINATION bin)
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
project (man)
|
||||
|
||||
find_program (GROFF groff)
|
||||
|
||||
if(GROFF)
|
||||
set(MANPAGES qbsp vis light bsputil bspinfo)
|
||||
foreach(MANPAGE ${MANPAGES})
|
||||
add_custom_command(
|
||||
OUTPUT ${MANPAGE}.html
|
||||
COMMAND ${GROFF} -Thtml -man ${CMAKE_SOURCE_DIR}/man/${MANPAGE}.1 > ${MANPAGE}.html
|
||||
)
|
||||
add_custom_target(man_${MANPAGE} DEPENDS ${MANPAGE}.html)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE}.html DESTINATION doc)
|
||||
endforeach()
|
||||
#make each of the main targets depend on the manuals
|
||||
add_dependencies(qbsp man_qbsp)
|
||||
add_dependencies(vis man_vis)
|
||||
add_dependencies(light man_light)
|
||||
add_dependencies(bsputil man_bsputil)
|
||||
add_dependencies(bspinfo man_bspinfo)
|
||||
endif(GROFF)
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
.\" Process this file with
|
||||
.\" groff -man -Tascii bspinfo.1
|
||||
.\"
|
||||
.TH BSPINFO 1 "TYR_VERSION" TYRUTILS
|
||||
|
||||
.SH NAME
|
||||
bspinfo \- print basic information about a Quake BSP file
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBbspinfo\fP BSPFILE
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBbspinfo\fP will print a very basic summary of the internal data in
|
||||
\fIBSPFILE\fP. The BSP version number is printed, followed by one
|
||||
line for each of the data types inside, giving the count and data size
|
||||
in bytes of each data type.
|
||||
|
||||
If the filename \fIBSPFILE\fP does not have a .bsp extension,
|
||||
\fBbsputil\fP will look for a .bsp file by stripping the file
|
||||
extension from BSPFILE (if any) and appending ".bsp".
|
||||
|
||||
.SH AUTHOR
|
||||
Kevin Shanahan (aka Tyrann) - http://disenchant.net
|
||||
.br
|
||||
Eric Wasylishen
|
||||
.br
|
||||
Based on source provided by id Software
|
||||
.br
|
||||
|
||||
.SH REPORTING BUGS
|
||||
Please post bug reports at https://github.com/ericwa/ericw-tools/issues.
|
||||
.br
|
||||
Improvements to the documentation are welcome and encouraged.
|
||||
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2017 Eric Wasylishen
|
||||
.br
|
||||
Copyright (C) 2013 Kevin Shanahan
|
||||
.br
|
||||
Copyright (C) 1997 id Software
|
||||
.br
|
||||
License GPLv2+: GNU GPL version 2 or later
|
||||
.br
|
||||
<http://gnu.org/licenses/gpl2.html>.
|
||||
.PP
|
||||
This is free software: you are free to change and redistribute it. There is
|
||||
NO WARRANTY, to the extent permitted by law.
|
||||
|
||||
.SH "SEE ALSO"
|
||||
\fBqbsp\fP(1)
|
||||
\fBlight\fP(1)
|
||||
\fBvis\fP(1)
|
||||
\fBbsputil\fP(1)
|
||||
\fBquake\fP(6)
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
.\" Process this file with
|
||||
.\" groff -man -Tascii bsputil.1
|
||||
.\"
|
||||
.TH BSPUTIL 1 "TYR_VERSION" TYRUTILS
|
||||
|
||||
.SH NAME
|
||||
bsputil \- utiltiy for working with Quake BSP files
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBbsputil\fP [OPTION]... BSPFILE
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBbsputil is a small utility for basic manipulation of Quake BSP files.
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "\fB--extract-textures\fP"
|
||||
Extract the texture data from \fIBSPFILE\fP and create a Quake WAD
|
||||
file. The output filename is generated from \fIBSPFILE\fP by
|
||||
stripping the .bsp extension and adding the .wad extension.
|
||||
.IP "\fB--extract-entities\fP"
|
||||
Extract the entity data from \fIBSPFILE\fP and create a plain
|
||||
text .ent file. The output filename is generated from \fIBSPFILE\fP
|
||||
by stripping the .bsp extension and adding the .ent extension.
|
||||
.IP "\fB--check\fP"
|
||||
Load \fIBSPFILE\fP into memory and run a set of tests to check that
|
||||
all internal data structures are self-consistent. Currently the tests
|
||||
are very basic and not all warnings will result in errors from all
|
||||
versions of the Quake engine. This option is not targeted at level
|
||||
designers, but is intended to assist with development of the
|
||||
\fBqbsp\fP tool and check that a "clean" bsp file is generated.
|
||||
|
||||
.SH AUTHOR
|
||||
Kevin Shanahan (aka Tyrann) - http://disenchant.net
|
||||
.br
|
||||
Eric Wasylishen
|
||||
.br
|
||||
Based on source provided by id Software
|
||||
.br
|
||||
|
||||
.SH REPORTING BUGS
|
||||
Please post bug reports at https://github.com/ericwa/ericw-tools/issues.
|
||||
.br
|
||||
Improvements to the documentation are welcome and encouraged.
|
||||
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2017 Eric Wasylishen
|
||||
.br
|
||||
Copyright (C) 2013 Kevin Shanahan
|
||||
.br
|
||||
Copyright (C) 1997 id Software
|
||||
.br
|
||||
License GPLv2+: GNU GPL version 2 or later
|
||||
.br
|
||||
<http://gnu.org/licenses/gpl2.html>.
|
||||
.PP
|
||||
This is free software: you are free to change and redistribute it. There is
|
||||
NO WARRANTY, to the extent permitted by law.
|
||||
|
||||
.SH "SEE ALSO"
|
||||
\fBqbsp\fP(1)
|
||||
\fBlight\fP(1)
|
||||
\fBvis\fP(1)
|
||||
\fBbspinfo\fP(1)
|
||||
\fBquake\fP(6)
|
||||
515
man/light.1
515
man/light.1
|
|
@ -1,515 +0,0 @@
|
|||
.\" Process this file with
|
||||
.\" groff -man -Tascii light.1
|
||||
.\"
|
||||
.TH LIGHT 1 "TYR_VERSION" TYRUTILS
|
||||
|
||||
.SH NAME
|
||||
light \- Caclulate lightmap data for a Quake BSP file
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBlight\fP [OPTION]... BSPFILE
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBlight\fP reads a Quake .bsp file and calculates light and shadow
|
||||
information based on the entity definitions contained in the .bsp. The .bsp
|
||||
file is updated with the new light data upon completion, overwriting any
|
||||
existing lighting data.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.PP
|
||||
Note, any of the Worldspawn Keys listed in the next
|
||||
section can be supplied as command-line options, which will override any
|
||||
setting in worldspawn.
|
||||
.br
|
||||
.br
|
||||
|
||||
.SS "Performance options:"
|
||||
.IP "\fB-threads n\fP"
|
||||
Set number of threads explicitly. By default light will attempt to detect the
|
||||
number of CPUs/cores available.
|
||||
.IP "\fB-extra\fP"
|
||||
Calculate extra samples (2x2) and average the results for smoother shadows.
|
||||
.IP "\fB-extra4\fP"
|
||||
Calculate even more samples (4x4) and average the results for smoother
|
||||
shadows.
|
||||
.IP "\fB-gate n\fP"
|
||||
Set a minimum light level, below which can be considered zero brightness.
|
||||
This can dramatically speed up processing when there are large numbers of
|
||||
lights with inverse or inverse square falloff. In most cases, values less than
|
||||
1.0 will cause no discernible visual differences. Default 0.001.
|
||||
.IP "\fB-sunsamples [n]\fP"
|
||||
Set the number of samples to use for "_sunlight_penumbra" and "_sunlight2" (sunlight2 may use more or less because of how the suns are set up in a sphere). Default 100.
|
||||
.IP "\fB-surflight_subdivide [n]\fP"
|
||||
Configure spacing of all surface lights. Default 128 units. Minimum setting: 64 / max 2048.
|
||||
In the future I'd like to make this configurable per-surface-light.
|
||||
.br
|
||||
.SS "Output format options:"
|
||||
.IP "\fB-lit\fP"
|
||||
Force generation of a .lit file, even if your map does not have any coloured
|
||||
lights. By default, light will automatically generate the .lit file when
|
||||
needed.
|
||||
.IP "\fB-onlyents\fP"
|
||||
Updates the entities lump in the bsp. You should run this after running qbsp with -onlyents,
|
||||
if your map uses any switchable lights. All this does is assign style numbers to each
|
||||
switchable light.
|
||||
.IP "\fB-litonly\fP"
|
||||
Generate a .lit file that is compatible with the .bsp without modifying the .bsp.
|
||||
This is meant for tweaking lighting or adding colored lights when you can't modify
|
||||
an existing .bsp (e.g. for multiplayer maps.)
|
||||
Typically you would make a temporary copy of the .bsp, update the lights in the
|
||||
entity lump (e.g. with "qbsp -onlyents"), then re-light it with "light -litonly".
|
||||
Engines may enforce a restriction that you can't make areas brighter than they originally were (cheat protection).
|
||||
Also, styled lights (flickering/switchable) can't be added in new areas or have their styles changed.
|
||||
.IP "\fB-nolighting\fP"
|
||||
Do all of the stuff required for lighting to work without actually performing any lighting calculations.
|
||||
This is mainly for engines that don't use the light data, but still need switchable lights, etc.
|
||||
|
||||
.br
|
||||
.SS "Postprocessing options:"
|
||||
.IP "\fB-soft [n]\fP"
|
||||
Perform post-processing on the lightmap which averages adjacent samples to
|
||||
smooth shadow edges. If n is specified, the algorithm will take 'n' samples
|
||||
on each side of the sample point and replace the original value with the
|
||||
average. e.g. a value of 1 results in averaging a 3x3 square centred on the
|
||||
original sample. 2 implies a 5x5 square and so on. If -soft is specified, but
|
||||
n is omitted, a value will be the level of oversampling requested. If no
|
||||
oversampling, then the implied value is 1. -extra implies a value of 2 and
|
||||
-extra4 implies 3. Default 0 (off).
|
||||
.br
|
||||
.SS "Debug modes:"
|
||||
.IP "\fB-dirtdebug\fP"
|
||||
Implies "-dirt", and renders just the dirtmap against a fullbright background,
|
||||
ignoring all lights in the map. Useful for previewing and turning the dirt settings.
|
||||
.IP "\fB-phongdebug\fP"
|
||||
Write normals to lit file for debugging phong shading.
|
||||
.IP "\fB-bouncedebug\fP"
|
||||
Write bounced lighting only to the lightmap for debugging / previewing -bounce.
|
||||
.IP "\fB-surflight_dump\fP"
|
||||
Saves the lights generated by surfacelights to a "mapname-surflights.map" file.
|
||||
.IP "\fB-novisapprox\fP"
|
||||
Disable approximate visibility culling of lights, which has a small chance of introducing artifacts where lights cut off too soon.
|
||||
.br
|
||||
.SS "Experimental options:"
|
||||
.IP "\fB-addmin\fP"
|
||||
Changes the behaviour of \fIminlight\fP. Instead of increasing low
|
||||
light levels to the global minimum, add the global minimum light level
|
||||
to all style 0 lightmaps. This may help reducing the sometimes
|
||||
uniform minlight effect.
|
||||
.IP "\fB-lit2\fP"
|
||||
Force generation of a .lit2 file, even if your map does not have any coloured
|
||||
lights.
|
||||
.IP "\fB-lux\fP"
|
||||
Generate a .lux file storing average incoming light directions for surfaces. Usable by FTEQW with "r_deluxemapping 1"
|
||||
.IP "\fB-lmscale n\fP"
|
||||
Equivalent to "_lightmap_scale" worldspawn key.
|
||||
.IP "\fB-bspxlit\fP"
|
||||
Writes rgb data into the bsp itself.
|
||||
.IP "\fB-bspx\fP"
|
||||
Writes both rgb and directions data into the bsp itself.
|
||||
.IP "\fB-novanilla\fP
|
||||
Fallback scaled lighting will be omitted. Standard grey lighting will be omitted if there are coloured lights. Implies "-bspxlit". "-lit" will no longer be implied by the presence of coloured lights.
|
||||
.IP "\fB-wrnormals\fP
|
||||
Writes normal data into the bsp itself.
|
||||
|
||||
.SH "MODEL ENTITY KEYS"
|
||||
|
||||
.SS "Worldspawn Keys"
|
||||
|
||||
.PP
|
||||
The following keys can be added to the \fIworldspawn\fP entity:
|
||||
|
||||
.IP "\fB""light"" ""n""\fP | \fB""_minlight"" ""n""\fP"
|
||||
Set a global minimum light level of "n" across the whole map. This is an easy
|
||||
way to eliminate completely dark areas of the level, however you may lose some
|
||||
contrast as a result, so use with care. Default 0.
|
||||
|
||||
.IP "\fB""_minlight_color"" ""r g b""\fP | \fB""_mincolor"" ""r g b""\fP"
|
||||
Specify red(r), green(g) and blue(b) components for the colour of the
|
||||
minlight. RGB component values are between 0 and 255 (between 0 and 1 is also
|
||||
accepted). Default is white light ("255 255 255").
|
||||
|
||||
.IP "\fB""_dist"" ""n""\fP"
|
||||
Scales the fade distance of all lights by a factor of n. If n > 1 lights fade
|
||||
more quickly with distance and if n < 1, lights fade more slowly with distance
|
||||
and light reaches further.
|
||||
|
||||
.IP "\fB""_range"" ""n""\fP"
|
||||
Scales the brightness range of all lights without affecting their fade
|
||||
discance. Values of n > 0.5 makes lights brighter and n < 0.5 makes lights
|
||||
less bright. The same effect can be achieved on individual lights by
|
||||
adjusting both the "light" and "wait" attributes.
|
||||
|
||||
.IP "\fB""_sunlight"" ""n""\fP"
|
||||
Set the brightness of the sunlight coming from an unseen sun in the sky. Sky
|
||||
brushes (or more accurately bsp leafs with sky contents) will emit sunlight at
|
||||
an angle specified by the "_sun_mangle" key. Default 0.
|
||||
|
||||
.IP "\fB""_anglescale"" ""n""\fP | \fB""_anglesense"" ""n""\fP"
|
||||
Set the scaling of sunlight brightness due to the angle of incidence with a
|
||||
surface (more detailed explanation in the "_anglescale" light entity key
|
||||
below).
|
||||
|
||||
.IP "\fB""_sunlight_mangle"" ""yaw pitch roll""\fP | \fB""_sun_mangle"" ""yaw pitch roll""\fP"
|
||||
Specifies the direction of sunlight using yaw, pitch and roll in
|
||||
degrees. Yaw specifies the angle around the Z-axis from 0 to 359 degrees and
|
||||
pitch specifies the angle from 90 (shining straight up) to -90 (shining straight down from above). Roll
|
||||
has no effect, so use any value (e.g. 0). Default is straight down ("0 -90
|
||||
0").
|
||||
|
||||
.IP "\fB""_sunlight_penumbra"" ""n""\fP"
|
||||
Specifies the penumbra width, in degrees, of sunlight.
|
||||
Useful values are 3-4 for a gentle soft edge, or 10-20+ for more diffuse
|
||||
sunlight. Default is 0.
|
||||
|
||||
.IP "\fB""_sunlight_color"" ""r g b""\fP"
|
||||
Specify red(r), green(g) and blue(b) components for the colour of the
|
||||
sunlight. RGB component values are between 0 and 255 (between 0 and 1 is also
|
||||
accepted). Default is white light
|
||||
("255 255 255").
|
||||
|
||||
.IP "\fB""_sunlight2"" ""n""\fP"
|
||||
Set the brightness of a dome of lights arranged around the upper hemisphere.
|
||||
(i.e. ambient light, coming from above the horizon). Default 0.
|
||||
|
||||
.IP "\fB""_sunlight_color2"" ""r g b""\fP | \fB""_sunlight2_color"" ""r g b""\fP"
|
||||
Specifies the colour of _sunlight2, same format as "_sunlight_color". Default is
|
||||
white light ("255 255 255").
|
||||
|
||||
.IP "\fB""_sunlight3"" ""n""\fP"
|
||||
Same as "_sunlight2", but for the bottom hemisphere (i.e. ambient light, coming
|
||||
from below the horizon). Combine "_sunlight2" and "_sunlight3" to have light coming equally
|
||||
from all directions, e.g. for levels floating in the clouds. Default 0.
|
||||
|
||||
.IP "\fB""_sunlight_color3"" ""r g b""\fP | \fB""_sunlight3_color"" ""r g b""\fP"
|
||||
Specifies the colour of "_sunlight3". Default is white light ("255 255 255").
|
||||
|
||||
.IP "\fB""_dirt"" ""n""\fP"
|
||||
1 enables dirtmapping (ambient occlusion) on all lights, borrowed from q3map2. This adds shadows
|
||||
to corners and crevices. You can override the global setting for specific lights with the
|
||||
"_dirt" light entity key or "_sunlight_dirt", "_sunlight2_dirt", and "_minlight_dirt" worldspawn keys.
|
||||
Default is no dirtmapping (-1).
|
||||
|
||||
.IP "\fB""_sunlight_dirt"" ""n""\fP"
|
||||
1 enables dirtmapping (ambient occlusion) on sunlight, -1 to disable (making it illuminate the dirtmapping shadows). Default is to use the value of "_dirt".
|
||||
|
||||
.IP "\fB""_sunlight2_dirt"" ""n""\fP"
|
||||
1 enables dirtmapping (ambient occlusion) on sunlight2/3, -1 to disable. Default is to use the value of "_dirt".
|
||||
|
||||
.IP "\fB""_minlight_dirt"" ""n""\fP"
|
||||
1 enables dirtmapping (ambient occlusion) on minlight, -1 to disable. Default is to use the value of "_dirt".
|
||||
|
||||
.IP "\fB""_dirtmode"" ""n""\fP"
|
||||
Choose between ordered (0, default) and randomized (1) dirtmapping.
|
||||
|
||||
.IP "\fB""_dirtdepth"" ""n""\fP"
|
||||
Maximum depth of occlusion checking for dirtmapping, default 128.
|
||||
|
||||
.IP "\fB""_dirtscale"" ""n""\fP"
|
||||
Scale factor used in dirt calculations, default 1. Lower values (e.g. 0.5) make
|
||||
the dirt fainter, 2.0 would create much darker shadows.
|
||||
|
||||
.IP "\fB""_dirtgain"" ""n""\fP"
|
||||
Exponent used in dirt calculation, default 1. Lower values (e.g. 0.5) make the
|
||||
shadows darker and stretch further away from corners.
|
||||
|
||||
.IP "\fB""_dirtangle"" ""n""\fP"
|
||||
Cone angle in degrees for occlusion testing, default 88. Allowed range 1-90.
|
||||
Lower values can avoid unwanted dirt on arches, pipe interiors, etc.
|
||||
|
||||
.IP "\fB""_gamma"" ""n""\fP"
|
||||
Adjust brightness of final lightmap. Default 1, >1 is brighter, <1 is darker.
|
||||
|
||||
.IP "\fB""_lightmap_scale"" ""n""\fP"
|
||||
Forces all surfaces+submodels to use this specific lightmap scale. Removes "LMSHIFT" field.
|
||||
|
||||
.IP "\fB""_bounce"" ""n""\fP"
|
||||
1 enables bounce lighting, disabled by default.
|
||||
|
||||
.IP "\fB""_bouncescale"" ""n""\fP"
|
||||
Scales brightness of bounce lighting, default 1.
|
||||
|
||||
.IP "\fB""_bouncecolorscale"" ""n""\fP"
|
||||
Weight for bounce lighting to use texture colors from the map: 0=ignore map textures (default), 1=multiply bounce light color by texture color.
|
||||
|
||||
.IP "\fB""_bouncestyled"" ""n""\fP"
|
||||
1 makes styled lights bounce (e.g. flickering or switchable lights), default is 0, they do not bounce.
|
||||
|
||||
.IP "\fB""_spotlightautofalloff"" ""n""\fP"
|
||||
When set to 1, spotlight falloff is calculated from the distance to the targeted info_null. Ignored when "_falloff" is not 0. Default 0.
|
||||
|
||||
|
||||
.SS "Model Entity Keys"
|
||||
|
||||
.PP
|
||||
The following keys can be used on any entity with a brush model.
|
||||
"_minlight", "_mincolor", "_dirt", "_phong", "_phong_angle", "_phong_angle_concave", "_shadow", "_bounce" are supported on func_detail/func_group as well, if
|
||||
qbsp from these tools is used.
|
||||
|
||||
.IP "\fB""_minlight"" ""n""\fP"
|
||||
Set the minimum light level for any surface of the brush model. Default 0.
|
||||
|
||||
.IP "\fB""_minlight_exclude"" ""texname""\fP"
|
||||
Faces with the given texture are excluded from receiving minlight on this brush model.
|
||||
|
||||
.IP "\fB""_minlight_color"" ""r g b""\fP | \fB""_mincolor"" ""r g b""\fP"
|
||||
Specify red(r), green(g) and blue(b) components for the colour of the
|
||||
minlight. RGB component values are between 0 and 255 (between 0 and 1 is also
|
||||
accepted). Default is white light
|
||||
("255 255 255").
|
||||
|
||||
.IP "\fB""_shadow"" ""n""\fP"
|
||||
If n is 1, this model will cast shadows on other models and itself
|
||||
(i.e. "_shadow" implies "_shadowself"). Note that this doesn't magically give
|
||||
Quake dynamic lighting powers, so the shadows will not move if the model
|
||||
moves. Set to -1 on func_detail/func_group to prevent them from casting shadows. Default 0.
|
||||
|
||||
.IP "\fB""_shadowself"" ""n""\fP | \fB""_selfshadow"" ""n""\fP"
|
||||
If n is 1, this model will cast shadows on itself if one part of the model
|
||||
blocks the light from another model surface. This can be a better compromise
|
||||
for moving models than full shadowing. Default 0.
|
||||
|
||||
.IP "\fB""_shadowworldonly"" ""n""\fP"
|
||||
If n is 1, this model will cast shadows on the world only (not other bmodels).
|
||||
|
||||
.IP "\fB""_switchableshadow"" ""n""\fP"
|
||||
If n is 1, this model casts a shadow that can be switched on/off using QuakeC.
|
||||
To make this work, a lightstyle is automatically assigned and stored in a key called "switchshadstyle",
|
||||
which the QuakeC will need to read and call the "lightstyle()" builtin with "a" or "m" to switch the shadow on or off.
|
||||
Entities sharing the same targetname, and with "_switchableshadow" set to 1, will share the same lightstyle.
|
||||
|
||||
These models are only able to block style 0 light (i.e., non-flickering or switchable lights).
|
||||
Flickering or switchable lights will shine through the switchable shadow casters, regardless of whether the
|
||||
shadow is off or on.
|
||||
|
||||
.IP "\fB""_dirt"" ""n""\fP"
|
||||
For brush models, -1 prevents dirtmapping on the brush model. Useful if the
|
||||
bmodel touches or sticks into the world, and you want to prevent those areas from
|
||||
turning black. Default 0.
|
||||
|
||||
.IP "\fB""_phong"" ""n""\fP"
|
||||
1 enables phong shading on this model with a default _phong_angle of 89 (softens columns etc).
|
||||
|
||||
.IP "\fB""_phong_angle"" ""n""\fP"
|
||||
Enables phong shading on faces of this model with a custom angle. Adjacent faces with normals this many degrees apart (or less) will be smoothed.
|
||||
Consider setting "_anglescale" to "1" on lights or worldspawn to make the effect of phong shading more visible.
|
||||
Use the "-phongdebug" command-line flag to save the interpolated normals to the lightmap for previewing (use "r_lightmap 1" or "gl_lightmaps 1" in your engine to preview.)
|
||||
|
||||
.IP "\fB""_phong_angle_concave"" ""n""\fP"
|
||||
Optional key for setting a different angle threshold for concave joints.
|
||||
A pair of faces will either use "_phong_angle" or "_phong_angle_concave" as the smoothing threshold, depending on whether the joint between the faces is concave or not.
|
||||
"_phong_angle(_concave)" is the maximum angle (in degrees) between the face normals that will still cause the pair of faces to be smoothed.
|
||||
The minimum setting for "_phong_angle_concave" is 1, this should make all concave joints non-smoothed (unless they're less than 1 degree apart, almost a flat plane.)
|
||||
If it's 0 or unset, the same value as "_phong_angle" is used.
|
||||
|
||||
.IP "\fB""_lightignore"" ""n""\fP"
|
||||
1 makes a model receive minlight only, ignoring all lights / sunlight. Could be useful on rotators / trains.
|
||||
|
||||
.IP "\fB""_bounce"" ""n""\fP"
|
||||
Set to -1 to prevent this model from bouncing light (i.e. prevents its brushes from emitting bounced light they receive from elsewhere.) Only has an effect if "_bounce" is enabled in worldspawn.
|
||||
|
||||
|
||||
|
||||
.SH "LIGHT ENTITY KEYS"
|
||||
|
||||
.PP
|
||||
Light entity keys can be used in any entity with a classname starting
|
||||
with the first five letters "light". E.g. "light", "light_globe",
|
||||
"light_flame_small_yellow", etc.
|
||||
|
||||
.IP "\fB""light"" ""n""\fP"
|
||||
Set the light intensity. Negative values are also allowed and will cause the
|
||||
entity to subtract light cast by other entities. Default 300.
|
||||
|
||||
.IP "\fB""wait"" ""n""\fP"
|
||||
Scale the fade distance of the light by "n". Values of n > 1 make the light
|
||||
fade more quickly with distance, and values < 1 make the light fade more
|
||||
slowly (and thus reach further). Default 1.
|
||||
|
||||
.IP "\fB""delay"" ""n""\fP"
|
||||
Select an attenuation formaula for the light:
|
||||
.nf
|
||||
0 => Linear attenuation (default)
|
||||
1 => 1/x attenuation
|
||||
2 => 1/(x^2) attenuation
|
||||
3 => No attenuation (same brightness at any distance)
|
||||
4 => "local minlight" - No attenuation and like minlight,
|
||||
it won't raise the lighting above it's light value.
|
||||
Unlike minlight, it will only affect surfaces within
|
||||
line of sight of the entity.
|
||||
5 => 1/(x^2) attenuation, but slightly more attenuated and
|
||||
without the extra bright effect that "delay 2" has
|
||||
near the source.
|
||||
.fi
|
||||
|
||||
.IP "\fB""_falloff"" ""n""\fP"
|
||||
Sets the distance at which the light drops to 0, in map units.
|
||||
|
||||
In this mode, "wait" is ignored and "light" only controls the brightness at the center
|
||||
of the light, and no longer affects the falloff distance.
|
||||
|
||||
Only supported on linear attenuation (delay 0) lights currently.
|
||||
|
||||
.IP "\fB""_color"" ""r g b""\fP"
|
||||
Specify red(r), green(g) and blue(b) components for the colour of the
|
||||
light. RGB component values are between 0 and 255 (between 0 and 1 is also
|
||||
accepted). Default is white light
|
||||
("255 255 255").
|
||||
|
||||
.IP "\fB""target"" ""name""\fP"
|
||||
Turns the light into a spotlight, with the direction of light being towards
|
||||
another entity with it's "targetname" key set to "name".
|
||||
|
||||
.IP "\fB""mangle"" ""yaw pitch roll""\fP"
|
||||
Turns the light into a spotlight and specifies the direction of light using
|
||||
yaw, pitch and roll in degrees. Yaw specifies the angle around the
|
||||
Z-axis from 0 to 359 degrees and pitch specifies the angle from 90 (straight
|
||||
up) to -90 (straight down). Roll has no effect, so use any value (e.g. 0).
|
||||
Often easier than the "target" method.
|
||||
|
||||
.IP "\fB""angle"" ""n""\fP"
|
||||
Specifies the angle in degrees for a spotlight cone. Default 40.
|
||||
|
||||
.IP "\fB""_softangle"" ""n""\fP"
|
||||
Specifies the angle in degrees for an inner spotlight cone (must be less than
|
||||
the "angle" cone. Creates a softer transition between the full brightness of
|
||||
the inner cone to the edge of the outer cone. Default 0 (disabled).
|
||||
|
||||
.IP "\fB""targetname"" ""name""\fP"
|
||||
Turns the light into a switchable light, toggled by another entity targeting
|
||||
it's name.
|
||||
|
||||
.IP "\fB""style"" ""n""\fP"
|
||||
Set the animated light style. Default 0.
|
||||
|
||||
.IP "\fB""_anglescale"" ""n""\fP | \fB""_anglesense"" ""n""\fP"
|
||||
Sets a scaling factor for how much influence the angle of incidence of light
|
||||
on a surface has on the brightness of the surface. \fIn\fP must be between 0.0
|
||||
and 1.0. Smaller values mean less attenuation, with zero meaning that angle of
|
||||
incidence has no effect at all on the brightness. Default 0.5.
|
||||
|
||||
.IP "\fB""_dirtscale"" ""n""\fP | \fB""_dirtgain"" ""n""\fP"
|
||||
Override the global "_dirtscale" or "_dirtgain" settings to change how this
|
||||
light is affected by dirtmapping (ambient occlusion). See descriptions of these
|
||||
keys in the worldspawn section.
|
||||
|
||||
.IP "\fB""_dirt"" ""n""\fP"
|
||||
Overrides the worldspawn setting of "_dirt" for this particular light. -1 to disable dirtmapping (ambient occlusion) for this light, making it illuminate the dirtmapping shadows. 1 to enable ambient occlusion for this light. Default is to defer to the worldspawn setting.
|
||||
|
||||
.IP "\fB""_deviance"" ""n""\fP"
|
||||
Split up the light into a sphere of randomly positioned lights within
|
||||
radius "n" (in world units). Useful to give shadows a wider
|
||||
penumbra. "_samples" specifies the number of lights in the sphere.
|
||||
The "light" value is automatically scaled down for most lighting formulas
|
||||
(except linear and non-additive minlight) to
|
||||
attempt to keep the brightness equal.
|
||||
Default is 0, do not split up lights.
|
||||
|
||||
.IP "\fB""_samples"" ""n""\fP"
|
||||
Number of lights to use for "_deviance". Default 16 (only used if
|
||||
"_deviance" is set).
|
||||
|
||||
.IP "\fB""_surface"" ""texturename""\fP"
|
||||
Makes surfaces with the given texture name emit light, by using this light as a
|
||||
template which is copied across those surfaces. Lights are spaced
|
||||
about 128 units (though possibly closer due to bsp splitting) apart and positioned 2 units above
|
||||
the surfaces.
|
||||
|
||||
.IP "\fB""_surface_offset"" ""n""\fP"
|
||||
Controls the offset lights are placed above surfaces for "_surface". Default 2.
|
||||
|
||||
.IP "\fB""_surface_spotlight"" ""n""\fP"
|
||||
For a surface light template (i.e. a light with "_surface" set), setting this to
|
||||
"1" makes each instance into a spotlight, with the direction of light
|
||||
pointing along the surface normal. In other words, it automatically sets
|
||||
"mangle" on each of the generated lights.
|
||||
|
||||
.IP "\fB""_project_texture"" ""texture""\fP"
|
||||
Specifies that a light should project this texture. The texture must be used in the map somewhere.
|
||||
|
||||
.IP "\fB""_project_mangle"" ""yaw pitch roll""\fP"
|
||||
Specifies the yaw/pitch/roll angles for a texture projection (overriding mangle).
|
||||
|
||||
.IP "\fB""_project_fov"" ""n""\fP"
|
||||
Specifies the fov angle for a texture projection. Default 90.
|
||||
|
||||
.IP "\fB""_bouncescale"" ""n""\fP"
|
||||
Scales the amount of light that is contributed by bounces. Default is 1.0, 0.0 disables bounce lighting for this light.
|
||||
|
||||
.IP "\fB""_sun"" ""n""\fP"
|
||||
Set to 1 to make this entity a sun, as an alternative to using the sunlight worldspawn keys.
|
||||
If the light targets an info_null entity, the direction towards that entity sets sun direction.
|
||||
The light itself is disabled, so it can be placed anywhere in the map.
|
||||
|
||||
The following light properties correspond to these sunlight settings:
|
||||
.nf
|
||||
light => _sunlight
|
||||
mangle => _sunlight_mangle
|
||||
deviance => _sunlight_penumbra
|
||||
_color => _sunlight_color
|
||||
_dirt => _sunlight_dirt
|
||||
_anglescale => _anglescale
|
||||
style => flicker style for styled sunlight
|
||||
targetname => targetname for switchable sunlight
|
||||
_suntexture => this sunlight is only emitted from faces with this texture name
|
||||
.fi
|
||||
|
||||
.IP "\fB""_sunlight2"" ""n""\fP"
|
||||
Set to 1 to make this entity control the upper dome lighting emitted from sky faces, as an alternative to the worldspawn key "_sunlight2".
|
||||
The light entity itself is disabled, so it can be placed anywhere in the map.
|
||||
|
||||
The following light properties correspond to these sunlight settings:
|
||||
.nf
|
||||
light => _sunlight2
|
||||
_color => _sunlight2_color
|
||||
_dirt => _sunlight2_dirt
|
||||
_anglescale => _anglescale
|
||||
style => flicker style for styled dome light
|
||||
targetname => targetname for switchable sunlight
|
||||
_suntexture => this sunlight is only emitted from faces with this texture name
|
||||
.fi
|
||||
|
||||
.IP "\fB""_sunlight3"" ""n""\fP"
|
||||
Same as "_sunlight2", but for the lower hemisphere.
|
||||
|
||||
.IP "\fB""_nostaticlight"" ""n""\fP"
|
||||
Set to 1 to make the light compiler ignore this entity (prevents it from casting any light). e.g. could be useful with rtlights.
|
||||
|
||||
|
||||
.SH "OTHER INFORMATION"
|
||||
The "\\b" escape sequence toggles red text on/off, you can use this in any strings in the map file. e.g. "message" "Here is \\bsome red text\\b..."
|
||||
|
||||
.SH AUTHOR
|
||||
Eric Wasylishen
|
||||
.br
|
||||
Kevin Shanahan (aka Tyrann) - http://disenchant.net
|
||||
.br
|
||||
David Walton (aka spike)
|
||||
.br
|
||||
Based on source provided by id Software
|
||||
|
||||
.SH "REPORTING BUGS"
|
||||
Please post bug reports at https://github.com/ericwa/ericw-tools/issues.
|
||||
.br
|
||||
Improvements to the documentation are welcome and encouraged.
|
||||
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2017 Eric Wasylishen
|
||||
.br
|
||||
Copyright (C) 2013 Kevin Shanahan
|
||||
.br
|
||||
Copyright (C) 1997 id Software
|
||||
.br
|
||||
License GPLv2+: GNU GPL version 2 or later
|
||||
.br
|
||||
<http://gnu.org/licenses/gpl2.html>.
|
||||
.PP
|
||||
This is free software: you are free to change and redistribute it. There is
|
||||
NO WARRANTY, to the extent permitted by law.
|
||||
|
||||
.SH "SEE ALSO"
|
||||
\fBqbsp\fP(1)
|
||||
\fBvis\fP(1)
|
||||
\fBbspinfo\fP(1)
|
||||
\fBbsputil\fP(1)
|
||||
\fBquake\fP(6)
|
||||
354
man/qbsp.1
354
man/qbsp.1
|
|
@ -1,354 +0,0 @@
|
|||
.\" Process this file with
|
||||
.\" groff -man -Tascii qbsp.1
|
||||
.\"
|
||||
.TH QBSP 1 "TYR_VERSION" TYRUTILS
|
||||
|
||||
.SH NAME
|
||||
qbsp \- Compile a Quake BSP file from a MAP source file
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBqbsp\fP [OPTION]... SOURCFILE [DESTFILE]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBqbsp\fP is a tool used in the creation of maps for the \fB id Software\fP
|
||||
game \fBQuake\fP. qbsp takes a .map file as input and produces a .bsp file
|
||||
playable in the Quake engine. If the \fIDESTFILE\fP argument is not supplied,
|
||||
the output filename will be chosen by stripping the file extension (if any)
|
||||
from \fISOURCEFILE\fP and appending the .bsp extension.
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "\fB-nofill\fP"
|
||||
Doesn't perform outside filling
|
||||
.IP "\fB-noclip\fP"
|
||||
Doesn't build clip hulls
|
||||
.IP "\fB-noskip\fP"
|
||||
Doesn't remove faces using the 'skip' texture
|
||||
.IP "\fB-onlyents\fP"
|
||||
Only updates .map entities
|
||||
.IP "\fB-verbose\fP"
|
||||
Print out more .map information
|
||||
.IP "\fB-noverbose\fP"
|
||||
Print out almost no information at all
|
||||
.IP "\fB-splitspecial\fP"
|
||||
Doesn't combine sky and water faces into one large face.
|
||||
This allows for statically lit water.
|
||||
.IP "\fB-transwater\fP"
|
||||
Computes portal information for transparent water (default)
|
||||
.IP "\fB-notranswater\fP"
|
||||
Computes portal information for opaque water
|
||||
.IP "\fB-transsky\fP"
|
||||
Computes portal information for transparent sky
|
||||
.IP "\fB-nooldaxis\fP"
|
||||
Use alternate texture alignment algorithm. The default is to use the original
|
||||
QBSP texture alignment algorithm, which required the -oldaxis switch in
|
||||
tyrutils-ericw v0.15.1 and earlier.
|
||||
.IP "\fB-forcegoodtree\fP (experimental)"
|
||||
Force use of expensive processing for SolidBSP stage. Often results
|
||||
in a more optimal BSP file in terms of file size, at the expense of
|
||||
extra processing time.
|
||||
.IP "\fB-bspleak\fP"
|
||||
Creates a .por file, used in the BSP editor
|
||||
.IP "\fB-oldleak\fP"
|
||||
Create an old-style QBSP .PTS file (default is new)
|
||||
.IP "\fB-leaktest\fP"
|
||||
Makes it a compile error if a leak is detected.
|
||||
.IP "\fB-nopercent\fP"
|
||||
Prevents output of percent completion information
|
||||
.IP "\fB-hexen2\fP"
|
||||
Generate a hexen2 bsp. This can be used in addition to -bsp2 to avoid clipnode issues.
|
||||
.IP "\fB-bsp2\fP"
|
||||
Create the output BSP file in BSP2 format. Allows the creation of much larger
|
||||
and more complex maps than the original BSP 29 format).
|
||||
.IP "\fB-2psb\fP"
|
||||
Create the output BSP file in 2PSB format. This an earlier version of the
|
||||
BSP2 format, supported by the RMQ engine (and thus is also known as the
|
||||
BSP2rmq or RMQe bsp format).
|
||||
.IP "\fB-hlbsp\fP"
|
||||
Create the output BSP file in Half-Life's format.
|
||||
Note that the hull size differences prevent this from being generally usable for the vanilla quake gamecode.
|
||||
This cannot be used in combination with the -bsp2 argument.
|
||||
.IP "\fB-leakdist [n]\fP"
|
||||
Space between leakfile points (default 2)
|
||||
.IP "\fB-subdivide [n]\fP"
|
||||
Use different texture subdivision (default 240). Lower values will harm framerates. Higher values may not be supported. DP+FTEQW+QSS support up to 4080 (unless lightmap scaling is in use), but such values will cause other engines to crash-to-console.
|
||||
Use zero to specify no subdivision.
|
||||
.IP "\fB-wadpath <dir>\fP"
|
||||
Search this directory for wad files (default is cwd). Multiple -wadpath args may be used. This argument is ignored for wads specified using an absolute path.
|
||||
.IP "\fB-xwadpath <dir>\fP"
|
||||
Like -wadpath, except textures found using the specified path will NOT be embedded into the bsp (equivelent to -notex, but for only textures from specific wads). You should use this for wads like halflife's standard wad files, but q1bsps require an engine extension and players are not nearly as likely to have the same wad version.
|
||||
.IP "\fB-oldrottex\fP"
|
||||
Use old method of texturing rotate_ brushes where the mapper aligns
|
||||
textures for the object at (0 0 0).
|
||||
.IP "\fB-maxNodeSize [n]\fP"
|
||||
Switch to the cheap spatial subdivion bsp heuristic when splitting nodes
|
||||
of this size (in any dimension). This gives much faster qbsp processing
|
||||
times on large maps and should generate better bsp trees as well.
|
||||
From txqbsp-xt, thanks rebb. (default 1024, 0 to disable)
|
||||
.IP "\fB-wrbrushes\fP"
|
||||
(bspx) Includes a list of brushes for brush-based collision.
|
||||
This allows for arbitrary collision sizes in engines that support it, currently only FTEQW.
|
||||
.IP "\fB-wrbrushesonly\fP"
|
||||
"-wrbrushes" combined with "-noclip" argument. This is NOT backwards compatible.
|
||||
.IP "\fB-notex\fP"
|
||||
Write only placeholder textures, to depend upon replacements. This avoids inclusion of third-party copyrighted images inside your maps, but is not backwards compatible but will work in FTEQW and QSS.
|
||||
.IP "\fB-notjunc\fP"
|
||||
Don't attempt to fix T-junctions. This is only for engines or formats that prefer micro-cracks over degenerate triangles. If you don't know what that means, don't set this.
|
||||
.IP "\fB-omitdetail\fP"
|
||||
Detail brushes are omitted from the compile.
|
||||
.IP "\fB-convert <fmt>\fP"
|
||||
Convert a .MAP to a different .MAP format. fmt can be: quake, quake2, valve, bp (brush primitives).
|
||||
Conversions to "quake" or "quake2" format may not be able to match the texture alignment in the source map, other conversions are lossless.
|
||||
The converted map is saved to <source map name>-<fmt>.map.
|
||||
.IP "\fB-includeskip\fP"
|
||||
Emit skip/nodraw faces. Mainly for Q2RTX.
|
||||
|
||||
.SH "SPECIAL TEXTURE NAMES"
|
||||
.PP
|
||||
The contents inside a brush depend on the texture name(s) assigned to
|
||||
it.
|
||||
.PP
|
||||
By default brush contents are solid unless they have a special name.
|
||||
Names beginning with an asterisk are liquids. A prefix of
|
||||
\fI*slime\fP indicates slime, \fI*lava\fP is for lava and anything
|
||||
else beginning with \fI*\fP will have contents as water.
|
||||
.PP
|
||||
All faces of a brush must have textures which indicate the same
|
||||
contents. Mixed content types will cause qbsp to print an error and
|
||||
exit.
|
||||
|
||||
.SS "SKIP"
|
||||
.PP
|
||||
Any surfaces assigned a texture name of \fIskip\fP will be compiled
|
||||
into the bsp as invisible surfaces. Solid surfaces will still be
|
||||
solid (e.g. the play can't walk or shoot through them) but they will
|
||||
not be drawn. Water, slime and lava surfaces can be made invisible
|
||||
using the texture names \fI*waterskip\fP, \fI*slimeskip\fP and
|
||||
\fI*lavaskip\fP respectively.
|
||||
|
||||
.SS "HINT"
|
||||
.PP
|
||||
Hint surfaces cause a bsp split and portal to be generated the on the
|
||||
surface plane, after which they are removed from the final bsp - they
|
||||
are neither visible, nor structural. Strategic placement of hint
|
||||
surfaces can be used by a map author to optimise the PVS calculations
|
||||
so as to limit overdraw by the engine (see also: \fBvis\fP(1)).
|
||||
.PP
|
||||
Use a texture with the name \fIhintskip\fP on any surfaces of a hint
|
||||
brush which you don't want to generate bsp splits or portals. All
|
||||
surfaces of a hint brush must use either the \fIhint\fP or
|
||||
\fIhintskip\fP texture name.
|
||||
|
||||
.SS "ORIGIN"
|
||||
.PP
|
||||
An origin brush (all faces textured with "origin") can be added to a brush entity
|
||||
(but not detail or compiler-internal entities like func_group). Doing so causes all of
|
||||
the brushes in the brush entitiy to be translated so the center of the origin brush
|
||||
lines up with 0 0 0. The entity key "origin" is then automatically set on the
|
||||
brush entity to the original cooridnates of the center of the
|
||||
"origin" brush before it was translated to 0 0 0.
|
||||
.PP
|
||||
In Hexen 2, origin brushes are the native way of marking the center point of the
|
||||
rotation axis for rotating entities.
|
||||
.PP
|
||||
In Quake, origin brushes can be used to make some map hacks easier to set up
|
||||
that would otherwise require placing brushes at the world origin and
|
||||
entering an "origin" value by hand.
|
||||
.PP
|
||||
Note that, unlike the Hipnotic rotation support in QBSP, using origin brushes
|
||||
does not cause the model bounds to be expanded. (With Hipnotic rotation this was
|
||||
to ensure that the model is not vis culled, regardless of its rotated angle.)
|
||||
Origin brushes are useful for more than just rotation, and doing this bounds
|
||||
expansion would break some use cases, so if you're going to rotate a model
|
||||
with an origin brush you might need to expand the bounds of it a bit using
|
||||
clip brushes so it doesn't get vis culled.
|
||||
|
||||
.SH "EXTERNAL MAP PREFAB SUPPORT"
|
||||
.PP
|
||||
This qbsp has a prefab system using a point entity named "misc_external_map".
|
||||
The idea is, each "misc_external_map" imports brushes from an external .map file,
|
||||
applies rotations specified by the "_external_map_angles" key, then translates them
|
||||
to the "origin" key of the "misc_external_map" entity. Finally, the classname of the
|
||||
"misc_external_map" is switched to the one provided by the mapper in the "_external_map_classname"
|
||||
key. (The "origin" key is also cleared to "0 0 0" before saving the .bsp).
|
||||
|
||||
.PP
|
||||
The external .map file should consist of worldspawn brushes only, although
|
||||
you can use func_group for editing convenience. Brush entities are merged
|
||||
with the worldspawn brushes during import. All worldspawn keys, and any point
|
||||
entities are ignored.
|
||||
Currently, this means that the "wad" key is not handled, so you need to add
|
||||
any texture wads required by the external .map file to your main map.
|
||||
|
||||
.PP
|
||||
Note that you can set other entity keys on the "misc_external_map" to configure the
|
||||
final entity type. e.g. if you set "_external_map_classname" to "func_door", you can
|
||||
also set a "targetname" key on the "misc_external_map", or any other keys for "func_door".
|
||||
|
||||
.IP "\fB_external_map\fP"
|
||||
Specifies the filename of the .map to import.
|
||||
.IP "\fB_external_map_classname\fP"
|
||||
What entity you want the external map to turn in to.
|
||||
You can use internal qbsp entity types such as "func_detail",
|
||||
or a regular bmodel classname like "func_wall" or "func_door".
|
||||
.IP "\fB_external_map_angles\fP"
|
||||
Rotation for the prefab, "pitch yaw roll" format.
|
||||
Assuming the exernal map is facing the +X axis, positive pitch is down.
|
||||
Yaw of 180, for example, would rotate it to face -X.
|
||||
.IP "\fB_external_map_angle\fP"
|
||||
Short version of "_external_map_angles" for when you want to specify just a yaw rotation.
|
||||
.IP "\fB_external_map_scale\fP"
|
||||
Scale factor for the prefab, defaults to 1. Either specify a single value or three scales, "x y z".
|
||||
|
||||
.SH "DETAIL BRUSH SUPPORT"
|
||||
.PP
|
||||
This version of qbsp supports detail brushes which are similar in concept to
|
||||
Quake 2's detail brushes. They don't seal the map (previous versions did).
|
||||
.PP
|
||||
To be compatible with existing Quake 1 mapping tools, detail brushes can be
|
||||
added by creating an entity with classname "func_detail". When qbsp reads the
|
||||
map file, it will add any brushes included in a func_detail entity into the
|
||||
worldspawn as details and remove the func_detail entity. Any number of
|
||||
func_detail entities can be used (useful for grouping) and all included
|
||||
brushes will be added to the worldspawn.
|
||||
.PP
|
||||
Here is an example entity definition suitable to add the the .QC files used by
|
||||
BSP Editor:
|
||||
.PP
|
||||
.nf
|
||||
/*QUAKED func_detail (0.5 0.5 0.9) ?
|
||||
Detail brushes add visual details to
|
||||
the world, but do not block visibility.
|
||||
func_detail entities are merged into
|
||||
the worldspawn entity by the qbsp compiler
|
||||
and do not appear as separate entities in
|
||||
the compiled bsp.
|
||||
*/
|
||||
.fi
|
||||
.PP
|
||||
For WorldCraft in .FGD format (untested):
|
||||
.PP
|
||||
.nf
|
||||
@SolidClass color(128 128 230) = func_detail: "Detail" []
|
||||
.fi
|
||||
.PP
|
||||
For Radiant in .ENT format:
|
||||
.PP
|
||||
.nf
|
||||
<group name="func_detail" color="0 .5 .8">
|
||||
Detail brushes add visual details to the world, but do not
|
||||
block visibility. func_detail entities are merged into the
|
||||
worldspawn entity by the qbsp compiler and do not appear as
|
||||
separate entities in the compiled bsp.
|
||||
</group>
|
||||
.fi
|
||||
.PP
|
||||
What should be written to the .map file is a simple entity with one or more
|
||||
brushes. E.g.:
|
||||
.PP
|
||||
.nf
|
||||
{
|
||||
"classname" "func_detail"
|
||||
{
|
||||
( -176 80 0 ) ( -208 80 0 ) ( -208 48 0 ) COP1_1 0 0 0 1.0 1.0
|
||||
( -192 -80 64 ) ( -208 -80 0 ) ( -192 -64 64 ) COP1_1 0 0 0 1.0 1.0
|
||||
( -176 -80 0 ) ( -192 -80 64 ) ( -176 -64 0 ) COP1_1 0 0 0 1.0 1.0
|
||||
( -16 48 0 ) ( -16 64 64 ) ( 0 48 0 ) COP1_1 0 0 0 1.0 1.0
|
||||
( -16 64 64 ) ( -16 80 0 ) ( 0 64 64 ) COP1_1 0 0 0 1.0 1.0
|
||||
}
|
||||
}
|
||||
.fi
|
||||
.PP
|
||||
When qbsp detects detail brushes, it outputs a modified portal file format
|
||||
with the header PRT2 (default is PRT1). This portal file contains extra
|
||||
information needed by vis to compute the potentially visible set (PVS) for the
|
||||
map/bsp. So you will also need a vis util capable of processing the PRT2 file
|
||||
format.
|
||||
|
||||
.SH "DETAIL VARIANTS"
|
||||
|
||||
.SS "func_detail_illusionary"
|
||||
.PP
|
||||
func_detail variant with no collision (players / monsters / gunfire) and doesn't split world faces. Doesn't cast shadows unless enabled with "_shadow" "1". Useful for hanging vines. Still creates BSP leafs, which is unavoidable without a new .bsp file format.
|
||||
|
||||
Intersecting func_detail_illusionary brushes don't clip each other; this is intended to make trees/shrubs/foliage easier with "_mirrorinside" "1".
|
||||
|
||||
.SS "func_detail_wall"
|
||||
.PP
|
||||
func_detail variant that doesn't split world faces. Useful for when you want a decoration touching a floor or wall to not split the floor/wall faces (you'll get some overdraw instead.) If it completely covers up a world face, that face will get clipped away, so it's not suitable for fence textures; see func_detail_fence instead.
|
||||
|
||||
Intersecting func_detail_wall brushes don't clip each other.
|
||||
|
||||
.SS "func_detail_fence"
|
||||
Similar to func_detail_wall except it's suitable for fence textures, never clips away world faces. Useful for fences, grates, etc., that are solid and block gunfire.
|
||||
|
||||
Intersecting func_detail_fence brushes don't clip each other.
|
||||
|
||||
.SH "MODEL ENTITY KEYS"
|
||||
|
||||
.IP "\fB""_lmscale"" ""n""\fP"
|
||||
Generates an LMSHIFT bspx lump for use by a light util. Note that both scaled and unscaled lighting will normally be used.
|
||||
|
||||
.IP "\fB""_mirrorinside"" ""n""\fP"
|
||||
Set to 1 to save mirrored inside faces for bmodels, so when the player view is inside the bmodel, they will still see the faces. (e.g. for func_water, or func_illusionary)
|
||||
|
||||
.SH "OTHER SPECIAL-PURPOSE ENTITIES"
|
||||
|
||||
.SS "func_illusionary_visblocker"
|
||||
.PP
|
||||
For creating vis-blocking illusionary brushes (similar to "func_detail_illusionary"
|
||||
or "func_illusionary". The player can walk through them.)
|
||||
This gives the same effect as water brushes when the "-notranswater" flag is used, except the interior of
|
||||
these brushes are saved as CONTENTS_EMPTY.
|
||||
One thing to be aware of is, if the player's view is very close to the faces of these brushes, they might
|
||||
be able to see into the void (depending on the engine). Fitzquake family engines have a workaround
|
||||
for this that is enabled if the brushes are textured with a water texture ("*" prefix).
|
||||
|
||||
.SH MAP COMPATIBILITY
|
||||
In addition to standard Quake 1 .map files, ericw-tools QBSP is compatible with:
|
||||
|
||||
.IP \(bu
|
||||
Floating point brush coordinates and texture alignments
|
||||
.IP \(bu
|
||||
Valve's 220 map format as produced by the \fIHammer\fP editor
|
||||
.IP \(bu
|
||||
Extended texture positioning as supported by the \fIQuArK\fP editor
|
||||
.IP \(bu
|
||||
Standard Quake 2 map format (leading paths in texture names are
|
||||
stripped and any extra surface properties are ignored)
|
||||
.IP \(bu
|
||||
Brush Primitives produce by Radiant editors (normally a Quake 3 format)
|
||||
|
||||
.SH AUTHOR
|
||||
Eric Wasylishen
|
||||
.br
|
||||
Kevin Shanahan (aka Tyrann) - http://disenchant.net
|
||||
.br
|
||||
Based on source provided by id Software and Greg Lewis
|
||||
|
||||
.SH "REPORTING BUGS"
|
||||
Please post bug reports at https://github.com/ericwa/ericw-tools/issues.
|
||||
.br
|
||||
Improvements to the documentation are welcome and encouraged.
|
||||
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2017 Eric Wasylishen
|
||||
.br
|
||||
Copyright (C) 2013 Kevin Shanahan
|
||||
.br
|
||||
Copyright (C) 1997 Greg Lewis
|
||||
.br
|
||||
Copyright (C) 1997 id Software
|
||||
.br
|
||||
License GPLv2+: GNU GPL version 2 or later
|
||||
.br
|
||||
<http://gnu.org/licenses/gpl2.html>.
|
||||
.PP
|
||||
This is free software: you are free to change and redistribute it. There is
|
||||
NO WARRANTY, to the extent permitted by law.
|
||||
|
||||
.SH "SEE ALSO"
|
||||
\fBlight\fP(1)
|
||||
\fBvis\fP(1)
|
||||
\fBbspinfo\fP(1)
|
||||
\fBbsputil\fP(1)
|
||||
\fBquake\fP(6)
|
||||
89
man/vis.1
89
man/vis.1
|
|
@ -1,89 +0,0 @@
|
|||
.\" Process this file with
|
||||
.\" groff -man -Tascii vis.1
|
||||
.\"
|
||||
.TH VIS 1 "TYR_VERSION" TYRUTILS
|
||||
|
||||
.SH NAME
|
||||
vis \- Compute visibility (PVS) for a Quake BSP file
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBvis\fP [OPTION]... BSPFILE
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBvis\fP is a tool used in the creation of maps for the game Quake. vis
|
||||
looks for a .prt file by stripping the file extension from BSPFILE (if any)
|
||||
and appending ".prt". vis then calculates the potentially visible set (PVS)
|
||||
information before updating the .bsp file, overwriting any existing PVS data.
|
||||
|
||||
This vis tool supports the PRT2 format for Quake maps with detail brushes. See
|
||||
the qbsp documentation for details.
|
||||
|
||||
Compiling a map (without the -fast parameter) can take a long time, even days
|
||||
or weeks in extreme cases. Vis will attempt to write a state file every five
|
||||
minutes so that progress will not be lost in case the computer needs to be
|
||||
rebooted or an unexpected power outage occurs.
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "\fB-threads n\fP"
|
||||
Set number of threads explicitly. By default vis will attempt to detect the
|
||||
number of CPUs/cores available.
|
||||
.IP "\fB-fast\fP"
|
||||
Skip detailed calculations and calculate a very loose set of PVS
|
||||
data. Sometimes useful for a quick test while developing a map.
|
||||
.IP "\fB-level n\fP"
|
||||
Select a test level from 0 to 4 for detailed visibility calculations. Lower
|
||||
levels are not necessarily faster in in all cases. It is not recommended that
|
||||
you change the default level unless you are experiencing problems. Default 4.
|
||||
.IP "\fB-v\fP"
|
||||
Verbose output.
|
||||
.IP "\fB-vv\fP"
|
||||
Very verbose output.
|
||||
.IP "\fB-noambientsky\fP"
|
||||
Disable ambient sound generation for textures with names beginning with 'SKY'.
|
||||
.IP "\fB-noambientwater\fP"
|
||||
Disable ambient sound generation for textures with names beginning
|
||||
with '*WATER' or '*04WATER'.
|
||||
.IP "\fB-noambientslime\fP"
|
||||
Disable ambient sound generation for textures with names beginning
|
||||
with '*SLIME'.
|
||||
.IP "\fB-noambientlava\fP"
|
||||
Disable ambient sound generation for textures with names beginning
|
||||
with '*LAVA'.
|
||||
.IP "\fB-noambient\fP"
|
||||
Disable all ambient sound generation.
|
||||
.IP "\fB-visdist n\fP"
|
||||
Allow culling of areas further than n units.
|
||||
|
||||
.SH AUTHOR
|
||||
Kevin Shanahan (aka Tyrann) - http://disenchant.net
|
||||
.br
|
||||
Eric Wasylishen
|
||||
.br
|
||||
Based on source provided by id Software
|
||||
.br
|
||||
|
||||
.SH REPORTING BUGS
|
||||
Please post bug reports at https://github.com/ericwa/tyrutils-ericw/issues.
|
||||
.br
|
||||
Improvements to the documentation are welcome and encouraged.
|
||||
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2017 Eric Wasylishen
|
||||
.br
|
||||
Copyright (C) 2013 Kevin Shanahan
|
||||
.br
|
||||
Copyright (C) 1997 id Software
|
||||
.br
|
||||
License GPLv2+: GNU GPL version 2 or later
|
||||
.br
|
||||
<http://gnu.org/licenses/gpl2.html>.
|
||||
.PP
|
||||
This is free software: you are free to change and redistribute it. There is
|
||||
NO WARRANTY, to the extent permitted by law.
|
||||
|
||||
.SH "SEE ALSO"
|
||||
\fBqbsp\fP(1)
|
||||
\fBlight\fP(1)
|
||||
\fBbspinfo\fP(1)
|
||||
\fBbsputil\fP(1)
|
||||
\fBquake\fP(6)
|
||||
Loading…
Reference in New Issue