Hosting and domain costs until October 2024 have been generously sponsored by dumptruck_ds. Thank you!

Difference between revisions of "Textures"

From Quake Wiki

(Fence Textures)
(Liquids)
Line 18: Line 18:
  
 
Modern compilers also support skip versions of each liquid, so you can have placeholder textures named "*waterskip", "*lavaskip" and "*slimeskip", that can still be used to define liquid volumes (even in conjunction with standard liquid textures), but will be invisible in the compiled map. See [[#Skip|Skip]] for more information.
 
Modern compilers also support skip versions of each liquid, so you can have placeholder textures named "*waterskip", "*lavaskip" and "*slimeskip", that can still be used to define liquid volumes (even in conjunction with standard liquid textures), but will be invisible in the compiled map. See [[#Skip|Skip]] for more information.
 +
 +
*(when using replacement textures the "*" prefix on the names of liquids inside a wad becomes an "#" in your texture replacements a directory.)
  
 
==Skies==
 
==Skies==

Revision as of 08:26, 3 May 2022

Some of Quake's Textures

Textures in Quake are 256 color images used in Quake maps. Each texture has a name of no more than 15 characters. Their dimensions are required to be a power of 2 in most OpenGL engines, commonly 64x64 or 128x128. Textures are stored directly within .bsp files when used by Quake, or extracted, collected, and used in .wad files by level designers.

To edit .wad files, extract textures from .bsp or convert images use TexMex

Special Textures

There are several special textures in Quake, which have properties defined either by the QBSP compiler or by the game engine.

Clip

texture clip.png

Clip is a special texture, named "clip", which is invisible, yet blocks player and monster movement. Brushes must be fully textured with clip, and clip brushes do not seal the world from leaks. Clip does not block weapon fire. Clip is commonly used to prevent the player from getting stuck on architectural details.

Liquids

texture liquid.png

Liquids are textures whose name is preceeded by the character "*". By default, this means they are water in Quake and you may swim in them. All faces of a brush must be of a single type of liquid texture, and they may not touch Sky textures. Their surface will also animate, and not block Vis on any modern compiler by default - meaning they can be made transparent by setting a water alpha value, either globally via console variables, or on a per-map basis via worldspawn fields.

A liquid with a name which starts with "*slime" will be damaging slime, and a liquid with a name starting with "*lava" will be even deadlier lava. When compiled by vis, liquids will play an automatic ambient sound. Beware that most versions of vis won't create sound for water liquids which do not begin with the name "*water" or "*04water". Modern vis programs allow you to turn off the creation of automatic ambient sounds.

Modern compilers also support skip versions of each liquid, so you can have placeholder textures named "*waterskip", "*lavaskip" and "*slimeskip", that can still be used to define liquid volumes (even in conjunction with standard liquid textures), but will be invisible in the compiled map. See Skip for more information.

  • (when using replacement textures the "*" prefix on the names of liquids inside a wad becomes an "#" in your texture replacements a directory.)

Skies

texture sky.png

Skies are textures whose name which start with the word "sky", and must be of dimensions 256x128. The texture is treated like two 128x128 textures, the right section used as a backdrop, and the left section used as an overlay with its black pixels transparent. Skies are displayed animated and full-bright, block player and monster movement, and 'swallow' weapon fire. Sky brushes do seal the world from leaks.

Animated textures

texture animate.png

Simple animated textures with up to 10 frames can be used in Quake. Their name must begin with the character "+" and a number between 0-9. Quake will display a sequence beginning at "+0", "+1", etc, up to the highest number, and then loop back to "+0".

Animated textures may also switch to an alternate sequence if applied to some brush entities, such as func_wall, and func_button (doesn't work on func_door). When one of these entities is textured with an animated texture and is triggered, it will switch to an alternate sequence if it exists. These must be named the same as the original animated textures, except use "+a", "+b", up to "+j". You are not limited by the number of frames in the original animation, but you must begin at "+a".

An example of this is the button texture used in the base maps of Quake. "+0basebtn" and "+1basebtn" blink a red texture, and when the func_button is used, it swaps to "+abasebtn".

Skip

texture skip.png

Skip is a nonstandard special texture, used by modern QBSP compilers, but does not have any function in the stock Quake compilers as released by id Software. Skip is a texture much like clip in that it is invisible, but skip's use is to remove an entire face from ever rendering, and a brush does not have to be fully textured in skip. The removed face remains solid and will block player and monster movement, as well as block weapon fire. In general, this is of little use on solid geometry, as Quake performs backside culling, but can be used on brush entities or "hacks" like windows to hide unwanted faces. A "*waterskip" texture exists as well, for use with liquid brushes.



Fence Textures

fence texure.png


Fence textures are nonstandard special textures handled by the modern ericw-tools QBSP compiler and properly supported in some of the current quake engine ports. As the name implies these textures have parts that are alpha-masked so you can see through them like a fence. You can use these textures to make spider webs, vines, bushes, icicles, trees, etc.

Fence textures are determined by having the 1st character in the texture name as "{", making any pixel using color index #255 (the pink one in the lower right-hand corner) of the Quake palette to be rendered as transparent.

In supported engines, you can use them in any non-vis-blocking, non-geometry-culling brush entity, such as func_wall, func_illusionary or func_detail_fence . Other func_detail variants may still cull away underlying geometry depending on the case, thus making likely you'll see the void through transparent texture areas.


(much of this article was rewritten from http://www.celephais.net/stuff/texturefaq.htm)