Env projectedtexture: Difference between revisions
Jump to navigation
Jump to search
In code, it is represented by the
Note:In Garry's Mod, there can be up to 9 active
Bug:Parenting does not work with stock SDK code. [todo tested in ?]
Note:The
Bug:The entity cannot target another entity. [todo tested in ?]
Confirm:This keyvalue does not work in Alien Swarm.
Note:In some FGDs, only
(Light color has intensity) |
m (Use Blixibon's CodeFix Templates to make things a little bit more easier.) |
||
Line 7: | Line 7: | ||
==Caveats== | ==Caveats== | ||
*Valve's games only support one shadow map in the [[PVS]] at a time. [[ | *Valve's games only support one shadow map in the [[PVS]] at a time. | ||
: {{fix|It is possible to modify/remove this limit by [[Env_projectedtexture/fixes#Enabling_multiple_shadow_maps.|following these instructions.]]}} | |||
*Textures used for projected textures require the flags Clamp S, Clamp T and Clamp All to avoid glitchy tiling. Also note, that VTFs are used directly and no VMT is needed. | *Textures used for projected textures require the flags Clamp S, Clamp T and Clamp All to avoid glitchy tiling. Also note, that VTFs are used directly and no VMT is needed. | ||
{{note|In [[Garry's Mod]], there can be up to 9 active <code>env_projectedtexture</code>s turned on with shadow mapping at a time. You can also increase this limit by putting <code>-numshadowtextures #</code> in the Steam launch parameters of Garry's Mod, where # is the number of shadow maps the game should allow.}} | {{note|In [[Garry's Mod]], there can be up to 9 active <code>env_projectedtexture</code>s turned on with shadow mapping at a time. You can also increase this limit by putting <code>-numshadowtextures #</code> in the Steam launch parameters of Garry's Mod, where # is the number of shadow maps the game should allow.}} | ||
*Shadows are only rendered when the user is running with "High" shadow detail. If your options menu does not show the "High" shadow detail setting by default, you can add <code>-force_vendor_id 0x10DE -force_device_id 0x1180</code> to the game's launch options for it to show up. | *Shadows are only rendered when the user is running with "High" shadow detail. If your options menu does not show the "High" shadow detail setting by default, you can add <code>-force_vendor_id 0x10DE -force_device_id 0x1180</code> to the game's launch options for it to show up. | ||
*In multiplayer, <code>mat_supportflashlight</code> must be set to 1 for flashlights to work. By default these ConVars are disabled in [[Team Fortress 2]], so this entity won't work there without special configuration. | *In multiplayer, <code>mat_supportflashlight</code> must be set to 1 for flashlights to work. By default these ConVars are disabled in [[Team Fortress 2]], so this entity won't work there without special configuration. | ||
*[[Viewmodel]]s won't receive light or shadows from projected textures. | *[[Viewmodel]]s won't receive light or shadows from projected textures. You can follow [[env_projectedtexture/fixes#Enabling shadow receiving on the view model|these instructions to fix this bug]]. | ||
{{bug|In Portal 2, some Nvidia graphics cards render white specks or squares on certain textures. To fix this, remove the bumpmap ({{ent|$bumpmap}} or {{ent|$ssbump}}) or {{ent|$detail}} textures.}} | {{bug|In Portal 2, some Nvidia graphics cards render white specks or squares on certain textures. To fix this, remove the bumpmap ({{ent|$bumpmap}} or {{ent|$ssbump}}) or {{ent|$detail}} textures.}} | ||
: [https://www.youtube.com/watch?v=PJ1mnJHln5Q Video of said bug.] | : [https://www.youtube.com/watch?v=PJ1mnJHln5Q Video of said bug.] | ||
{{bug|Parenting does not work with stock SDK code. | {{bug|Parenting does not work with stock SDK code.}} | ||
: {{fix|This bug is fixable by following these instructions: [[Env_projectedtexture/fixes#Fixing Parenting]].|code}} | |||
===Source 2007/2009 bugs=== | ===Source 2007/2009 bugs=== | ||
These have all been fixed in more recent engine builds.<!--Do we really still need this section? These issues are fixed now, yes?--> | These have all been fixed in more recent engine builds.<!--Do we really still need this section? These issues are fixed now, yes?--> | ||
{{bug|The configurable texture value from Hammer is not accepted - will always default to the flashlight. You must use the <code>SpotlightTexture</code> [[input]] or | {{bug|The configurable texture value from Hammer is not accepted - will always default to the flashlight. You must use the <code>SpotlightTexture</code> [[input]] or you can also override the actual contents of the default VTF with a new one.}} | ||
: {{fix|You can fix this issue by following these instructions: [[Env_projectedtexture/fixes#Fix_configurable_texture_value_in_Hammer]].|code}} | |||
{{note|The <code>SpotlightTexture</code> input has been disabled in the Portal 2 and CS:GO engines, and instead shows an error message: "SetSpotlightTexture is disabled. If you need this feature reimplemented, tell a programmer."}} | {{note|The <code>SpotlightTexture</code> input has been disabled in the Portal 2 and CS:GO engines, and instead shows an error message: "SetSpotlightTexture is disabled. If you need this feature reimplemented, tell a programmer."}} | ||
{{bug|The entity cannot target another entity. | {{bug|The entity cannot target another entity.}} | ||
: {{fix|This bug is fixable by following these instructions: [[env_projectedtexture/fixes#Fixing targeting]].|code}} | |||
{{bug|[[Model]]s will not receive their own shadows correctly unless using [[$bumpmap]]. Even a flat bump map is sufficient.}} | {{bug|[[Model]]s will not receive their own shadows correctly unless using [[$bumpmap]]. Even a flat bump map is sufficient.}} | ||
{{bug|Causes issues if the entity overlaps a portal in [[Portal|Portal 1]]. Simply the projection overlapping a portal works fine.}} | {{bug|Causes issues if the entity overlaps a portal in [[Portal|Portal 1]]. Simply the projection overlapping a portal works fine.}} | ||
Revision as of 12:24, 20 September 2019

Portal 2 uses projected textures extensively for world lighting.
Template:Base point It projects a texture as a dynamic light that affects all objects in the world, optionally with Shadow Mapping.

CEnvProjectedTexture
class, defined in theenv_projectedtexture.cpp
file.
Caveats
- Valve's games only support one shadow map in the PVS at a time.
Fix:It is possible to modify/remove this limit by following these instructions.
- Textures used for projected textures require the flags Clamp S, Clamp T and Clamp All to avoid glitchy tiling. Also note, that VTFs are used directly and no VMT is needed.

env_projectedtexture
s turned on with shadow mapping at a time. You can also increase this limit by putting -numshadowtextures #
in the Steam launch parameters of Garry's Mod, where # is the number of shadow maps the game should allow.- Shadows are only rendered when the user is running with "High" shadow detail. If your options menu does not show the "High" shadow detail setting by default, you can add
-force_vendor_id 0x10DE -force_device_id 0x1180
to the game's launch options for it to show up. - In multiplayer,
mat_supportflashlight
must be set to 1 for flashlights to work. By default these ConVars are disabled in Team Fortress 2, so this entity won't work there without special configuration. - Viewmodels won't receive light or shadows from projected textures. You can follow these instructions to fix this bug.

Code Fix:This bug is fixable by following these instructions: Env_projectedtexture/fixes#Fixing Parenting.
Source 2007/2009 bugs
These have all been fixed in more recent engine builds.
Code Fix:You can fix this issue by following these instructions: Env_projectedtexture/fixes#Fix_configurable_texture_value_in_Hammer.

SpotlightTexture
input has been disabled in the Portal 2 and CS:GO engines, and instead shows an error message: "SetSpotlightTexture is disabled. If you need this feature reimplemented, tell a programmer."
Code Fix:This bug is fixable by following these instructions: env_projectedtexture/fixes#Fixing targeting.
Flags
- 1: Enabled
- 2: Always Update (moving light) Template:AS add
Keyvalues
- Target (target) ([todo internal name (i)]) <targetname>
- The entity will rotate to point at this target. Make sure you check the Always update flag if you set this.
- FOV (lightfov) ([todo internal name (i)]) <float>
- The field of view cone/pyramid at which the texture is projected.

- NearZ (nearz) ([todo internal name (i)]) <float>
- Objects closer than this will not receive the light from the projection.
- FarZ (farz) ([todo internal name (i)]) <float>
- Objects beyond this distance will not receive the light from the projection.
- Enable Shadows (enableshadows) ([todo internal name (i)]) <boolean>
- Enables/disables shadows from this projected texture. 0 = no, 1 = yes.
- Shadow Quality (shadowquality) ([todo internal name (i)]) <choices>
- Quality of shadows.
- 0: Low (sharp, pixelized shadows)
- 1: High (smooth edged shadows)
- Light Only Target (lightonlytarget) ([todo internal name (i)]) <boolean>
- Limit flashlight effect to only affect target entity.
- Light World (lightworld) ([todo internal name (i)]) <boolean>
- Control whether flashlight affects static world geometry. 0 = no, 1 = yes.
- Camera Space (cameraspace) ([todo internal name (i)]) <integer>
- Angles are interpreted as being relative to camera.
- Texture Name (texturename) ([todo internal name (i)]) <string> !FGD
- The texture or material which this entity projects. Must be a VTF file (not VMT), relative to
/materials
.
- Texture Frame (textureframe) ([todo internal name (i)]) <integer> !FGD
- If the texture is animated, this is the frame it should begin on.
- Simple Projection (simpleprojection) ([todo internal name (i)]) <boolean> (in all games since
) !FGD
- Indicates if this is a simple, non-light casting texture projection.
- Simple Projection Size (projection_size) ([todo internal name (i)]) <float> (in all games since
) !FGD
- Simple Projection Rotation (projection_rotation) ([todo internal name (i)]) <float> (in all games since
) !FGD
- Brightness Scale (brightnessscale) ([todo internal name (i)]) <float> (in all games since
)
- Scale the light color by this brightness.
- Color Transition Time (colortransitiontime) ([todo internal name (i)]) <float> (in all games since
)
- Amount of time it takes for a color change to occur. Higher numbers cause faster transitions.
- Appearance (style) ([todo internal name (i)]) <choices> (in all games since
)
- Various Custom Appearance presets.
- Custom Appearance (pattern) ([todo internal name (i)]) <string> (in all games since
)
- Set a custom pattern of light brightness for this light. Pattern format is a string of characters, where a is total darkness, z fully bright. i.e.
aaggnnttzz
would be a steppy fade in from dark to light.
Inputs

TurnOn
, TurnOff
and FOV
are present.- TurnOn
- Turns on the texture.
- TurnOff
- Turns off the texture.
- FOV <float >
- Sets FOV.
- EnableShadows <boolean >
- Set the if shadows are enabled. 0 = no, 1 = yes.
- SpotlightTexture <string >
- Sets the spotlight texture.
- Target <string >
- Specify a new Target entity to point at.
- CameraSpace <boolean >
- Sets Camera Space.
- LightOnlyTarget <boolean >
- Sets Light Only Target.
Bug:Non-functional. [todo tested in ?]
- LightWorld <integer >
- Sets Light World. 0 = no, 1 = yes.
- AlwaysUpdateOn (in all games since
)
- Turn on per frame updating (for moving lights).
- AlwaysUpdateOff (in all games since
)
- Turn off per frame updating (for moving lights).
- SetLightStyle <integer > (in all games since
)
- Sets an Appearance. (see Appearance keyvalue above for possible values)
- SetPattern <string > (in all games since
)
- Sets Custom Appearance. (see Custom Appearance keyvalue above)