材质编译标志

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)

存在多个以%符号而非$开头的特殊[[Zh/

Category:List of Shader Parameters|着色器参数]](en)。这些参数被编译工具读取以改变其所附着面或笔刷的属性。大多数用于生成特殊的tools/纹理,但也可用于其他材质。

除特别说明外,大多数标志都是布尔(en)属性。

详见工具纹理(en)了解各材质属性的详细信息。

PlacementTip.png示例:
LightmappedGeneric
{
 $basetexture developer/custom_clip
  %compileclip 1
}
Note.png注意:与着色器参数一样,编译标志的名称区分大小写:%compileclip 1%CompileClip 1效果相同。
Note.png注意:这些标志关联着存储在BSP中并可存入VMF的内容和表面标志;详见BSP标志(en)
待完善: DeathByNuke的VBSP(en)包含%CompileChopLow%CompileChopHigh%CompileChopAll,这些参数影响笔刷面接触其他笔刷面时的分割方式;需补充说明。
待完善: 需单独页面说明起源引擎2的VMAT(en)属性,这是编译标志的继承者。

独占标志

每个材质只能设置下列标志中的一个。
除非可用性栏特别说明,否则所有标志在所有起源引擎分支中都可用。

裁剪类

VMT标志 BSP标志(en)分配 出现于VMT 可用性 描述
%CompileClip(en) CONTENTS_PLAYERCLIP
CONTENTS_MONSTERCLIP
SURF_NODRAW
SURF_NOLIGHT
移除 SURF_BUMPLIGHT
toolsclip 使笔刷仅阻挡玩家(en)NPC(en)。等效于%PlayerClip%CompileNPCClip的组合。
%CompileNPCClip(en) CONTENTS_MONSTERCLIP
SURF_NODRAW
SURF_NOLIGHT
移除 SURF_BUMPLIGHT
toolsnpcclip 使笔刷仅阻挡NPC(en)。隐含NoLight和NoDraw。
Note.png注意:反恐精英:全球攻势会阻挡机器人(en),尽管它们属于玩家(en)
%PlayerClip(en) CONTENTS_PLAYERCLIP
SURF_NODRAW
SURF_NOLIGHT
移除 SURF_BUMPLIGHT
toolsplayerclip 使笔刷仅阻挡玩家(en)
%CompilePlayerControlClip(en) CONTENTS_DETAIL
CONTENTS_MIST
SURF_NODRAW
SURF_NOLIGHT
移除 SURF_BUMPLIGHT
toolscontrolclip 起源2007 不确定原设计用途。常见与func_vehicleclip配合使用。
材质还使用$surfaceprop player_control_clip
%CompileGrenadeClip(en) CONTENTS_DETAIL
CONTENTS_GRENADECLIP
SURF_NODRAW
SURF_NOLIGHT
移除 SURF_BUMPLIGHT
toolsgrenadeclip 反恐精英:全球攻势 使笔刷仅阻挡手榴弹。
%CompileDroneClip(en)
证实:可能类似%CompileGrenadeClip,但使用CONTENTS_DRONECLIP替代CONTENTS_GRENADECLIP。
toolsdroneclip (存在于自 反恐精英:全球攻势CS:GO Danger Zone 以来) 使笔刷仅阻挡无人机。
%TeamClip(en)
证实:可能同%PlayerClip,但增加CONTENTS_TEAM1或CONTENTS_TEAM2。
toolsplayerclip_teamone
toolsplayerclip_teamtwo
(存在于 Insurgency[证实] Day of Infamy 之中) 使笔刷仅阻挡特定队伍。与其他编译参数不同,这不是布尔值,而是取值为1或2的整数。

其他

VMT标志 BSP标志(en)分配 出现于VMT 可用性 描述
%Compile2DSky(en) SURF_SKY
SURF_SKY2D
SURF_NOLIGHT
移除 SURF_BUMPLIGHT
toolsskybox2d 使表面仅渲染2D天空盒(en),同时发射light_environment光照。
%CompileFog(en) none ToolsFog None 可能是废弃标志,目前未发现实用价值。
%CompileHint(en) SURF_NODRAW
SURF_NOLIGHT
SURF_HINT
移除 SURF_BUMPLIGHT
toolshint 使表面提示切割可视区域(en)。隐含NoLightNoDraw
%CompileNoChop(en) SURF_NOCHOP 阻止为光照贴图细分表面("切割(en)")。也影响表面转换为三角形的方式。使用此参数的笔刷面将被限制为31x31 luxels。
%CompileNoLight(en) SURF_NOLIGHT
移除 SURF_BUMPLIGHT
nolight 异形丛生

起源2013

禁用笔刷面的光照贴图生成。适用于不需要光照信息或始终不可见的材质。水材质上禁用此功能。UnlitGeneric(en)材质无需此参数。
Icon-Important.png重要:Hammer++ Hammer++光照预览中无效
Icon-Important.png重要:与%compileWater不兼容
%CompileNoShadows(en) SURF_NOSHADOWS (存在于 Slammin' Source Map Tools 之中)

(也存在于 MapbaseGarry's Mod 之中)

阻止动态阴影(en)投射到表面。
%CompileOrigin(en) CONTENTS_ORIGIN
CONTENTS_DETAIL
SURF_NODRAW
SURF_NOLIGHT
移除 SURF_BUMPLIGHT
toolsorigin [Obsolete-notext.png 已弃用] 设置笔刷实体的原点(origin键值),用于旋转等目的。
继承自金源ORIGIN(en)。仍有效但不再必要,因为VBSP(en)已支持origin键值且可在Hammer Hammer 4.x中直接可视化。
%CompileSkip(en) SURF_NODRAW
SURF_NOLIGHT
SURF_SKIP
移除 SURF_BUMPLIGHT
toolsskip 编译时移除表面,将笔刷转为平面集合。
%CompileSky(en) SURF_SKY
SURF_NOLIGHT
移除 SURF_BUMPLIGHT
toolsskybox 使表面渲染(2D/3D)天空盒(en)并发射light_environment光照。
%CompileTrigger(en) SURF_NOLIGHT
SURF_TRIGGER
移除 SURF_BUMPLIGHT
toolstrigger 使笔刷适用于触发器(en)。隐含%CompileNoLight。若使用-nodrawtriggers,还会分配SURF_NODRAW。

叠加标志

除非已设置上述独占标志,否则可对同一材质应用多个下列标志。
除非可用性栏特别说明,否则所有标志在所有起源引擎分支中都可用。

VMT标志 BSP标志(en)分配 出现于VMT 可用性 描述
%CompileBlockLOS(en) CONTENTS_BLOCKLOS toolsblocklos 使笔刷仅阻挡NPC(en)视线(en)
Note.png注意:反恐精英:全球攻势中对机器人(en)也有效。
%CompileDetail(en) CONTENTS_DETAIL 强制笔刷不再切割可视区域(en),类似func_detail
%CompileInvisible(en) CONTENTS_GRATE
SURF_NODRAW
SURF_NOLIGHT
移除 CONTENTS_SOLID
移除 SURF_BUMPLIGHT
toolsinvisible %CompileNoDraw + %CompilePassBullets的快捷方式。
%CompileKeepLight(en) none 指示编译器不设置SURF_NOLIGHT:

1. 当使用-xbox VBSP参数且使用了%CompileWater时。 2. 若着色器设为Water(en)(求生之路2之前)或UnlitGeneric(en)时。

%CompileLadder(en) CONTENTS_LADDER toolsladder 使笔刷可作为梯子使用,无需绑定到func_ladder
可应用于任何材质,如metal/metalladder.vmt创建无需模型的简易梯子。也可添加%compilenodraw使其不可见。
%CompileNoDraw(en) SURF_NODRAW
SURF_NOLIGHT
移除 SURF_BUMPLIGHT
toolsnodraw 使笔刷行为类似tools/toolsnodraw
%CompileNonSolid(en) CONTENTS_OPAQUE
移除 CONTENTS_SOLID
使笔刷对所有物体非固体。笔刷所有面都必须设置%CompileNonSolid才能使笔刷非固体。
Icon-Bug.png错误:求生之路2 用于固体笔刷时材质将不可见。
%CompilePassBullets(en) CONTENTS_GRATE
移除 CONTENTS_SOLID
使笔刷表现为栅格,允许子弹穿过但阻挡其他物体。适用于 foliage 或金属栅格。
Icon-Bug.png错误:军团要塞2中允许爆炸穿过但不允许子弹穿过。
%CompileTeam(en) CONTENTS_TEAM1

CONTENTS_TEAM2
climb_versus 求生之路系列求生之路系列 决定该工具纹理影响哪支队伍。与其他编译参数不同,这不是布尔值,而是取值为1或2的整数。
%CompileWater(en) CONTENTS_WATER
SURF_WARP
SURF_NOSHADOWS
SURF_NODECALS
移除 CONTENTS_SOLID
移除 CONTENTS_DETAIL
将笔刷标记为(en)类材质。使其非固体,允许游泳等。
%CompileWet(en) SURF_WET 起源2007 [Obsolete-notext.png 已弃用] 设置未使用的遗留Quake II Quake II标志(最终被SURF_NOPORTAL取代);建议改用表面属性(en)
%CompileSlime(en) CONTENTS_SLIME
SURF_NODECALS
移除 CONTENTS_SOLID
移除 CONTENTS_DETAIL
同%CompileWater,但使用绿色溅射粒子。
Icon-Bug.png错误:求生之路2 %CompileSlime使用默认水溅射粒子。
%HotSurface(en) SURF_NOPORTAL 反恐精英:全球攻势[证实]
%NoPortal(en) SURF_NOPORTAL toolsblack_noportal 起源2007 传送门(系列) 使纹理不可传送,除非使用转换凝胶(en)
%NoPaint(en) SURF_NODECAL
(别名 SURF_NOPAINT)
传送门2 使材质不能被凝胶(en)喷涂。隐含$nodecal
%CompileStairs(en) [证实] toolsstairs 基建危机 使笔刷可在63.4349488°坡度内通行(通常为45°)。

其他%参数

少数其他"着色器参数"以%开头,但不属于"编译标志"。

键名 参数类型 可用性 描述
%tooltexture(en) 纹理(en) 替代$basetexture(en)用于:
  • Hammer Hammer中的纹理缩略图
  • Hammer游戏内的笔刷和位移UV计算[证实]
%notooltexture(en) 布尔(en) (存在于 Hammer++ 之中) Hammer用此参数在纹理浏览器中隐藏材质。适用于无法正确作用于笔刷或位移的纹理。
%keywords(en) 字符串(en) 用于帮助筛选Hammer纹理浏览器中的纹理。逗号分隔。
%alphatexture(en) 纹理(en) (存在于 Garry's Mod 之中) 用于投射纹理阴影(en)而非$basetexture(en),即使未设置$alphatest(en)和/或$translucent(en)