精灵图
< Zh
Jump to navigation
Jump to search
在 金源和
起源引擎中,精灵图是通过特殊几何处理技术渲染的世界对象。其本质是(静态或动态的)2D图像,但在"法线"视角(即垂直于其表面)观看时会呈现3D效果。关键技术在于确保玩家始终以"法线"视角观察精灵图,通常需要通过旋转精灵图使其始终朝向玩家。显然在多人游戏中这种世界空间旋转不适用,因此仅在玩家视图 中进行旋转。
尽管应用受限,但精灵图的渲染开销远低于模型 或笔刷 结构,并能实现某些3D建模难以完成的效果:
- 光照: 精灵图不能投射或接收任何阴影 ,也不支持Cubemap反射
- 物理: 精灵图不与任何物体产生碰撞
注意:在GoldSrc 中,cycler_sprite 实体可以设置碰撞(简单包围盒),但该实体存在缺陷,不建议在正式版本中使用。应改用CLIP笔刷或模型


精灵图实体
GoldSrc | Source |
放置规范
待完善: ...通用使用指南...在Hammer中配置精灵图实体的方法
创建指南
待完善: 精灵图设计与实现规范清单
- 设计原则:
- 图像本身已呈现三维物体特征
- 动画持续变化或表现旋转效果
- 物体从多视角观察外观相似(如球形物体)
- 观察者可接受物体仅呈现单一视角(如小型植物或树叶)
- 精灵图存在时间短暂,设为无碰撞,玩家无法近距离观察
- SPR 文件格式...
- 使用透明纹理时,必须重启Hammer后再编译。Hammer对新精灵图纹理的加载不完整,可能导致透明显示异常
- 精灵图纹理中任何灰度值(RGB相同)都可能被识别为透明通道。虽未全面测试,但已在light_glow01等案例中验证
- VTF:编译参数 "clamps", "clampt"。注:env_sprite_oriented 实体的#angles参数...
- VMT:精灵图着色器
$spriteorientation着色器参数

- parallel_upright (0)
- 类平行模式,但绕Z轴不旋转
- 应用案例:fire1, fire2等火焰系列纹理
- facing_upright (1)
- 类平行模式,但基于世界原点而非相机旋转
- 未使用[证实]
- vp_parallel (2)
- 始终朝向相机旋转
- 最常用模式 待完善: 补充实际案例
- 最常用模式
- oriented (3)
- 在地图编辑器中指定固定方向
- 应用案例:flatframe等平面框架纹理
vp_parallel_oriented (4)
- 平行与定向模式的结合
- 应用案例:plasma, smoke等粒子效果
示例:sprites/glow_test02.vmt
(来自Half-Life 2 )
"Sprite"
{
"$spriteorientation" "vp_parallel"
"$spriteorigin" "[ 0.50 0.50 ]"
"$basetexture" "sprites/glow_test02"
"Proxies" { "lampbeam" {} }
}
自定义精灵图示例
"Sprite"
{
"$basetexture" "sprites/turret_rebel"
"$spriteorientation" "vp_parallel"
"$spriteorigin" "[ 0.50 0.50 ]"
"$translucent" "1"
"$nocull" "1"
"$vertexcolor" "1"
"$vertexalpha" "1"
}

