2018-10-30 18:24:45 +00:00
|
|
|
|
|
|
|
# ZDRay baking utility for GZDoom
|
|
|
|
|
2021-11-11 04:51:00 +00:00
|
|
|
ZDRay is a node and lightmap generator for GZDoom. ZDRay is intended as a drop-in replacement for zdbsp, with the additional feature
|
|
|
|
that it can also bake lights. Once ZDRay has processed the level WAD it is ready to be used by GZDoom.
|
2018-10-30 18:24:45 +00:00
|
|
|
|
2021-11-11 04:51:00 +00:00
|
|
|
ZDRay is based on zdbsp for the node generation and originally used dlight for the lightmap generation. Special thanks to Randi Heit,
|
|
|
|
Samuel Villarreal, Christoph Oelckers and anyone else involved in creating or maintaining those tools.
|
|
|
|
|
2022-06-15 08:19:31 +00:00
|
|
|
The ray tracing code has been completely rewritten since. It can now do ray tracing on the GPU. GPU ray tracing requires a graphics
|
|
|
|
card that has support for the Vulkan ray tracing API (for example, nvidia 10 series and higher). ZDRay will automatically fall back
|
|
|
|
to CPU tracing if no compatible GPU is found.
|
2018-10-30 18:24:45 +00:00
|
|
|
|
2021-11-11 04:56:15 +00:00
|
|
|
## ZDRay Usage
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
Usage: zdray [options] sourcefile.wad
|
|
|
|
-m, --map=MAP Only affect the specified map
|
|
|
|
-o, --output=FILE Write output to FILE instead of tmp.wad
|
|
|
|
-c, --comments Write UDMF index comments
|
|
|
|
-q, --no-prune Keep unused sidedefs and sectors
|
|
|
|
-N, --no-nodes Do not rebuild nodes
|
|
|
|
-g, --gl Build GL-friendly nodes
|
|
|
|
-G, --gl-matching Build GL-friendly nodes that match normal nodes
|
|
|
|
-x, --gl-only Only build GL-friendly nodes
|
|
|
|
-5, --gl-v5 Create v5 GL-friendly nodes (overriden by -z and -X)
|
|
|
|
-X, --extended Create extended nodes (including GL nodes, if built)
|
|
|
|
-z, --compress Compress the nodes (including GL nodes, if built)
|
|
|
|
-Z, --compress-normal Compress normal nodes but not GL nodes
|
|
|
|
-b, --empty-blockmap Create an empty blockmap
|
|
|
|
-r, --empty-reject Create an empty reject table
|
|
|
|
-R, --zero-reject Create a reject table of all zeroes
|
|
|
|
-E, --no-reject Leave reject table untouched
|
|
|
|
-p, --partition=NNN Maximum segs to consider at each node (default 64)
|
|
|
|
-s, --split-cost=NNN Cost for splitting segs (default 8)
|
|
|
|
-d, --diagonal-cost=NNN Cost for avoiding diagonal splitters (default 16)
|
|
|
|
-P, --no-polyobjs Do not check for polyobject subsector splits
|
|
|
|
-j, --threads=NNN Number of threads used for raytracing (default 64)
|
2021-11-11 04:58:48 +00:00
|
|
|
-S, --size=NNN lightmap texture dimensions for width and height must
|
|
|
|
be in powers of two (1, 2, 4, 8, 16, etc)
|
2021-11-11 04:56:15 +00:00
|
|
|
-C, --cpu-raytrace Use the CPU for ray tracing
|
2022-06-29 06:56:19 +00:00
|
|
|
-D, --vkdebug Print messages from the Vulkan validation layer
|
|
|
|
--dump-mesh Export level mesh and lightmaps for debugging
|
2021-11-11 04:56:15 +00:00
|
|
|
-w, --warn Show warning messages
|
|
|
|
-t, --no-timing Suppress timing information
|
|
|
|
-V, --version Display version information
|
|
|
|
--help Display this usage information
|
|
|
|
</pre>
|
|
|
|
|
2018-10-30 18:24:45 +00:00
|
|
|
## ZDRay UDMF properties
|
2018-10-30 18:10:50 +00:00
|
|
|
|
2018-10-30 18:17:03 +00:00
|
|
|
<pre>
|
2022-02-15 16:30:37 +00:00
|
|
|
thing // ZDRayInfo (ZDRay properties for the map)
|
2021-11-11 04:51:00 +00:00
|
|
|
{
|
|
|
|
type = 9890;
|
2022-06-15 16:31:10 +00:00
|
|
|
lm_suncolor = <string> (default: "FFFFFF", hex color value of the sun)
|
2022-06-15 15:32:26 +00:00
|
|
|
lm_sampledistance = <int> (default: 8, map units each lightmap texel covers, must be in powers of two)
|
|
|
|
lm_gridsize = <float> (default: 32, grid density for the automatic light probes)
|
2021-11-11 04:51:00 +00:00
|
|
|
}
|
|
|
|
|
2022-02-15 20:23:51 +00:00
|
|
|
thing // Static point light (Light color and distance properties use the same args as dynamic lights)
|
2018-10-30 18:10:50 +00:00
|
|
|
{
|
2022-02-15 16:30:37 +00:00
|
|
|
type = 9876;
|
|
|
|
}
|
|
|
|
|
2022-02-15 20:23:51 +00:00
|
|
|
thing // Static spotlight (Light color, distance and angle properties use the same args as dynamic lights)
|
2022-02-15 16:30:37 +00:00
|
|
|
{
|
|
|
|
type = 9881;
|
2018-10-30 18:10:50 +00:00
|
|
|
}
|
|
|
|
|
2021-10-04 21:56:55 +00:00
|
|
|
thing // LightProbe (light sampling point for actors)
|
2018-10-30 18:10:50 +00:00
|
|
|
{
|
2021-10-04 21:56:55 +00:00
|
|
|
type = 9875;
|
|
|
|
}
|
2022-06-29 06:56:19 +00:00
|
|
|
|
|
|
|
linedef
|
|
|
|
{
|
|
|
|
// Customizable sampling distance per line surface. Will use the value from the ZDRayInfo actor by default.
|
2022-06-29 07:04:52 +00:00
|
|
|
lm_sampledist_line = <int> (default: 0)
|
2022-06-29 06:56:19 +00:00
|
|
|
lm_sampledist_top = <int> (default: 0)
|
|
|
|
lm_sampledist_mid = <int> (default: 0)
|
|
|
|
lm_sampledist_bot = <int> (default: 0)
|
|
|
|
}
|
|
|
|
|
|
|
|
sector
|
|
|
|
{
|
|
|
|
// Customizable sampling distance for floors and ceilings.
|
|
|
|
lm_sampledist_floor = <int> (default: 0)
|
|
|
|
lm_sampledist_ceiling = <int> (default: 0)
|
|
|
|
}
|
2018-10-30 18:17:03 +00:00
|
|
|
</pre>
|