Env projectedtexture/zh

来自Valve Developer Community
跳转至: 导航搜索

它投射一个纹理作为一个动态光源,可以影响地图内所有的物体。还可以选择使用阴影贴图。 投射纹理不像其他光照实体的光照一样是预先生成的,这种光是在游戏内实时计算的,地图本身不需要经过VRAD处理就可以使用。

Warning.png警告:这是起源里最吃配置的实体,谨慎使用


Blank image.png待完善: This template is currently using deprecated suf or {{Lang}}-based translations. Please use the main {{Code class}} instead, which uses {{Autolang}}.

在源代码中,它由 class CEnvProjectedTexture 代表,定义于 env_projectedtexture.cpp


注意事项与Bug修复

问题 受影响的游戏 修复/解决方案 备注
由于着色器缺失,地层起源 地层起源中的体积光选项暂不可用 地层起源 地层起源
官方起源游戏只能同时渲染一个ShadowMap 官方起源游戏/原始Source SDK Base 2013源代码 参照此教程来修改/移除此限制 以下游戏为特例:
  • Garry's Mod: 9 (可使用启动参数-numshadowtextures #调整)
  • 地层起源: 8
  • Mapbase: 4 (可使用启动参数-numshadowtextures #调整)
  • 基建危机: 8
投射的纹理需要勾选Clamp S,Clamp T和Clamp All Flags,以避免平铺时出现问题,另外请注意,可直接指定VTF而无需VMT 所有起源游戏
仅在阴影细节为“高”时才可渲染投射的阴影
传送门2反恐精英:全球攻势的所有游戏起源 如果你的设置界面里阴影细节没有显示选项“高”,请在游戏启动参数里添加-force_vendor_id 0x10DE -force_device_id 0x1180
在多人游戏中,mat_supportflashlight必须设置为1才能使用手电筒 所有起源多人游戏 默认情况下,这些指令在Team Fortress 2被禁用,在不进行特殊设置的情况下无法使用该实体
Viewmodel不会接收来自投射纹理的光照或阴影 Garry's Mod传送门2外的所有起源游戏 env_projectedtexture/fixes#Enabling shadow receiving on the view model
Confirm.png证实: 黑山是否修复了此问题,其中大量使用了动态阴影
部分英伟达显卡(尤其是使用最新驱动程序或2010中后期以来的所有较新Nvidia Nvidia显卡)在某些纹理上呈现大/小白色斑点、方块或噪点(有时还会闪烁)。 传送门2Garry's Mod,也可能存在于所有起源游戏[证实]. 移除($bumpmap$ssbump)或$detail textures),或使用mat_bumpmap 0(来禁止渲染法线贴图),或以Vulkan模式运行游戏(启动参数里添加-vulkan). 复原此问题的视频(需要翻墙).
另一个在Gmod中的复原GIF(点击以查看GIF):
一个在 Garry's Mod中复原此问题的GIF.
在DirectX 9模式下运行时,无论阴影细节设置如何,某些显卡都不会正确渲染投射纹理投射出的阴影,其阴影会穿过固体和模型 传送门2 通过启动参数-vulkan来以Vulkan模式运行游戏 也影响所有Directx 9模式下的模组,已在传送门 2:社区特供版Portal: Revolution中修复
原始代码中,实体绑定无法使用 Source SDK Base 2013 Env_projectedtexture/fixes#Fixing Parenting
投射的光照没有与env_cascade_light的平滑过渡 CS:GO
SpotlightTexture在部分游戏中被禁用 传送门 2 引擎分支CSGO 引擎分支 已在地层起源中修复
Source 2007/2009 Bugs
Note.png注意:the way that this page was structured before made it easy to put newly discovered bugs in the wrong category, so some of the following bugs may or may not be in modern titles.
不接受Hammer中的纹理键值,将始终使用手电筒纹理 起源2007, 起源2009, 起源 多人分支 使用SpotlightTexture输入来指定纹理

Env_projectedtexture/fixes#Fix_configurable_texture_value_in_Hammer

此实体无法瞄准另一个实体 起源2007, 起源2009, 起源 多人分支 [证实] env_projectedtexture/fixes#Fixing targeting
模型无法正确接收自身的阴影 起源2007, 起源2009, 起源 多人分支 [证实] 创建法线贴图,即便是平面法线也可以,例如🖿dev/flat_normal.vtf.
传送门中,如果该实体与传送门重叠会出现问题 传送门
Confirm.png证实: 是否已在最新版的传送门中修复?

实体属性(Flags)

  • 1: Enabled(默认开启)
  • 2: Always Update(始终更新,用于移动光源)

(存在于自 异形丛生 以来) (也存在于 Mapbase 中)

键值

Target (target) <targetname> | 目标名
跟着目标移动,确保勾选 Always update
FOV (lightfov) <float> | 浮点型
投射的fov范围
证实:该键值似乎在Alien Swarm中没有效果
NearZ (nearz) <float> | 浮点型
比此距离近的物体不接收投射。
FarZ (farz) <float> | 浮点型
同上,但是比此距离远。
Enable Shadows (enableshadows) <boolean> | 布尔值
投射出来的阴影是否开启。. 0 = no, 1 = yes.
Shadow Quality (shadowquality) <choices>
阴影质量
  • 0: 低 (锐利的、像素化的阴影)
  • 1: 高 (边缘平滑的阴影)
Light Only Target (lightonlytarget) <boolean> | 布尔值
只有目标才行收到效果.
Light World (lightworld) <boolean> | 布尔值
是否影响世界上的静态几何. 0 = no, 1 = yes.
Light Color (lightcolor) <color255简体中文> + <int> | 整数
颜色与强度
Camera Space (cameraspace) <integer> | 整数
角度,对于摄像机.
Texture Name (texturename) <string简体中文> | 字符串 不存在于FGD!
该实体投射的纹理。必须是VTF文件而不是VMT,相对于/materials。
Texture Frame (textureframe) <integer> | 整数 不存在于FGD!
材质帧数,如果是动态材质才行
Simple Projection (simpleprojection) <boolean> | 布尔值 (存在于自 异形丛生 以来) 不存在于FGD!
表示这是否是一个简单的、不产生光照的投射纹理。
Simple Projection Size (projection_size) <float> | 浮点型 (存在于自 异形丛生 以来) 不存在于FGD!
简单投射的大小
Simple Projection Rotation (projection_rotation) <float> | 浮点型 (存在于自 异形丛生 以来) 不存在于FGD!
简单投射的旋转角度
Brightness Scale (brightnessscale) <float> | 浮点型 (存在于自 异形丛生 以来) (也存在于 Mapbase 中)
按该亮度缩放光照颜色。由于投射纹理的亮度值只能是0到255,所以使用Brightness Scale键值可以使投影纹理比255更亮。
证实:是否仅在Mapbase里需要通过该键值使用更高的亮度?
Color Transition Time (colortransitiontime) <float> | 浮点型 (存在于自 异形丛生 以来) (也存在于 Mapbase 中)
改变颜色所需的时间。值越高速度越快。
Appearance (style) <choices> (存在于自 传送门2 以来)
各种自定义外观预设。
Note.png注意:需要Flags Always Update被勾选以使其正常工作
Light Appearances
Literal Value Description Sequence Preview
0 Normal m Sequence 0.gif
10 Fluorescent flicker mmamammmmammamamaaamammma Sequence 10.gif
2 Slow, strong pulse abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba Sequence 2.gif
11 Slow pulse, noblack abcdefghijklmnopqrrqponmlkjihgfedcba Sequence 11.gif
5 Gentle pulse jklmnopqrstuvwxyzyxwvutsrqponmlkj Sequence 5.gif
1 Flicker A mmnmmommommnonmmonqnmmo Sequence 1.gif
6 Flicker B nmonqnmomnmomomno Sequence 6.gif
3 Candle A mmmmmaaaaammmmmaaaaaabcdefgabcdefg Sequence 3.gif
7 Candle B mmmaaaabcdefgmmmmaaaammmaamm Sequence 7.gif
8 Candle C mmmaaammmaaammmabcdefaaaammmmabcdefmmmaaaa Sequence 8.gif
4 Fast strobe mamamamamama Sequence 4.gif
9 Slow strobe aaaaaaaazzzzzzzz Sequence 9.gif
12 不存在于FGD! Underwater light mutation mmnnmmnnnmmnn Sequence 12.gif
Custom Appearance (pattern) <string简体中文> | 字符串 (存在于自 传送门2 以来)
为该光照实体设置自定义的外观模式。图案格式是一串字符,其中a是全暗,z是全亮。即aaggnnttzz会是一个从黑暗到光明的阶梯式淡入淡出。
Default Appearance (defaultstyle) <string简体中文> | 字符串 (存在于自 传送门2 以来)
Enable Volumetrics (volumetric) <boolean> | 布尔值 (仅存在于 传送门 2:社区特供版 中)
是否为该投射纹理启用体积光
Volumetric Intensity (volumetricintensity) <float> | 浮点型 (仅存在于 传送门 2:社区特供版 中)
定义体积光的强度,(默认值为1,可以使用更高的值,没有严格限制)

Base/基础:
Name (targetname) <string简体中文> | 字符串
其他实体用来指代该实体的名称。
Parent简体中文 (parentname) <targetname> | 目标名
实体的父级实体,该实体可以与父实体保持移动偏移。名称后面可以添加一个附属点,以逗号隔开。 (parentname [targetname],[attachment]
Tip.png提示:转换至下一张地图的实体关系会依然存在。
Tip.png提示:一些不适合做父实体的实体可能难以运行,利用phys_constraint可以解决。
Origin (X Y Z) (origin) <coordinates>
实体处于世界中的位置,旋转实体会以实体坐标原点旋转。
Note.png注意:Hammer 不会仅在编辑器中相应地移动实体。
Pitch Yaw Roll (X Y Z) (angles) <angle>
实体在世界中的方位,Pitch围绕X轴旋转,可以称为俯仰角。Yaw围绕Z轴旋转,可以称为偏航角,roll围绕Y轴旋转。
Note.png注意:尽管 Hammer 不显示新角度,但其仍然适用于固实体。
Classname (classname) <string简体中文> | 字符串 不存在于FGD!
确定实体之前它生成的特征。
Tip.png提示:使用AddOutput输入更改 Classname 仍然会影响游戏的代码,例如使类名与 S_PreserveEnts 列表中的一个元素匹配将使实体在新一轮中持续存在!
Flags (spawnflags) <integer> | 整数 不存在于FGD!
实体所具有的标志/标签,依实体所具有而定。
Effects (effects) <integer> | 整数 不存在于FGD!
要使用的效果标志的组合。
Entity Scripts简体中文 (vscripts) <scriptlist> | 脚本列表 (存在于自 求生之路2 以来)
在所有实体生成后执行的 VScript简体中文 文件(无文件扩展名)的空格分隔列表。这些脚本都在同一个脚本范围内执行,以后的脚本会覆盖任何相同的变量和函数。
Thinker Function简体中文 (thinkfunction) <string简体中文> | 字符串 (存在于自 求生之路2 以来)
此实体脚本中的函数名称,该函数将在脚本持续时间内每 100 毫秒(每秒 10 次)自动调用一次。它可用于创建计时器或模拟自主行为。返回值(如果存在)将设置下一次调用之前的时间。尽量避免在此函数中进行昂贵的操作,因为它可能会导致性能问题。
Lag Compensation (LagCompensate) <boolean> | 布尔值 (存在于自 求生之路2 以来) 不存在于FGD!
设置为以延迟补偿此实体。应该非常谨慎地使用!
Is Automatic-Aim Target (is_autoaim_target) <boolean> | 布尔值 (存在于自 反恐精英:全球攻势 以来) 不存在于FGD!
如果设置为 1,当实体位于十字准线下方时,该实体将减慢控制台和操纵杆控制器的瞄准移动速度。


输入

Note.png注意:在部分游戏的FGD里,只有TurnOnTurnOffFOV被写入FGD中
TurnOn
开启。
TurnOff
关闭
FOV<float> | 浮点型
设置 FOV.
EnableShadows<boolean> | 布尔值
设置是否显示阴影 0 = no, 1 = yes.
SpotlightTexture<string简体中文> | 字符串
设置射灯材质.
Target<string简体中文> | 字符串
指定一个新的 目标实体 .
CameraSpace<boolean> | 布尔值
设置 Camera Space.
LightOnlyTarget<boolean> | 布尔值
设置 Light Only Target.
Icon-Bug.png错误:无效输入
LightWorld<integer> | 整数
设置 Light World. 0 = no, 1 = yes.
AlwaysUpdateOn (存在于自 异形丛生 以来)
开启每帧更新(用于移动光源)。
AlwaysUpdateOff (存在于自 异形丛生 以来)
关闭每帧更新(用于移动光源)。
LightColor<color255简体中文> (存在于自 异形丛生 以来)
设置光照颜色.
SetLightStyle<integer> | 整数 (存在于自 传送门2 以来)
为该实体设置一个外观。(详见上方键值章节的“Appearance”部分)
SetPattern<string简体中文> | 字符串 (存在于自 传送门2 以来)
设置自定义外观。(详见上方键值章节的“Custom Appearance”部分)
SetNearZ<float> | 浮点型 (存在于自 传送门2 以来)
设置 NearZ.
SetFarZ<float> | 浮点型 (存在于自 传送门2 以来)
设置 FarZ.
SetVolumetricIntensity<float> | 浮点型 (仅存在于 传送门 2:社区特供版 中)
设置体积光的强度。(默认值为1,可以使用更高的值,没有严格限制)
SetBrightnessScale<float> | 浮点型 (仅存在于 传送门 2:社区特供版 中)
设置光照强度

Base:
AddContext<string简体中文> | 字符串
添加到实体的 Response Contexts/响应上下文列表。格式是<key>:<value>
AddOutput<string简体中文> | 字符串
在此实体上分配新的键值/输出。对于键值,有些依赖于额外的必要代码来运行,如果它只是通过这个输入改变就行不通。必须遵循严格的格式:
语法:

ClearContext
从此实体的列表中删除所有上下文。
ClearParent
从移动层次结构中删除该实体,使其可以自由移动。
FireUser1FireUser4
触发相应的OnUser输出;详见 User Inputs and OutputsEnglish
Kill
从这个世界中删除此实体。
KillHierarchy
功能类似Kill,尽管此实体与其父实体都被删除了,但比Kill快一点。
RemoveContext
从实体列表删除一个上下文。名字应与现有上下文进行匹配。
SetParent<string简体中文> | 字符串
跟随此实体移动,详见 实体层级(依赖关系)
SetParentAttachment<string简体中文> | 字符串
更改此实体到其父级上的特定附属English点。实体将传送,以至于其骨骼方位English与附属匹配。在使用此输入前必须设置好实体的父实体。
SetParentAttachmentMaintainOffset<string简体中文> | 字符串
同上,但没有传送。在接收到输入时,实体保持其相对于附件的位置。
Use 不存在于FGD!
与调用 +use English 的玩家相同[玩家按 +use(使用,默认E按钮)];大多数情况下没有影响。
DispatchResponse<string简体中文> | 字符串 不存在于FGD!
向实体发送一个上下文。 详见 ResponseEnglishConceptEnglish.
DispatchEffect<string简体中文> | 字符串 (自从 求生之路移除) 不存在于FGD!
在实体的原点坐标设置一个特定效果;参见 List of Client EffectsEnglish。自从求生之路 求生之路后由粒子系统取代。
RunScriptFile<script> | 脚本 (存在于自 求生之路2 以来)
从硬盘执行一个 VScript 脚本文件,不带文件后缀名。会合并接收实体的脚本域。
RunScriptCode<string简体中文> | 字符串 (存在于自 求生之路2 以来)
在接收输入的实体范围内执行一串 VScript 源代码。通过控制台触发时可能需要字符串引用。
Icon-Bug.png错误:在 Hammer 中,使用带有字符串的参数会破坏 VMFEnglish 文件的结构,使下一个 Hammer 会话无法查看该文件。
修复: 使用文本编辑器手动删除带有字符串的参数。
CallScriptFunction<string简体中文> | 字符串 (存在于自 求生之路2 以来) 不存在于FGD!
在接受实体脚本域上执行一段 VScript 函数。
SetLocalOrigin<coordinates> (存在于自 异形丛生 以来) 不存在于FGD!
将此实体设置到地图中的某个位置。如果此实体是某实体父级,那么它的子级也会随着移动。
SetLocalAngles<angles> (存在于自 异形丛生 以来) 不存在于FGD!
设置该实体的角度。

输出

Base/基础:

OnUser1OnUser4
这些输出将分别响应于 FireUser1FireUser4 输入。 详见 User Inputs and Outputs
OnKilled (存在于 Left 4 Dead series 之中)
当实体被Kill输入时响应此输出。