Env projectedtexture: Difference between revisions
Jump to navigation
Jump to search
Warning:This is the most expensive light entity in the engine. Use sparingly.
Note:Newer hardware can handle it better.
In code, it is represented by the
Bug:The entity cannot target another entity. [todo tested in ?]
Note:In some FGDs, only
Line 12: | Line 12: | ||
==Caveats and Fixes== | ==Caveats and Fixes== | ||
{{Wip|[[User:Equalizer5118|Equalizer5118, an idiot who cant spel]] ([[User talk:Equalizer5118|talk]])}} | {{Wip|[[User:Equalizer5118|Equalizer5118, an idiot who cant spel]] ([[User talk:Equalizer5118|talk]])}} | ||
{{ModernTodo|Finish this!}} | |||
{{main|Env_projectedtexture/fixes}} | {{main|Env_projectedtexture/fixes}} | ||
{| class="standard-table" | |||
! Issue | |||
! Affected games | |||
{{ | ! Fix | ||
{{ | ! Notes | ||
{{ | |- | ||
| Valve's games only support one shadow map in the [[PVS]] at a time. | |||
| Official {{source|3.1}} games/stock {{game name|src13|name=Source SDK 2013}} code | |||
| It is possible to modify/remove this limit by [[Env_projectedtexture/fixes#Enabling_multiple_shadow_maps.|following these instructions.]] | |||
| The following games have exceptions to this: | |||
*{{gmod}}: 9 (Can be increased with <code>-numshadowtextures #</code>) | |||
*{{stratabranch}}: Infinite | |||
*{{mapbase}}: 4 (Can be increased with <code>-numshadowtextures #</code>) | |||
*{{infra}}: 8 | |||
|- | |||
| 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. | |||
| All {{source|3.1}} games | |||
| N/A | |||
| N/A | |||
|- | |||
| 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 | |||
| All {{source|3.1}} games. | |||
| Add <code>-force_vendor_id 0x10DE -force_device_id 0x1180</code> to the game's launch options | |||
| | |||
*{{bms|3.1}} has multiple quality levels for dynamic shadow rendering | |||
*{{csgo}} dynamic shadows from Projected Textures work on "Low" settings | |||
|- | |||
| In multiplayer, <code>mat_supportflashlight</code> must be set to 1 for flashlights to work | |||
| All multiplayer {{source|3.1}} games | |||
| N/A | |||
| 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 | |||
| All {{source|3.1}} games ''except'' {{gmod}} and {{portal2}} | |||
| [[env_projectedtexture/fixes#Enabling shadow receiving on the view model]] | |||
| {{ModernConfirm|Does {{bms}} also fix this issue? It uses dynamic shadows a lot.}} | |||
|- | |||
| Some Nvidia graphics cards (especially with latest drivers) render white specks, squares or noises on certain textures | |||
| {{portal2|3.1}} | |||
| Remove the bumpmap ({{ent|$bumpmap}} or {{ent|$ssbump}}) or {{ent|$detail}} textures) | |||
| [https://www.youtube.com/watch?v=PJ1mnJHln5Q Video of said bug.] | |||
|- | |||
| While running in DirectX 9 mode, some graphics cards will not render shadows from <code>env_projectedtexture</code> regardless of the shadow detail setting, and as a result will render the texture through brushes instead of properly stopping them | |||
| {{portal2|3.1}} | |||
| Run the game in Vulkan mode with the launch parameter <code>-vulkan</code> | |||
| Also affects all DX9 based mods, fixed in {{p2ce}} and {{portalrev}} | |||
|- | |||
| Parenting does not work with stock SDK code | |||
| {{game name|src13|name=Source SDK 2013}} | |||
| [[Env_projectedtexture/fixes#Fixing Parenting]] | |||
| N/A | |||
|- | |||
| No smooth transition between this light and {{ent|env_cascade_light}} | |||
| {{csgo|3.1|nt=1}} | |||
| N/A | |||
| N/A | |||
|- | |||
| <code>SpotlightTexture</code> is disabled in some branches | |||
| {{portal2branch|3.1}} and {{csgobranch|3.1|nt=1}} | |||
| Fixed in {{stratabranch|3.1|nt=1}} | |||
|} | |||
===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?--> | ||
Line 36: | Line 81: | ||
{{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.}} | {{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}} | : {{fix|You can fix this issue by following these instructions: [[Env_projectedtexture/fixes#Fix_configurable_texture_value_in_Hammer]].|code}} | ||
{{bug|The entity cannot target another entity.}} | {{bug|The entity cannot target another entity.}} |
Revision as of 09:29, 28 April 2023

Portal 2 uses projected textures extensively for world lighting.
Template:Entity It projects a texture as a dynamic light that affects all objects in the world, optionally with Shadow Mapping. env_Projectedtexture does not light the world similarly that other light entities which are ray-traced when you compile the map. This light however is real-time and works without RAD.



CEnvProjectedTexture
class, defined in theenv_projectedtexture.cpp
file.
Caveats and Fixes

This page is actively undergoing a major edit.
As a courtesy, please do not edit this while this message is displayed.
If this page has not been edited for at least several hours to a few days, please remove this template. This message is intended to help reduce edit conflicts; please remove it between editing sessions to allow others to edit the page.
As a courtesy, please do not edit this while this message is displayed.
If this page has not been edited for at least several hours to a few days, please remove this template. This message is intended to help reduce edit conflicts; please remove it between editing sessions to allow others to edit the page.
The user who added this notice, should you wish to contact them, is: Equalizer5118, an idiot who cant spel (talk) tr = idir.
Main article: Env_projectedtexture/fixes
Issue | Affected games | Fix | Notes |
---|---|---|---|
Valve's games only support one shadow map in the PVS at a time. | Official Source games/stock Template:Game name code | It is possible to modify/remove this limit by following these instructions. | The following games have exceptions to this: |
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. | All Source games | N/A | N/A |
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 | All Source games. | Add -force_vendor_id 0x10DE -force_device_id 0x1180 to the game's launch options
|
|
In multiplayer, mat_supportflashlight must be set to 1 for flashlights to work
|
All multiplayer Source games | N/A | 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 | All Source games except ![]() ![]() |
env_projectedtexture/fixes#Enabling shadow receiving on the view model | |
Some Nvidia graphics cards (especially with latest drivers) render white specks, squares or noises on certain textures | Portal 2 | Remove the bumpmap ($bumpmap or $ssbump) or $detail textures) | Video of said bug. |
While running in DirectX 9 mode, some graphics cards will not render shadows from env_projectedtexture regardless of the shadow detail setting, and as a result will render the texture through brushes instead of properly stopping them
|
Portal 2 | Run the game in Vulkan mode with the launch parameter -vulkan
|
Also affects all DX9 based mods, fixed in ![]() ![]() |
Parenting does not work with stock SDK code | Template:Game name | Env_projectedtexture/fixes#Fixing Parenting | N/A |
No smooth transition between this light and env_cascade_light | CS:GO | N/A | N/A |
SpotlightTexture is disabled in some branches
|
Portal 2 engine branch and CS:GO branch | Fixed in Strata Source engine branch |
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.

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 addTemplate:Mapbase also
Keyvalues
- Target (target) <targetname>
- The entity will rotate to point at this target. Make sure you check the Always update flag if you set this.
- FOV (lightfov) <float>
- The field of view cone/pyramid at which the texture is projected.
Confirm:This keyvalue does not work in Alien Swarm.
- NearZ (nearz) <float>
- Objects closer than this will not receive the light from the projection.
- FarZ (farz) <float>
- Objects beyond this distance will not receive the light from the projection.
- Enable Shadows (enableshadows) <boolean>
- Enables/disables shadows from this projected texture. 0 = no, 1 = yes.
- Shadow Quality (shadowquality) <choices>
- Quality of shadows.
- 0: Low (sharp, pixelized shadows)
- 1: High (smooth edged shadows)
- Shadow Filter (shadowfilter) <integer> (only in
)
- Changes the Shadow Filter parameter of the light, which is responsible for smoothing the light. Works only when enabled Always update flag.
- Light Only Target (lightonlytarget) <boolean>
- Limit flashlight effect to only affect target entity.
- Light World (lightworld) <boolean>
- Control whether flashlight affects static world geometry. 0 = no, 1 = yes.
- Camera Space (cameraspace) <integer>
- Angles are interpreted as being relative to camera.
- Texture Name (texturename) <string> !FGD
- The texture which this entity projects. Must be a VTF file (not VMT), relative to
/materials
.
- Texture Frame (textureframe) <integer> !FGD
- If the texture is animated, this is the frame it should begin on.
- Simple Projection (simpleprojection) <boolean> (in all games since
) !FGD
- Indicates if this is a simple, non-light casting texture projection.
- Simple Projection Size (projection_size) <float> (in all games since
) !FGD
- Size of the simple projection.
- Brightness Scale (brightnessscale) <float> (in all games since
) (also in
)
- Scale the light color by this brightness.
- Color Transition Time (colortransitiontime) <float> (in all games since
) (also in
)
- Amount of time it takes for a color change to occur. Higher numbers cause faster transitions.
- Appearance (style) <choices> (in all games since
) (also in
)
- Various Custom Appearance presets.
Note:Requires input
AlwaysUpdateOn
to work.
- Custom Appearance (pattern) <string> (in all games since
) (also in
)
- 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.
- Light View Models (lightviewmodels) <boolean> (only in
)
- Control whether flashlight effects view models.
- Light Not PVS Culled (lightnotpvsculled) <boolean> (only in
)
- Disable PVS culling optimization for this light (you shouldn't do this unless it's explicitly causing problems).
- Enable Volumetrics (volumetric) <boolean> (only in
)
- Whether or not to use volumetrics for this projected texture.
- Volumetric Intensity (volumetricintensity) <float> (only in
)
- Defines the intensity of the volumetrics. (Default is 1. Can go above; no strict limit)
Inputs

TurnOn
, TurnOff
and FOV
are present.- TurnOn
- Turns on the texture.
Confirm:In gmod projected lights always start on even when "enabled" is not checked.
- 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.
- LightWorld <integer >
- Sets Light World. 0 = no, 1 = yes.
- AlwaysUpdateOn (in all games since
) (also in
)
- Turn on per frame updating (for moving lights).
- AlwaysUpdateOff (in all games since
) (also in
)
- Turn off per frame updating (for moving lights).
- SetBrightness <float > (only in
)
- Sets the brightness.
- SetLightStyle <integer > (in all games since
) (also in
)
- Sets an Appearance. (see Appearance keyvalue above for possible values)
- SetPattern <string > (in all games since
) (also in
)
- Sets Custom Appearance. (see Custom Appearance keyvalue above)
- EnableVolumetrics <boolean > (only in
)
- Enables or disables volumetrics.
- SetVolumetricIntensity <float > (only in
)
- Sets the intensity of the volumetrics. (Default is 1. Can go above; no strict limit)
- SetBrightnessScale <float > (only in
)
- Sets the brightness.