Zh/Env projectedtexture: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 61: Line 61:
{{KV:zh-cn|Appearance (style)|choices|since=P2|各种自定义外观预设。{{Note:zh-cn|需要Flags <code>Always Update</code>被勾选以使其正常工作}} }}
{{KV:zh-cn|Appearance (style)|choices|since=P2|各种自定义外观预设。{{Note:zh-cn|需要Flags <code>Always Update</code>被勾选以使其正常工作}} }}
{{light appearances}}
{{light appearances}}
{{KV:zh-cn|Custom Appearance (pattern)|string|since=P2|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. <code>aaggnnttzz</code> would be a steppy fade in from dark to light.}}
{{KV:zh-cn|Custom Appearance (pattern)|string|since=P2|为该光照实体设置自定义的外观模式。图案格式是一串字符,其中'''a'''是全暗,'''z'''是全亮。即<code>aaggnnttzz</code>会是一个从黑暗到光明的阶梯式淡入淡出。}}
{{KV:zh-cn|Default Appearance (defaultstyle)|string|since=P2|}}
{{KV:zh-cn|Default Appearance (defaultstyle)|string|since=P2|}}
{{KV:zh-cn|Enable Volumetrics|boolean|only={{P2CE}}|intn=volumetric|是否为该投射纹理启用体积光}}
{{KV:zh-cn|Volumetric Intensity|float|only={{P2CE}}|intn=volumetricintensity|定义体积光的强度,(默认值为1,可以使用更高的值,没有严格限制)}}
{{KV BaseEntity:zh-cn|css=1}}
{{KV BaseEntity:zh-cn|css=1}}


==输出==
==输入==
{{note:zh-cn|In some [[FGD]]s, only <code>TurnOn</code>, <code>TurnOff</code> and <code>FOV</code> are present.在一些hammer内只有TurnOn,TurnOff和FOV3个输出被显示了。}}
{{note:zh-cn|在部分游戏的[[FGD]]里,只有<code>TurnOn</code><code>TurnOff</code><code>FOV</code>被写入FGD中}}
{{IO:zh-cn|TurnOn|开启。}}
{{IO:zh-cn|TurnOn|开启。}}
{{IO:zh-cn|TurnOff|关闭}}
{{IO:zh-cn|TurnOff|关闭}}
Line 76: Line 78:
{{IO:zh-cn|LightOnlyTarget|param=boolean|设置 '''Light Only Target'''.
{{IO:zh-cn|LightOnlyTarget|param=boolean|设置 '''Light Only Target'''.


:{{bug|Non-functional.无效}}}}
:{{bug|无效输入}}}}
{{IO:zh-cn|LightWorld|param=int|设置 '''Light World'''. 0 {{=}} no, 1 {{=}} yes.}}
{{IO:zh-cn|LightWorld|param=int|设置 '''Light World'''. 0 {{=}} no, 1 {{=}} yes.}}
{{IO:zh-cn|AlwaysUpdateOn|since=AS|Turn on per frame updating (for moving lights).}}
{{IO:zh-cn|AlwaysUpdateOn|since=AS|开启每帧更新(用于移动光源)。}}
{{IO:zh-cn|AlwaysUpdateOff|since=AS|Turn off per frame updating (for moving lights).}}
{{IO:zh-cn|AlwaysUpdateOff|since=AS|关闭每帧更新(用于移动光源)。}}
{{IO:zh-cn|LightColor|since=AS|param=color255|Change the '''Light Color'''.}}
{{IO:zh-cn|LightColor|since=AS|param=color255|设置'''光照颜色'''.}}
{{IO:zh-cn|SetLightStyle|param=integer|since=P2|设置 an '''Appearance'''. (see Appearance keyvalue above for possible values)}}
{{IO:zh-cn|SetLightStyle|param=integer|since=P2|为该实体设置一个'''外观'''。(详见上方键值章节的“Appearance”部分)}}
{{IO:zh-cn|SetPattern|设置 '''Custom Appearance'''. (see Custom Appearance keyvalue above)|param=string|since=P2}}
{{IO:zh-cn|SetPattern|设置'''自定义外观'''。(详见上方键值章节的“Custom Appearance”部分)|param=string|since=P2}}
{{IO:zh-cn|SetNearZ|设置 '''NearZ'''.|param=float|since=P2}}
{{IO:zh-cn|SetNearZ|设置 '''NearZ'''.|param=float|since=P2}}
{{IO:zh-cn|SetFarZ|设置 '''FarZ'''.|param=float|since=P2}}
{{IO:zh-cn|SetFarZ|设置 '''FarZ'''.|param=float|since=P2}}
{{I BaseEntity}}
{{IO:zh-cn|SetVolumetricIntensity|param=float|设置体积光的强度。(默认值为1,可以使用更高的值,没有严格限制)|only={{P2CE}}}}
{{IO:zh-cn|SetBrightnessScale|param=float|设置光照强度|only={{P2CE}}}}
{{I BaseEntity:zh-cn}}


==输出==
==输出==

Revision as of 18:21, 24 December 2021

English (en)中文 (zh)Translate (Translate)

Template:Translate:zh-cn

Env_projectedtexture有着不同的外观
Gmod中投射一个彩色纹理
传送门2大量使用投射纹理作为地图光照
传送门 2:社区特供版在原版传送门2地图上的体积光效果

起源 env_projectedtexture是一个存在于所有的 起源 游戏自从 Template:Name=Half-Life 2: Episode One 以来的点实体。它投射一个纹理作为一个动态光源,可以影响地图内所有的物体。还可以选择使用阴影贴图。 投射纹理不像其他光照实体的光照一样是预先生成的,这种光是在游戏内实时计算的,地图本身不需要经过VRAD处理就可以使用。

Template:Warning:zh-cn


待完善: 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修复

主条目:Env_projectedtexture/fixes
  • V社的游戏仅支持在同一时间内在PVS里渲染一个阴影贴图
Template:Note:zh-cn
Template:Warning:zh-cn
修复:可以遵循该教程修改/删除此限制。
  • 被投射的纹理需要勾选Clamp S, Clamp T and Clamp All Flags,以避免突兀的平铺。以及,投射纹理是直接使用VTF的,不需要VMT
Note.png注意:Gmod中,可以同时有9个启用的env_projectedtextures。你还可以在启动参数中添加-numshadowtextures #以提高上限。 # 是游戏应允许的阴影贴图数量。
Note.png注意:传送门 2:社区特供版将此上限提高到了8
Note.png注意:Mapbase里,你可以同时使用4个投射纹理。 这个上限可以通过启动参数-numshadowtextures #或者gameinfo.txt中的CommandLine部分来增加。
  • 仅当玩家的阴影质量设置为“高”时才能显示投射纹理。如果您的阴影质量设置里不显示这一选项,你可以在游戏的启动参数里添加-force_vendor_id 0x10DE -force_device_id 0x1180来强制显示
  • Note.png注意:反恐精英:全球攻势里,env_projectedtexture产生的阴影在阴影质量设置为“低”时显示
  • 在多人游戏里,mat_supportflashlight必须被设置为1才能让手电筒正常工作,在TF2中,这个指令默认被禁用,故没有特殊修改的话,该实体无法在TF2中使用
  • 手臂模型不会接收来自投射纹理的任何光照和阴影,除了Gmod传送门2。您可以按照该教程修复这个Bug。
Icon-Bug.png错误:在传送门2中,部分英伟达显卡会在某些纹理上呈现白色噪点或方块(老黄出来挨打)。要解决此问题,请移除该纹理的法线贴图($bumpmap或$ssbump)或细节纹理  [todo tested in ?]
描述此bug的视频
Icon-Bug.png错误:在传送门2中,当游戏在DirectX 9模式下运行时,无论阴影质量设置如何,在某些显卡上env_projectedtexture都不会渲染阴影。要解决此问题,请在启动参数添加-vulkan,让游戏在Vulkan模式下运行。  [todo tested in ?]
Icon-Bug.png错误:实体绑定在原版SDK代码中无法使用  [todo tested in ?]
Cpp.png代码修复:可以按照该教程修复此bugEnv_projectedtexture/fixes#Fixing Parenting.
Icon-Bug.png错误:反恐精英:全球攻势投射纹理与env_cascade_light之间没有平滑过渡  [todo tested in ?]

实体属性(Flags)

键值

Target (target) <目标名(en)>
跟着目标移动,确保勾选 Always update
FOV (lightfov) <浮点型(en)>
投射的fov范围
证实:该键值似乎在Alien Swarm中没有效果
NearZ (nearz) <浮点型(en)>
比此距离近的物体不接收投射。
FarZ (farz) <浮点型(en)>
同上,但是比此距离远。
Enable Shadows (enableshadows) <布尔值(en)>
投射出来的阴影是否开启。. 0 = no, 1 = yes.
Shadow Quality (shadowquality) <Choices(en)>
阴影质量
  • 0: 低 (锐利的、像素化的阴影)
  • 1: 高 (边缘平滑的阴影)
Light Only Target (lightonlytarget) <布尔值(en)>
只有目标才行收到效果.
Light World (lightworld) <布尔值(en)>
是否影响世界上的静态几何. 0 = no, 1 = yes.
Light Color (lightcolor) <color255(en) + 整数(en)>
颜色与强度
Camera Space (cameraspace) <整数(en)>
角度,对于摄像机.
Texture Name (texturename) <字符串(en)> 不存在于FGD!
该实体投射的纹理。必须是VTF文件而不是VMT,相对于/materials。
Texture Frame (textureframe) <整数(en)> 不存在于FGD!
材质帧数,如果是动态材质才行
Simple Projection (simpleprojection) <布尔值(en)> (存在于自 AS 以来) 不存在于FGD!
表示这是否是一个简单的、不产生光照的投射纹理。
Simple Projection Size (projection_size) <浮点型(en)> (存在于自 AS 以来) 不存在于FGD!
简单投射的大小
Simple Projection Rotation (projection_rotation) <浮点型(en)> (存在于自 AS 以来) 不存在于FGD!
简单投射的旋转角度
Brightness Scale (brightnessscale) <浮点型(en)> (存在于自 AS 以来) Template:Also:zh-cn
按该亮度缩放光照颜色。由于投射纹理的亮度值只能是0到255,所以使用Brightness Scale键值可以使投影纹理比255更亮。
证实:是否仅在Mapbase里需要通过该键值使用更高的亮度?
Color Transition Time (colortransitiontime) <浮点型(en)> (存在于自 AS 以来) Template:Also:zh-cn
改变颜色所需的时间。值越高速度越快。
Appearance (style) <choices> (存在于自 传送门2 以来)
各种自定义外观预设。Template:Note:zh-cn

Template:Light appearances

Custom Appearance (pattern) <字符串(en)> (存在于自 传送门2 以来)
为该光照实体设置自定义的外观模式。图案格式是一串字符,其中a是全暗,z是全亮。即aaggnnttzz会是一个从黑暗到光明的阶梯式淡入淡出。
Default Appearance (defaultstyle) <字符串(en)> (存在于自 传送门2 以来)
Enable Volumetrics (volumetric) <布尔值(en)> (仅存在于 传送门 2:社区特供版 中)
是否为该投射纹理启用体积光
Volumetric Intensity (volumetricintensity) <浮点型(en)> (仅存在于 传送门 2:社区特供版 中)
定义体积光的强度,(默认值为1,可以使用更高的值,没有严格限制)

Template:KV BaseEntity:zh-cn

输入

Template:Note:zh-cn

TurnOn
开启。
TurnOff
关闭
FOV <浮点型(en)>
设置 FOV.
EnableShadows <布尔值(en)>
设置是否显示阴影 0 = no, 1 = yes.
SpotlightTexture <字符串(en)>
设置射灯材质.
Target <字符串(en)>
指定一个新的 目标实体 .
CameraSpace <布尔值(en)>
设置 Camera Space.
LightOnlyTarget <布尔值(en)>
设置 Light Only Target.
Icon-Bug.png错误:无效输入  [todo tested in ?]
LightWorld <整数(en)>
设置 Light World. 0 = no, 1 = yes.
AlwaysUpdateOn  (存在于自 异形丛生 以来)
开启每帧更新(用于移动光源)。
AlwaysUpdateOff  (存在于自 异形丛生 以来)
关闭每帧更新(用于移动光源)。
LightColor <color255(en)> (存在于自 异形丛生 以来)
设置光照颜色.
SetLightStyle <整数(en)> (存在于自 传送门2 以来)
为该实体设置一个外观。(详见上方键值章节的“Appearance”部分)
SetPattern <字符串(en)> (存在于自 传送门2 以来)
设置自定义外观。(详见上方键值章节的“Custom Appearance”部分)
SetNearZ <浮点型(en)> (存在于自 传送门2 以来)
设置 NearZ.
SetFarZ <浮点型(en)> (存在于自 传送门2 以来)
设置 FarZ.
SetVolumetricIntensity <浮点型(en)> (存在于 传送门 2:社区特供版 之中)
设置体积光的强度。(默认值为1,可以使用更高的值,没有严格限制)
SetBrightnessScale <浮点型(en)> (存在于 传送门 2:社区特供版 之中)
设置光照强度
Base:
AddContext <字符串(en)>
添加到实体的 Response Contexts/响应上下文列表。格式是<key>:<value>
AddOutput <字符串(en)>
在此实体上分配新的键值/输出。对于键值,有些依赖于额外的必要代码来运行,如果它只是通过这个输入改变就行不通。必须遵循严格的格式:
语法:

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

输出

Base/基础:

OnUser1 to OnUser4
这些输出将分别响应于 FireUser1FireUser4 输入。 详见 User Inputs and Outputs
OnKilled  (存在于 求生之路系列求生之路系列 之中)
当实体被Kill输入时响应此输出。