Sky (Source 1 shader): Difference between revisions
m (replaced "source" with "syntaxhighlight") |
No edit summary |
||
Line 18: | Line 18: | ||
$nomip 1 | $nomip 1 | ||
} | } | ||
</ | </syntaxhighlight> | ||
=== With a compressed HDR skybox texture === | === With a compressed HDR skybox texture === | ||
Line 32: | Line 32: | ||
$nomip 1 | $nomip 1 | ||
} | } | ||
</ | </syntaxhighlight> | ||
{{todo|Figure out what the "HDR compression method B" mentioned in {{file|sky_hdr_dx9|cpp}} does differently, as it asks for $hdrcompressedtexture0, $hdrcompressedtexture1, and $hdrcompressedtexture2 instead of a single $hdrcompressedtexture.}} | {{todo|Figure out what the "HDR compression method B" mentioned in {{file|sky_hdr_dx9|cpp}} does differently, as it asks for $hdrcompressedtexture0, $hdrcompressedtexture1, and $hdrcompressedtexture2 instead of a single $hdrcompressedtexture.}} | ||
Line 48: | Line 48: | ||
$nomip 1 | $nomip 1 | ||
} | } | ||
</ | </syntaxhighlight> | ||
=== Issues === | === Issues === | ||
Line 57: | Line 57: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
The | The {{code|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). | ||
{{src topicon|nocat=1}} | {{src topicon|nocat=1}} | ||
[[Category:Shaders]] | [[Category:Shaders]] |
Latest revision as of 07:39, 13 February 2025
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.



$nofog 1
) are affected by fog.



With an uncompressed HDR skybox texture
If the skybox texture uses uncompressed BGRA16f16f16f16f, then the VMT should look something like this:
sky
{
$basetexture skybox/sky_wasteland_00up // Sky texture to use for LDR
$hdrbasetexture skybox/sky_wasteland_00_hdrup // Uncompressed HDR Sky texture to use for HDR-enabled maps
$nofog 1
$ignorez 1
$nomip 1
}
With a compressed HDR skybox texture
If the skybox has been compressed using BGRA8888, then $hdrcompressedtexture should be used instead:
sky
{
$basetexture skybox/sky_wasteland_00up // Sky texture to use for LDR
$hdrcompressedtexture skybox/sky_wasteland_00_hdrup // Compressed HDR Sky texture to use for HDR-enabled maps
$nofog 1
$ignorez 1
$nomip 1
}

sky_hdr_dx9.cpp
does differently, as it asks for $hdrcompressedtexture0, $hdrcompressedtexture1, and $hdrcompressedtexture2 instead of a single $hdrcompressedtexture.Without an HDR skybox texture
If an HDR version of the skybox texture is not available, $hdrbasetexture can use the same VTF as $basetexture:
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).