ZDRay baking utility for GZDoom
Find a file
2021-11-11 05:51:00 +01:00
src Move sample distance, bounces and light probe grid size settings to the zdrayinfo actor as they affect map visuals 2021-11-11 05:51:00 +01:00
thirdparty Upgrade glsl compiler to 11.6.0 2021-10-31 18:19:26 +01:00
zlib - use the standardized typedefs for sized integers 2018-11-03 17:43:42 +01:00
.gitignore Initial import 2017-08-03 20:25:54 +02:00
CMakeLists.txt Rewrite the CPU ray tracer 2021-11-11 05:04:33 +01:00
COPYING Initial import 2017-08-03 20:25:54 +02:00
README.md Move sample distance, bounces and light probe grid size settings to the zdrayinfo actor as they affect map visuals 2021-11-11 05:51:00 +01:00

ZDRay baking utility for GZDoom

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.

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.

The ray tracing code has been completely rewritten since. It now supports bounces and can do the ray tracing on the GPU.

ZDRay UDMF properties

thing // ZDRayInfo (zdray properties for the map)
{
	type = 9890;
	suncolor = <int> (color)
	sundirx = <float> (X direction for the sun)
	sundiry = <float> (Y direction for the sun)
	sundirz = <float> (Z direction for the sun)
	sampledistance = <int> (default: 8, map units each lightmap texel covers, must be in powers of two)
	bounces = <int> (default: 1, how many times light bounces off walls)
	gridsize = <float> (default: 32, grid density for the automatic light probes)
}

thing // StaticLight (point or spot light to be baked into the lightmap)
{
	lightcolor = <int> (color)
	lightintensity = <float> (default: 1)
	lightdistance = <float> (default: 0, no light)
	lightinnerangle = <float> (default: 180)
	lightouterangle = <float> (default: 180)
}

thing // LightProbe (light sampling point for actors)
{
	type = 9875;
}

linedef // Line emissive surface
{
	lightcolor = <int> (color, default: white)
	lightintensity = <float> (default: 1)
	lightdistance = <float> (default: 0, no light)
}

sector // Sector plane emissive surface
{
	lightcolorfloor = <int> (color, default: white)
	lightintensityfloor = <float> (default: 1)
	lightdistancefloor = <float> (default: 0, no light)

	lightcolorceiling = <int> (color, default: white)
	lightintensityceiling = <float> (default: 1)
	lightdistanceceiling = <float> (default: 0, no light)
}