tyrutils-ericw

A branch of Tyrann's quake 1 tools tyrutils, focused on adding lighting features

Download v0.15.9:

win64 win32 macOS linux64 tgz github changes
Windows builds require Visual C++ Redistributable Packages for Visual Studio 2013

Documentation:

Features

Bounce / radiosity

Bounce is enabled with the -bounce command-line option.

Screeshots of ad_azad by mfx: (NOTE: This map also has some indirect lighting from "_sunlight2_color" "0.5 0.56 1.00" and "_sunlight2" "190")

-bounce -bouncescale 2
-bounce
-bounce -bouncescale 0.5

Phong shading

Phong shading is enabled on a brush entity using "_phong" "1". It can be used on func_detail or func_group with a supported qbsp, which writes a mapname.texinfo file. A modified txqbsp-xt build is available here.

Screenshot of ad_crucial by mfx:


With -phongdebug to render normals to the lightmap.

With -phongdebug to render normals to the lightmap.

Ambient occlusion (aka dirtmapping)

The -dirtdebug flag causes the whole map to be lit at 50% gray, with ambient occlusion applied. It's good for previewing the AO settings.

-dirtdepth controls the distance tested for occlusion, in quake units. You can see at 512+ the palace rooms start to self-shadow.

-dirtgain controls the intensity of the dirt with an exponential scale while -dirtscale is a simple multiplier.

Once you are happy with the command-line settings, you can transfer them to worldspawn keys; see the light documentation for details.

Screeshots of One Thousand Cuts by SimonOC:

-extra4 -dirt -dirtdebug
-extra4 -dirt -dirtdebug -dirtdepth 256
-extra4 -dirt -dirtdebug -dirtdepth 512
-extra4 -dirt -dirtdebug -dirtdepth 1024
-extra4 -dirt -dirtdebug -dirtgain 0.75
-extra4 -dirt -dirtdebug -dirtgain 0.5
-extra4 -dirt -dirtdebug -dirtgain 0.5 -dirtmode 1
-extra4 -dirt -dirtdebug -dirtscale 1.5
-extra4 -dirt -dirtdebug -dirtscale 2.0

Sunlight

the new _sunlight2 worldspawn key creates a hemisphere of suns around the level. It's good for avoiding pure black shadows in outdoor areas (fake indirect lighting).

"_sunlight_color" "0.83 0.91 1.00"
"_sun_mangle" "60 -45 0"
"_sunlight" "300"
"_sunlight_penumbra" "4"
"_sunlight2" "300"
"_sunlight_color" "0.83 0.91 1.00"
"_sun_mangle" "60 -45 0"
"_sunlight" "300"
"_sunlight_penumbra" "4"
"_sunlight2" "300"

Sunlight penumbra

fake area lights (deviance)

_deviance lets you split a point light into several lights, so it casts softer shadows.

{
"delay" "2"
"light" "600"
"origin" "376 0 408"
"classname" "light_globe"
}
{
"_deviance" "24"
"delay" "2"
"light" "600"
"origin" "376 0 408"
"classname" "light_globe"
}
{
"_deviance" "48"
"delay" "2"
"light" "600"
"origin" "376 0 408"
"classname" "light_globe"
}
{
"_deviance" "96"
"delay" "2"
"light" "600"
"origin" "376 0 408"
"classname" "light_globe"
}

Surface lights

surface lights are good to quickly light a scene, especially if there are runic-style light fixtures. The shot below is lit entirely with one light entity.

{
"classname" "light"
"origin" "-640 -192 656" // ignored for surface lights
"delay" "2"
"light" "150"
"_color" "0.827111 0.908589 1.000000"
"_surface" "runes1a" // texture name
}

Other Features


Credits