Env skypaint: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
No edit summary
 
(10 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{cleanup}}
{{LanguageBar}}
{{stub}}
{{this is a|logical entity|name=env_skypaint|notext=1|game=Garry's Mod}}


 
It allows the creation of custom dynamic skyboxes (Both [[HDR]] and [[LDR]]). It can be overridden by the Sky Editor ([[edit_sky]]) entity spawned by the player in game.
[[File:env_skypaint.png|left|link=]] <code>env_skypaint</code> is a [[point entity]] available in {{GMOD}}[[Garry's Mod]] (Since GMod 13). It allows to create custom dynamic skybox (Both [[HDR]] and [[LDR]]).
[[File:Construct_sky.jpg|thumb|gm_construct uses env_skypaint]]
[[File:Construct_sky.jpg|thumb|gm_construct uses env_skypaint]]
[[File:Flatgrass_sky.jpg|thumb|gm_flatgrass also uses env_skypaint]]
[[File:Flatgrass_sky.jpg|thumb|gm_flatgrass also uses env_skypaint]]
 
{{important|The name of the skybox must be <code>painted</code> in order for this entity to work}}
It can be overridden by Sky Editor ([[edit_sky]]) entity spawned by player in game.
{{note|1=The colors are in [[color1]] format instead of [[color255]]. In order to convert color255 to color1, divide each value by 255 (ex: 200/255=0.78).}}
 
 
{{note|Set skybox name to <code>painted</code> to get this entity to work.}}
{{note|The colors aren't in RGB "255 255 255" format. In order to convert them to these values, you'll need to get your color value (such as 200 and divide it like 255/200, resulting in 0.78 rounded for the red color field)}}
{{note|Since <code>env_skypaint</code> isn't related to VRAD at all, you'll need to make your own [[light_environment]] for your skybox inside Hammer.}}
==Sky creation==
==Sky creation==
# Place <code>env_skypaint</code> somewhere in your map
# Place <code>env_skypaint</code> somewhere in your map.
# Change sky name to <code>painted</code>
# Change sky name to <code>painted</code>.
# Compile and run map
# Compile and run map.
# Using a Q menu, spawn the Sky Editor somewhere in your map.
# Using the spawnmenu, spawn the Sky Editor entity somewhere in your map (in the Entities tab under "Editors").
# Go to sky editor properties and edit the values as you wish.
# Go to entity's properties and edit the values as you wish.
# When your done, just copy values to <code>env_skypaint</code>
# When your're done, copy the values to your <code>env_skypaint</code>.
# Compile map again. DONE
# Compile the map again. DONE
== env_skypaint example values ==
== env_skypaint example values ==
{| class="standard-table" style="width: 100%; text-align: center;"
{| class="standard-table" style="width: 100%; text-align: center;"
Line 62: Line 56:
|}
|}
==Keyvalues==
==Keyvalues==
{{KV|Name|targetname|Entity's name}}
{{KV Targetname}}
{{KV|Sky Top Color|topcolor|Sky top color}}
{{KV|Sky Top Color|intn=topcolor|color1|The colour of the top of the sky}}
{{KV|Sky Bottom Color|bottomcolor|Sky horizon color}}
{{KV|Sky Bottom Color|intn=bottomcolor|color1|The colour of the bottom of the sky}}
{{KV|Sky Fade Bias|fadebias|Tansision between sky colors (1.0 is even)}}
{{KV|Sky Fade Bias|intn=fadebias|float|Controls the bias of the fade between top/bottom (1.0 is even)}}
{{KV|Sun Size|sunsize|Size of sun glow overlay on sky.}}
{{KV|Sun Size|intn=sunsize|float|Controls the size of the sun glow}}
{{warning|not to be confused with [[env_sun]]}}
{{warning|not to be confused with [[env_sun]]}}
{{KV|Sun Normal|sunnormal}}
{{KV|Sun Normal|intn=sunnormal|vector|The position of the sun, expressed as a normal from the center of the world}}
{{KV|Sun Position Method|sunsize|<code>Custom</code> or <code>Automatic</code>(Uses [[env_sun]] values)}}
{{KV|Sun Position Method|intn=sunposmethod|choices|How should we determine the position of the sun?}}
{{KV|Sun Color|suncolor|Color of the sun overlay.}}
:* 0: Custom - Use the Sun Normal to position the sun
{{KV|Dusk Scale|duskscale|Size of dusk at horizon.}}
:* 1: Automatic - Find a env_sun entity and use that (Uses [[env_sun]] values)
{{KV|Dusk Intensity|duskintensity|How powerful the dusk effect is.}}
{{KV|Sun Color|intn=suncolor|color1|The color of the sun glow (this is additive)}}
{{KV|Dusk Color|duskcolor|Color of the dusk.}}
{{KV|Dusk Scale|intn=duskscale|float|The size of the dusk effect (colouring of the horizon)}}
{{KV|Draw Stars|drawstars|<code>Yes</code>or<code>No</code>. Draws a specified texture as overlay.}}
{{KV|Dusk Intensity|intn=duskintensity|float|How powerful the dusk effect is}}
{{note|On sky it replaces black color in texture with alpha.}}
{{KV|Dusk Color|intn=duskcolor|color1|The color of the dusk effect}}
{{KV|Stars Texture|starstexture|Default: <code>skybox/starfield</code>}}
{{KV|Draw Stars|intn=drawstars|choices|Draws a specified texture as an overlay}}
{{KV|Stars Scale|starsscale|Scale of overlay texture.}}
:* 0: No - Don't draw stars
{{KV|Star Fade|starsfade|Fade the star texture towards the horizon.}}
:* 1: Yes - Draw the stars please
{{KV|Stars Speed|starsspeed|How fast the star texture should scroll across the sky.}}
:{{note|Drawn using [[additive]] translucency.}}
{{KV|HDR Scale|hdrscale|When rendering your skybox in HDR mode, output will be scaled by this amount.}}
{{KV|Stars Texture|intn=starstexture|string|The star texture}}
==Input==
{{KV|Stars Scale|intn=starsscale|float|How big the star texture should be}}
{{IO|Kill|Removes this entity from the world.}}
{{KV|Star Fade|intn=starsfade|float|Fade the star texture towards the horizon}}
{{IO|KillHierarchy|Removes this entity and its children from the world. {{note|Entities already remove orphaned children upon being removed, but this input removes all children on the same frame, being marginally faster than <code>Kill</code>.}}}}
{{KV|Stars Speed|intn=starsspeed|float|How fast the star texture should scroll across the sky}}
{{IO|[[AddOutput]]|Adds a keyvalue/output to this entity. It can be potentially very dangerous, use with care.<br/>''KV'' Format: <code><key> <value></code><br/>''I/O'' Format: <code><output name> <targetname>:<inputname>:<parameter>:<delay>:<max times to fire, -1 means infinite></code>|param=string}}
{{KV|HDR Scale|intn=hdrscale|float|When rendering your skybox in HDR mode, output will be scaled by this amount}}
==Output==
{{IO|OnUser1|to=OnUser4|These outputs each fire in response to the firing of the like-numbered <code>FireUser1</code> to <code>FireUser4</code> Input; see [[User Inputs and Outputs]].}}

Latest revision as of 17:10, 22 May 2025

English (en)Translate (Translate)

env_skypaint is a logical entity available in Garry's Mod Garry's Mod.

It allows the creation of custom dynamic skyboxes (Both HDR and LDR). It can be overridden by the Sky Editor (edit_sky) entity spawned by the player in game.

gm_construct uses env_skypaint
gm_flatgrass also uses env_skypaint
Icon-Important.pngImportant:The name of the skybox must be painted in order for this entity to work
Note.pngNote:The colors are in color1 format instead of color255. In order to convert color255 to color1, divide each value by 255 (ex: 200/255=0.78).

Sky creation

  1. Place env_skypaint somewhere in your map.
  2. Change sky name to painted.
  3. Compile and run map.
  4. Using the spawnmenu, spawn the Sky Editor entity somewhere in your map (in the Entities tab under "Editors").
  5. Go to entity's properties and edit the values as you wish.
  6. When your're done, copy the values to your env_skypaint.
  7. Compile the map again. DONE

env_skypaint example values

Map Sky Top Color Sky Bottom Color Sky Fade Bias Sun Size Sun Normal Sun Position Method Sun Color Dusk Scale Dusk Intensity Dusk Color Draw Stars Star Texture Star Scale Star Fade Star Speed HDR Scale
gm_construct 0.22 0.51 1 0.919 0.929 0.992 0.1 0 0 0 1 Automatic 0 0 0 0.5 2 1 1 1 Yes skybox/clouds 2 0.5 0.03 0.56
gm_flatgrass 0 0.6 1 0.9 0.95 1 0.5 0 0 0 1 Automatic 0 0 0 0 0 0 0 0 Yes skybox/clouds 2 0.5 0.02 0.60

Keyvalues

Name (targetname) <string>[ Edit ]
The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentname or target).
Also displayed in Hammer's 2D views and Entity Report.
See also:  Generic Keyvalues, Inputs and Outputs available to all entities

Sky Top Color (topcolor) <color1>
The colour of the top of the sky
Sky Bottom Color (bottomcolor) <color1>
The colour of the bottom of the sky
Sky Fade Bias (fadebias) <float>
Controls the bias of the fade between top/bottom (1.0 is even)
Sun Size (sunsize) <float>
Controls the size of the sun glow
Warning.pngWarning:not to be confused with env_sun
Sun Normal (sunnormal) <vector>
The position of the sun, expressed as a normal from the center of the world
Sun Position Method (sunposmethod) <choices>
How should we determine the position of the sun?
  • 0: Custom - Use the Sun Normal to position the sun
  • 1: Automatic - Find a env_sun entity and use that (Uses env_sun values)
Sun Color (suncolor) <color1>
The color of the sun glow (this is additive)
Dusk Scale (duskscale) <float>
The size of the dusk effect (colouring of the horizon)
Dusk Intensity (duskintensity) <float>
How powerful the dusk effect is
Dusk Color (duskcolor) <color1>
The color of the dusk effect
Draw Stars (drawstars) <choices>
Draws a specified texture as an overlay
  • 0: No - Don't draw stars
  • 1: Yes - Draw the stars please
Note.pngNote:Drawn using additive translucency.
Stars Texture (starstexture) <string>
The star texture
Stars Scale (starsscale) <float>
How big the star texture should be
Star Fade (starsfade) <float>
Fade the star texture towards the horizon
Stars Speed (starsspeed) <float>
How fast the star texture should scroll across the sky
HDR Scale (hdrscale) <float>
When rendering your skybox in HDR mode, output will be scaled by this amount