Sky (Source 1 shader): Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Flag for cleanup; still deciding how to do so. Also change LDR to SDR, as per industry standard.)
(Change SDR -> LDR, the engine refers to it as only LDR so it should be treated in such context)
Line 1: Line 1:
{{cleanup|This article misrepresents the difference between {{code|$hdrbasetexture}} and {{code|$hdrcompressedtexture}}; {{code|$hdrbasetexture}} is used both if there is only an SDR texture , '''and''' if the HDR texture does not use [[VTF#HDR compression|compressed HDR]]. This page should be reworded accordingly; see the page on [[HDR Skybox Creation]].}}
{{cleanup|This article misrepresents the difference between {{code|$hdrbasetexture}} and {{code|$hdrcompressedtexture}}; {{code|$hdrbasetexture}} is used both if there is only an LDR texture , '''and''' if the HDR texture does not use [[VTF#HDR compression|compressed HDR]]. This page should be reworded accordingly; see the page on [[HDR Skybox Creation]].}}
'''Sky''' is a shader for materials in [[Source]] meant for [[Skybox_(2D)|2D skyboxes]]. The old method of making skyboxes before [[Source 2007]] involved using the [[UnlitGeneric]] shader with <code>[[$ignorez|$ignorez 1]]</code>. This shader expands the amount of usable parameters and also allows for [[HDR]] skyboxes.
'''Sky''' is a shader for materials in [[Source]] meant for [[Skybox_(2D)|2D skyboxes]]. The old method of making skyboxes before [[Source 2007]] involved using the [[UnlitGeneric]] shader with <code>[[$ignorez|$ignorez 1]]</code>. This shader expands the amount of usable parameters and also allows for [[HDR]] skyboxes.


=== With an HDR Compressed Skybox Texture ===
=== With an HDR Compressed Skybox Texture ===


Most of the time, VMTs should only exist for [[High Dynamic Range|HDR]] skyboxes that have an SDR fallback. An example of an HDR skybox with a fallback will look like this:
Most of the time, VMTs should only exist for [[High Dynamic Range|HDR]] skyboxes that have an LDR fallback. An example of an HDR skybox with a fallback will look like this:


<source lang=vmt>
<source lang=vmt>
sky
sky
{
{
$basetexture skybox/sky_wasteland_00up // Sky texture to use for SDR
$basetexture skybox/sky_wasteland_00up // Sky texture to use for LDR
$hdrcompressedtexture skybox/sky_wasteland_00_hdrup // HDR-compressed Sky texture to use for HDR-enabled maps
$hdrcompressedtexture skybox/sky_wasteland_00_hdrup // HDR-compressed Sky texture to use for HDR-enabled maps
$nofog 1
$nofog 1
Line 24: Line 24:
sky
sky
{
{
$basetexture skybox/sky_wasteland_00up // Sky texture to use for SDR
$basetexture skybox/sky_wasteland_00up // Sky texture to use for LDR
$hdrbasetexture skybox/sky_wasteland_00up // Sky texture to use for HDR, if the texture has NOT been specifically compiled for HDR
$hdrbasetexture skybox/sky_wasteland_00up // Sky texture to use for HDR, if the texture has NOT been specifically compiled for HDR
$nofog 1
$nofog 1

Revision as of 09:05, 31 March 2023

Broom icon.png
This article or section needs to be cleaned up to conform to a higher standard of quality because:
This article misrepresents the difference between $hdrbasetexture and $hdrcompressedtexture; $hdrbasetexture is used both if there is only an LDR texture , and if the HDR texture does not use compressed HDR. This page should be reworded accordingly; see the page on HDR Skybox Creation.
For help, see the VDC Editing Help and Wikipedia cleanup process. Also, remember to check for any notes left by the tagger at this article's talk page.

Sky is a shader for materials in Source meant for 2D skyboxes. The old method of making skyboxes before Source 2007 involved using the UnlitGeneric shader with $ignorez 1. This shader expands the amount of usable parameters and also allows for HDR skyboxes.

With an HDR Compressed Skybox Texture

Most of the time, VMTs should only exist for HDR skyboxes that have an LDR fallback. An example of an HDR skybox with a fallback will look like this:

sky
{
	$basetexture skybox/sky_wasteland_00up // Sky texture to use for LDR
	$hdrcompressedtexture skybox/sky_wasteland_00_hdrup // HDR-compressed Sky texture to use for HDR-enabled maps
	$nofog 1
	$ignorez 1
	$nomip 1
}

Without an HDR Compressed Skybox Texture

When an HDR skybox is needed for a texture that has not been compiled for HDR, an alternative command is used instead of $hdrcompressedtexture: $hdrbasetexture.

sky
{
	$basetexture skybox/sky_wasteland_00up // Sky texture to use for LDR
	$hdrbasetexture skybox/sky_wasteland_00up // Sky texture to use for HDR, if the texture has NOT been specifically compiled for HDR
	$nofog 1
	$ignorez 1
	$nomip 1
}

Issues

You might find that skyboxes sometimes fit the entire projection area of a level. To re-scale the material to fit, use $basetexturetransform or add the following line:

	$basetexturetransform "center 0 0 scale 1 2 rotate 0 translate 0 0" // For cutting off the bottom halves of the skybox

The scale 1 2 segment will maintain the fill-sizing of the X-axis, while locking the texture to the center line of the Y-axis (i.e. the absolute horizon line).