Env projectedtexture

From Valve Developer Community
< Zh
Revision as of 17:10, 24 December 2021 by Yakumo koishi (talk | contribs)
Jump to navigation Jump to search
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: Low (sharp, pixelized shadows) 低
  • 1: High (smooth edged shadows) 高
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!
Indicates if this is a simple, non-light casting texture projection.
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
Scale the light color by this brightness.
Color Transition Time (colortransitiontime) <浮点型(en)> (存在于自 AS 以来) Template:Also:zh-cn
Amount of time it takes for a color change to occur. Higher numbers cause faster transitions.
Appearance (style) <choices> (存在于自 传送门2 以来)
Various Custom Appearance presets.
Note.png注意:Requires AlwaysUpdateOn to work.

Template:Light appearances

Custom Appearance (pattern) <字符串(en)> (存在于自 传送门2 以来)
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.
Default Appearance (defaultstyle) <字符串(en)> (存在于自 传送门2 以来)

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错误:Non-functional.无效  [todo tested in ?]
LightWorld <整数(en)>
设置 Light World. 0 = no, 1 = yes.
AlwaysUpdateOn  (存在于自 异形丛生 以来)
Turn on per frame updating (for moving lights).
AlwaysUpdateOff  (存在于自 异形丛生 以来)
Turn off per frame updating (for moving lights).
LightColor <color255(en)> (存在于自 异形丛生 以来)
Change the Light Color.
SetLightStyle <整数(en)> (存在于自 传送门2 以来)
设置 an Appearance. (see Appearance keyvalue above for possible values)
SetPattern <字符串(en)> (存在于自 传送门2 以来)
设置 Custom Appearance. (see Custom Appearance keyvalue above)
SetNearZ <浮点型(en)> (存在于自 传送门2 以来)
设置 NearZ.
SetFarZ <浮点型(en)> (存在于自 传送门2 以来)
设置 FarZ.


输出

Base/基础:

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