Zh/Source: Difference between revisions
(【WIP】) |
|||
Line 1: | Line 1: | ||
{{ | {{LanguageBar|title=起源(引擎)}} | ||
{{ | {{Source topicon}} | ||
== [ | {{Hierarchy}} | ||
{{ | {{Infobox engine | ||
| title = 起源(引擎) | |||
* | | image = SourceLogoWhite.png | ||
** | | imagewidth = 280px | ||
** {{ | | imagetooltip = 起源的标志 | ||
** | | image2 = Screenshot-CSS-Source_engine_comparison.jpg | ||
* | | imagetooltip2 = {{css|1}}的截图(基于起源) | ||
* | | developer = {{L|Valve|Valve 公司}} | ||
* | | releasedates = 2004年10月7日 | ||
** | | codelang = {{W|icon=0|zh:C++|C++}} | ||
* | | sdk = {{L|SDK Docs|起源 SDK 文档}} | ||
** | | platform = {{Win|1}}、{{Mac|1}}、{{Linux|1}}、{{xbox|1|nt=1}}、{{360|1}}、{{ps3|1}}、{{switch|1}}、{{android|1}}<br><font style="font-size:12px;">'''''注:'''仅 Valve 第一方游戏''</font> | ||
* | | sysreq = | ||
* | | website = [https://web.archive.org/web/20110724220714/http://source.valvesoftware.com/ 官方网站](存档) | ||
* | | links = {{github|ValveSoftware/Source-1-Games|GitHub Issues}}(除 CS:GO 的起源游戏错误报告)<br>{{github|ValveSoftware/source-sdk-2013|起源 SDK 2013 源码}} | ||
** | | license = {{W|icon=0|zh:专有软件|专有}}<br><font style="font-size:12px;">({{src13}}、{{asbranch}} 源码可用于非商业目的)</font> | ||
* | | previousengine = {{Gldsrc|2}} | ||
* | | nextengine = {{Src2|2}} | ||
* | }} | ||
* | |||
** | [[File:Screenshot-CSGO-Source_engine_comparison.jpg|340px|thumb|right|{{csgo|1}}的截图(基于起源的{{L|Counter-Strike: Global Offensive engine branch|最新}}官方分支)]] | ||
** | |||
** | [[File:Apex Legends - Screenshot 5.jpg|340px|thumb|right|{{apex|1}} 宣传图(基于{{L|Titanfall engine branch|深度修改}}的起源分支)featuring DirectX (Direct3D) 11, detailed models and better graphics, plus increased the engine limit, allowing maps to be larger. It also use [[deferred shading]], allowing many dynamic lights to be lit with little to no performance loss.]] | ||
* | |||
<span style="color:white; font-weight: bold;">{{For|about=游戏引擎|起源 SDK 与文档|{{L|SDK Docs|起源 SDK 文档}}|}}</span> | |||
{{src|4}}(Source)是 {{Valve|3.1}} 于2004年推出的 3D 游戏引擎,接替前代{{gldsrc|3.1}}的迭代之作。该引擎凭借物理模拟、AI 系统与图形处理技术的突破性升级,在保持对老旧硬件兼容性的同时,为同时代游戏赋予了革命性的画面表现力。{{hl2|1}}的获奖视觉设计便是其技术实力的最佳印证。作为开放式技术平台,起源不仅服务于 Valve 自家项目,更被第三方厂商与全球{{L|Modification|模组}}开发者广泛采用(延续了金源的社区友好传统),迄今已有超百款游戏基于该引擎开发。引擎历经多次{{LCategory|Source_engine_branches|分支}}迭代,各版本均持续强化图形功能与技术支持。 | |||
尽管{{src2|3.1}}自2015年起已成为 Valve 第一方项目的开发主力,但由于起源2缺乏相对完善的文档支持且对第三方开发者的授权政策相对保守,这款已问世20年的引擎至今仍在模组圈与部分第三方项目中焕发新生,并仍能获得定期的核心功能更新与安全补丁。 | |||
{{Clarify|并非所有起源游戏均集成 {{VAC|1|nt=0}},如 {{Apex Legends|1}}}} | |||
== 功能 == | |||
以下为{{src|4.1|nt=1}}的核心功能清单。请注意:部分新特性可能不适用于早期或后续的起源分支版本,亦或第三方游戏/定制分支。 | |||
若需查阅包含第三方游戏在内的各起源分支版本及其专属新功能说明,请访问{{LCategory|Engine branches|该分类页面}}。 | |||
=== {{LCategory|Programming|渲染器}} === | |||
* 支持{{L|Shader|着色器}}模型(Shader Model)2.0至3.0 | |||
** 部分第三方游戏(如{{tfbranch|3.1}}与{{stratabranch|3.1}})可通过 Direct3D 11 及以上版本实现着色模型4.0+支持 | |||
* {{L|Anti-aliasing|抗锯齿}}支持(MSAA、FXAA、 MLAA、TAA等) | |||
** 各方案特性与优劣对比详见{{L|Anti-aliasing|抗锯齿}}页面 | |||
* 多级各向异性过滤选项 | |||
** 各项异性过滤可显著改善远景纹理清晰度 | |||
** 相较于金源(2013 年前仅支持双/三线性过滤),提供更丰富的过滤模式:双/三线性过滤、2x 至 16x 各项一行过滤 | |||
* 支持前向与{{L|deferred lighting|延迟渲染}}管线 | |||
** 延迟渲染技术可高效处理多光源场景,广泛用于现代游戏 | |||
* 模型与世界支持{{W|icon=0|zh:凹凸贴图|凹凸贴图}}与{{W|icon=0|zh:法线贴图|法线贴图}} | |||
* 使用 {{L|HLSL}} 编写{{L|shader|着色器}} | |||
* 立方体与环境贴图 | |||
** 立方体贴图还支持各向异性过滤 {{csgo|since}} | |||
* 模型的 {{L|$phong|Phong}} 着色 | |||
** 世界笔刷也支持 Phong 着色{{csgo|since}}{{mb|also}} | |||
* 动态光源、顶点光照与{{L|lightmap|光照贴图}}系统,支持闪烁/脉冲等多种光源类型 | |||
* {{L|HDR}} {{since|{{src06}}}} 与 LDR (SDR) 光照 | |||
** LDR 自{{l4dbranch|2}}起弃用(部分游戏如初版 {{dota2|1}} 除外) | |||
* 具有折射、实时环境反射、菲涅尔效应的水体 | |||
** 水还支持{{L|Water (shader)#Special behaviour|流动贴图}} {{l4dbranch|since}} | |||
* 可发射{{L|sprite|精灵}}或{{L|model|模型}}的{{LCategory|Particle System|高级粒子系统}} | |||
* {{L|Dynamic RTT shadow angles in Source 2007|纹理渲染}}阴影技术支持单场景大量角色同屏 {{l4dbranch|since}} {{mb|also|addtext={{xe}}{{dmmm}}}} | |||
* {{L|Func occluder|遮挡实体}}用于可见性剔除 | |||
* 室内外场景 | |||
** 可变形地形系统 | |||
** {{L|3D 天空盒}}扩展视界并为远景添加视差 | |||
** 动态有机物体渲染(植被、树木等) | |||
** {{L|$treeSway|树木摇晃效果}} {{l4dbranch|since}} {{also|{{tf2}}{{xe}}{{gmod}}{{mapbase}}}} | |||
* 曲面细分、漫反射和高光凹凸贴图 | |||
* 实时辐射度光照 | * 实时辐射度光照 | ||
* | * 源自天空盒的实时{{L|env_cascade_light|级联阴影映射}} {{csgo|since}} {{asd|also|addtext={{lw}}{{xe}}}} | ||
* | * 特效包含粒子、光束、体积烟雾、火花、血液,以及雾、雨等环境效果 | ||
* | * 扩展性(Scalability) | ||
* | * {{L|Screen Space Ambient Occlusion (SSAO)|屏幕空间环境光遮蔽}}(SSAO){{only|{{sfm}} {{dota2|nt=1}}}} | ||
* | ** 一种实时高效模拟环境光遮蔽的技术 | ||
* DirectX | * 宽屏显示支持 | ||
** | ** 起源是最早原生支持宽屏(16:9/16:10)而无需拉伸画面的游戏引擎之一。同期多数游戏仅适配 4:3/5:4 比例。<br>《{{hl2|1}}》早在2004年发布时就支持宽屏显示,通过横向 FOV 扩展可呈现更多细节 | ||
** | * {{L|Physically Based Rendering|基于物理的渲染}}(PBR){{strata|only|addtext={{tfbranch}}{{rr}}{{hdtf}}{{p2d}}}} | ||
** | * {{L|Parallax mapping|视差遮蔽贴图}} {{xe|only|addtext={{strata}}}} | ||
** | * 多种图形 API 支持(Direct3D、OpenGL、Vulkan) | ||
{{ | * Direct3D | ||
** {{L|DirectX Versions#DirectX_9|Direct3D 9}} | |||
*** 早期起源分支({{src04|1}}至{{src13|1}})采用硬件 DX 分级系统,允许旧显卡运行于 DX8.0/8.1(像素着色器 1.x)渲染路径(禁用当前显卡不支持的 DX9 特性)。{{src04|1}}、{{src06|1}}及{{src13|1}}(仅 RTX Remix)还支持 DX7.0/6.0 渲染路径。可通过 {{code|{{L|mat_dxlevel}}}} 控制台命令或 {{code|-dxlevel}} {{L|command line argument|启动项}}修改 | |||
*** {{Note|自{{l4dbranch|1}}起,DX 硬件分级系统(及所有 DX9/着色模型2之前的显卡支持)已移除。无论 dxlevel 如何设置,所有 Source 游戏始终运行于 Direct3D 9}} | |||
** {{L|DirectX Versions#D3D9Ex|Direct3D 9Ex}} {{src13|since}} {{also|{{csgo}}}} - DX9 Windows Aero 扩展,需 {{Win7|3.1|nt=Vista}} 及以上系统。可通过视频设置-高级选项(Windows Aero 扩展)中开关或使用 {{code|-disable_d3d9ex}} 禁用 {{csgo|only}}. | |||
** {{L|DirectX Versions#DirectX_11|Direct3D 11}} {{tfbranch|only|addtext={{strata}}{{Vindictus}}}} | |||
** {{L|DirectX Versions#DirectX_12|Direct3D 12}} {{Apex|only}} | |||
** {{Note|若通过 {{code|-gamepadui}} 等命令强制启用{{L|Gamepad UI in mods|游戏手柄 UI}} 时(同时默认启用 Vulkan 渲染器),需配合 {{code|-dx9}} 启动项才能强制使用 Direct3D 9}} | |||
* {{L|OpenGL}} 是 {{mac|1}}/{{Linux|1}} 平台的起源游戏使用的图形 API {{src09|since|addtext= /{{srcmp}}}} | |||
** {{code|dxlevel 92}} 是 DirectX 9 着色模型3(D3D9.0c)的 {{L|OpenGL}} 等效功能 | |||
* {{L|Vulkan}} {{hl2|only|addtext={{portal}}{{rr}}{{l4d2}}{{portal2}}{{csgo}}}} | |||
** OpenGL 的继任者,一种底层 API,可修复部分驱动兼容问题(如《传送门2》{{L|Env_projectedtexture|投射纹理}}在 NVIDIA/AMD 新驱动下渲染异常)。使用 {{code|-vulkan}} 启动项启用 | |||
{{note|{{csgo|2}}仅 {{Linux|1}} 版支持 Vulkan}} | |||
{{note|起源最多支持 8 级 {{L|LOD Models|LOD 模型}},但未内置自动{{W|icon=0|zh:细节层次|细节层次}}功能,需手动配置}} | |||
{{warning|{{csgo|2}} 目前不支持 LOD,{{L|$lod}} 指令将被忽略(模型仍可运行,但建议避免使用该参数)}} | |||
=== {{LCategory|Material System|材质系统}} === | |||
* 起源用材质系统定义对象的纹理与材料。材质指定了物体损坏时的形态、破碎/拖拽时的音效、物体的质量和浮力。这套系统比传统的纯纹理系统更加灵活 | |||
{{ | * 材质可以与物体或 {{L|NPC}} 互动,例如:当车辆在泥泞/冰面上行驶时会打滑或失去牵引力 | ||
== | === {{L|Source Multiplayer Networking|多人网络代码}} === | ||
* | * 历经全球数百万玩家与时间的考验 | ||
* | * 支持{{W|icon=0|zh:局域网|局域网}}与互联网联机游戏 | ||
* 碰撞/命中检测的预测 插值处理 | |||
* 针对高延迟、高丢包率的 56k 连接进行网络优化 | |||
== | === {{LCategory|Modeling|高级角色系统}} === | ||
* | * 细致入微的拟真角色表现 | ||
* | * 逼真{{L|Eyeball|眼部}}模拟 | ||
* | ** 聚焦于玩家/物体,而非简单的平行视线 | ||
* | ** 拟真眼球凸起确保反射效果准确 | ||
* 肌肉模拟系统可呈现细腻表情、语音与肢体语言 | |||
* {{LCategory|Choreography|语言独立}},角色可流畅切换多语种对话 | |||
* 骨骼动画系统 | |||
* 分层动画系统可组合多个动画片段生成复杂动作 | |||
== | === {{LCategory|Physics|物理}} === | ||
* 使用 | * 使用 {{L|Havok}} 物理引擎(Havok Group 授权,现属{{W|zh:Microsoft|微软}}旗下) | ||
* | * 拟真物理交互打造动态世界 | ||
* | * 音画表现基于物理模拟 | ||
* | * AI 角色可与物理对象交互 | ||
* | * 支持绳索/电缆、机械装置、约束系统、{{W|zh:布娃娃系统|布娃娃物理}}等 | ||
* | * 可通过关卡设计控制物理行为 | ||
* | * 运动学骨骼跟随器 | ||
* | * 自定义程序化物理控制器 | ||
* | * 载具体系 | ||
** | ** 车轮打滑与侧滑模拟 | ||
** | ** 各车轮独立弹簧悬挂系统 | ||
** | ** 加减速/转向时拟真重心偏移 | ||
** | ** 可调参数:马力、挡位、最大速度、换挡速度、轮胎材质、摩擦系数、弹簧张力/阻尼等 | ||
** | ** 多人模式支持载具共乘 | ||
** | ** 气垫船简化模拟方案 | ||
== [[:Category:AI|AI]] == | == [[:Category:AI|AI]] == |
Revision as of 04:02, 13 February 2025

起源(Source)是 Valve 于2004年推出的 3D 游戏引擎,接替前代金源的迭代之作。该引擎凭借物理模拟、AI 系统与图形处理技术的突破性升级,在保持对老旧硬件兼容性的同时,为同时代游戏赋予了革命性的画面表现力。半衰期2的获奖视觉设计便是其技术实力的最佳印证。作为开放式技术平台,起源不仅服务于 Valve 自家项目,更被第三方厂商与全球模组 开发者广泛采用(延续了金源的社区友好传统),迄今已有超百款游戏基于该引擎开发。引擎历经多次分支 迭代,各版本均持续强化图形功能与技术支持。
尽管起源2自2015年起已成为 Valve 第一方项目的开发主力,但由于起源2缺乏相对完善的文档支持且对第三方开发者的授权政策相对保守,这款已问世20年的引擎至今仍在模组圈与部分第三方项目中焕发新生,并仍能获得定期的核心功能更新与安全补丁。
功能
以下为 起源引擎的核心功能清单。请注意:部分新特性可能不适用于早期或后续的起源分支版本,亦或第三方游戏/定制分支。
若需查阅包含第三方游戏在内的各起源分支版本及其专属新功能说明,请访问该分类页面 。
渲染器
- 支持着色器 模型(Shader Model)2.0至3.0
- 抗锯齿 支持(MSAA、FXAA、 MLAA、TAA等)
- 各方案特性与优劣对比详见抗锯齿 页面
- 多级各向异性过滤选项
- 各项异性过滤可显著改善远景纹理清晰度
- 相较于金源(2013 年前仅支持双/三线性过滤),提供更丰富的过滤模式:双/三线性过滤、2x 至 16x 各项一行过滤
- 支持前向与延迟渲染 管线
- 延迟渲染技术可高效处理多光源场景,广泛用于现代游戏
- 模型与世界支持凹凸贴图与法线贴图
- 使用 HLSL 编写着色器
- 立方体与环境贴图
- 模型的 Phong 着色
- 动态光源、顶点光照与光照贴图 系统,支持闪烁/脉冲等多种光源类型
- HDR (存在于自
以来) 与 LDR (SDR) 光照
- 具有折射、实时环境反射、菲涅尔效应的水体
- 水还支持流动贴图 (存在于自
以来)
- 水还支持流动贴图 (存在于自
- 可发射精灵 或模型 的高级粒子系统
- 纹理渲染 阴影技术支持单场景大量角色同屏 (存在于自
以来) (也存在于
之中)
- 遮挡实体 用于可见性剔除
- 室内外场景
- 曲面细分、漫反射和高光凹凸贴图
- 实时辐射度光照
- 源自天空盒的实时级联阴影映射 (存在于自
以来) (也存在于
之中)
- 特效包含粒子、光束、体积烟雾、火花、血液,以及雾、雨等环境效果
- 扩展性(Scalability)
- 屏幕空间环境光遮蔽 (SSAO)(仅存在于
之中)
- 一种实时高效模拟环境光遮蔽的技术
- 宽屏显示支持
- 起源是最早原生支持宽屏(16:9/16:10)而无需拉伸画面的游戏引擎之一。同期多数游戏仅适配 4:3/5:4 比例。
《半衰期2》早在2004年发布时就支持宽屏显示,通过横向 FOV 扩展可呈现更多细节
- 起源是最早原生支持宽屏(16:9/16:10)而无需拉伸画面的游戏引擎之一。同期多数游戏仅适配 4:3/5:4 比例。
- 基于物理的渲染 (PBR)(仅存在于
之中)
- 视差遮蔽贴图 (仅存在于
之中)
- 多种图形 API 支持(Direct3D、OpenGL、Vulkan)
- Direct3D
- Direct3D 9
- Direct3D 9Ex (存在于自
以来) (也存在于
之中) - DX9 Windows Aero 扩展,需 Vista 及以上系统。可通过视频设置-高级选项(Windows Aero 扩展)中开关或使用 -disable_d3d9ex 禁用 (仅存在于
之中).
- Direct3D 11 (仅存在于
之中)
- Direct3D 12 (仅存在于
之中)
注意:若通过 -gamepadui 等命令强制启用游戏手柄 UI 时(同时默认启用 Vulkan 渲染器),需配合 -dx9 启动项才能强制使用 Direct3D 9
- OpenGL 是 macOS/Linux 平台的起源游戏使用的图形 API (存在于自
/
以来)
- dxlevel 92 是 DirectX 9 着色模型3(D3D9.0c)的 OpenGL 等效功能
- Vulkan (仅存在于
之中)
- OpenGL 的继任者,一种底层 API,可修复部分驱动兼容问题(如《传送门2》投射纹理 在 NVIDIA/AMD 新驱动下渲染异常)。使用 -vulkan 启动项启用
材质系统
- 起源用材质系统定义对象的纹理与材料。材质指定了物体损坏时的形态、破碎/拖拽时的音效、物体的质量和浮力。这套系统比传统的纯纹理系统更加灵活
- 材质可以与物体或 NPC 互动,例如:当车辆在泥泞/冰面上行驶时会打滑或失去牵引力
多人网络代码
- 历经全球数百万玩家与时间的考验
- 支持局域网与互联网联机游戏
- 碰撞/命中检测的预测 插值处理
- 针对高延迟、高丢包率的 56k 连接进行网络优化
高级角色系统
- 细致入微的拟真角色表现
- 逼真眼部 模拟
- 聚焦于玩家/物体,而非简单的平行视线
- 拟真眼球凸起确保反射效果准确
- 肌肉模拟系统可呈现细腻表情、语音与肢体语言
- 语言独立 ,角色可流畅切换多语种对话
- 骨骼动画系统
- 分层动画系统可组合多个动画片段生成复杂动作
物理
- 使用 Havok 物理引擎(Havok Group 授权,现属
微软旗下)
- 拟真物理交互打造动态世界
- 音画表现基于物理模拟
- AI 角色可与物理对象交互
- 支持绳索/电缆、机械装置、约束系统、
布娃娃物理等
- 可通过关卡设计控制物理行为
- 运动学骨骼跟随器
- 自定义程序化物理控制器
- 载具体系
- 车轮打滑与侧滑模拟
- 各车轮独立弹簧悬挂系统
- 加减速/转向时拟真重心偏移
- 可调参数:马力、挡位、最大速度、换挡速度、轮胎材质、摩擦系数、弹簧张力/阻尼等
- 多人模式支持载具共乘
- 气垫船简化模拟方案
AI
- I/O系统允许关卡设计师调控AI
- 精密的导航系统,角色可以奔跑、跳跃、飞行、蹲下、上下楼梯、爬梯子甚至是钻入地下
- AI具有视觉、听觉和嗅觉
- AI关系可以让AI自行判断队友以及敌人或其它实体的状态
- 战斗AI允许AI小队成员协同作战,知道何时前进与后退,会相互配合、躲避等等
音效系统
- 7.1、5.1环绕声,4扬声器环绕声
- {{bug|当运行于 Windows Vista 及更新系统上时,由于游戏引擎使用 DirectSound 和旧版本的 Miles Sound System,尽管选择了7.1,但游戏可能只输出5.1环绕声,或者如果没有自定义的dsound.dll(如 Creative Alchemy、DSOAL 或 IndirectSound),7.1音频可能无法正常工作。(
Titanfall 2、
Apex Legends等部分第三方游戏不受影响)
警告:默认不支持 48 KHz 音频(DVD品质)
UI
- 服务器浏览器——显示所有在线的游戏服务器,玩家可以选择要参与的服务器。玩家还可对服务器列表进行过滤和排序,以加快服务器的显示和选择速度
- VGUI—— Valve 的自定义GUI界面仿造多数 Windows 控件,使用起源引擎渲染,可在游戏内和游戏外显示统一的UI。特点如下:
- 全景(存在于自
以来))——Valve 于2018年推出的全新自定义GUI,使用
.XML
和 JavaScript 文件,开发人员可以创建动态、简洁的用户界面和菜单,甚至是高质量的游戏内难以处理的面板。
编程
- 所有代码均使用 Visual Studio .NET 2003 及更高版本的 C/C++ 编写。轻松快速地从现有基类派生出新实体
- 内部上下文敏感性能监控系统
- 引擎内置图形性能测量工具
- 模块化代码设计(通过 DLL)允许更换核心组件,便于升级或更换代码
- VScript 脚本系统允许使用外部编码语言(如 Squirrel 和 Lua)在地图中创建更复杂的系统 (存在于自
以来) (也存在于
之中)
工具
HLFaceposer(面部姿态编辑器 )
- 用于制作语音和情绪的面部表情工具
Valve Hammer Editor(锤子地图编辑器 )
- 所见即所得的世界编辑器

- 创建地图的地形刷
- 地形编辑器
- 可放置精细的世界模型和AI NPC
- 为 NPC 设置导航点/路径
- 放置触发器、剪切画笔、逻辑实体等
- 允许开发者在实体之间连接I/O,以控制游戏中的AI
Half-Life Model Viewer(Half-Life 模型查看器 )
- 完整的模型预览
- 允许任意方向旋转模型
- 设置射击命中框(hit box)
- 查看物理约束体
- 查看法线
- 随时切换线框、着色和纹理三种视图模式
- Studiomdl(MDL工作站)
- 模型编译器
- VBSP, VRAD, VVIS, VMPI
- 地图编译工具(bsp、照明和可见度)
- VMPI——分布式编译工具,允许将各个级别的编译分散到多个电脑上,从而大大缩短编译时间
- Exporters(导出)
- XSI,可以在 3Ds Max 和 Maya 中导出.smd格式的模型
相关作品
由 Valve 制作
|
Third-Party
由第三方公司和mod团队制作的游戏、工具和mod
已发布
|
|
|
未发布
本部分为未发布的第三方游戏和工具,这些游戏和工具正在开发中,尚未公开发布,或处于 Beta/EA 阶段
|
参见
扩展
- 起源引擎教程 —— https://www.sourcemodding.com/tutorials/source
- 起源引擎教程 —— https://gamebanana.com/tuts/games/35
- 起源引擎教程 Mod DB https://www.moddb.com/engines/source/tutorials
- GitHub Issues page ——报告引擎错误