Trainz/refs/texture.txt 文件
以 *.texture.txt 为后缀和扩展名的文本文件被用作在几乎所有资产中指定图形文件选项和过程的首选方法,包括那些采用包含烘焙纹理贴图的较新技术 网格 带有法线和反射率(UV贴图) - 因为它们的目的是配置 Trainz 中图形纹理的行为。这些文件还可以控制纹理如何被 内容管理器 处理,特别是通过提供 路径规范,并触发额外的验证以最佳生成健康的资产。此外,较新的 LOD 网格集具有法线或 UV 贴图,它们将有自己的 texture.txt 文件控制它们的应用。
这些文件通常位于与纹理源图像文件相同的文件夹中,通常是 .bmp、.tga 或 .jpg 文件,因为 texture.txt 文件的工作就是引用它们并指导网格 (.im 文件) 到它们,但 texture.txt 可以位于其他地方,因为它可以利用简短的 DOS/Windows 文件结构导航,在一个文件夹级别上移除,但不能移除两个[注释 1].
|
实际上,texture.txt 文件必须位于与寻找它的网格相同的文件夹中!。图像文件可以被多个 texture.txt 文件和网格引用共享。这些是由 Trainz 导出器或导入器(即来自 Gmax、Blender 和 Autodesk 的 3dsMax 格式的转换器软件到 Trainz 数据需求 - Auran/N3V 偶尔会更新这些)自动生成,但当需要专门化时可以手动编辑。
每个标记都指定在新的一行上。在 '=' 符号的两侧都没有空格。空值有时是有效的。语法是
<token>=<value>
Texture.txt 文件可以使用 C++ 的 'hack-hack' 注释风格进行注释
// This file was created for TRS2006-SP1 then retrograded to trainz-build 2.0 for TRS2004
以下是支持的标记列表。任何其他值都不应使用。
- 此外,必须理解
- 网格和 texture.txt 文件始终放在同一个文件夹中。
- 纹理(图像文件)本身可以位于一个公共位置,并被资产的多个网格引用(蒸汽机车的 8 个或更多个网格需要多少个 black.tga 纹理?),但引用是通过 texture.txt 文件进行的,其名称必须与网格引用的名称匹配。即网格引用texture.txt 文件的名称,该名称不必与实际图像/纹理的名称匹配,该图像/纹理在内部列为 Primary。
- 假设一个公共纹理文件、不同的网格名称和/或位置,以及来自附加图形的不同“外观”
- 上面示例中的八个网格中的四个每个都有一个不同的名称可以引用同一个纹理并使用相同的处理“标记”,但每个必须存在以支持它从 网格文件 中的引用。
- 剩下的两个可能引用了一个完全不同的“black2.tga”
- 而其他的则相同,但使用上面示例中组合示例中展示的不同标记组合,并在下面详细说明。
- 需要掌握的重点是 texture.txt 文件和网格文件之间的 Onto 关系,以及纹理名称和位置可能非常不同 - 它们没有理由与网格或 texture.txt 文件共置。后者负责将两者配对并定义该网格呈现纹理图像的方式。
大多数 texture.txt 文件只有两到四行,就像下面左边和中间的两个示例。Alpha 通道数据通常由与列为 Primary 的相同文件传递,当图像类型支持此类数据时。最常见的是 BMP 和 TGA 文件,深度为 32 位,尽管还有几种其他现代类型正在开发中。在最后一个示例中,前四行类似于中间的示例。许多较旧的资产将没有 AlphaHint 修饰符,也不支持其他扩展,例如下面右边显示的扩展。 | ||
最常见的示例
|
下一个最常见的示例
|
组合示例
|
- 在下面,我们将提供相同部分中的“示例行”。并以()的形式在后面加上详细的注释。
首先,我们提供这些示例来与上面和下面的文本进行比较...
指定纹理文件名
- <纹理名称> - 主纹理。包含扩展名的文件名,三个示例。
Primary=Whitehorse_pub.tga
- (这个示例在非火车车厢资产中非常常见,也就是说,大多数物体、建筑物、动物和树木不附着在轨道上或不打算在轨道上行驶。简单的轨道类资产 - 包括道路、电力线和围栏 - 也共享这种位置的简单性。在杆子和带有灯光的建筑物(夜间模式)的情况下,通常会存在一个夜间或夜间模式的子容器,这是一种来自早期数据模型实践的方法。
Primary=PRR40'1910sBoxcar_body\PRR40'1910sBoxcar_body.tga
- (此示例在火车车厢资产中非常常见,许多内容创作者仍然遵循相同的做法。早期的 数据模型 标准做法是至少创建三个与资产文件名匹配的子文件夹,这些子文件夹的后缀分别为:'_art', '_body', & '_shadow'。这并不像看起来那么奇怪,因为资产文件名标签必须同时作为用户名和资产的主网格名称。火车车厢是多网格的,因此控制或参考网格位于根目录,而车身和阴影网格从资产根目录开始有可预测的路径,这可以节省键入错误的时间并使内容更加整洁。_art 文件夹支持各种与资产选择或显示相关的菜单(参见:{{TL|Railyard 模块}})。)
Primary=common_textures\Red-roof-tiles.tga
- (此 文件夹\文件名 引用暗示 MESH 位置位于包含名为“common_textures”的子文件夹的文件夹中,因此很可能 MESH 位于资产的根目录,CM 将在路径 “{{TBS|username|p=..\editing\username or ..\..\editing\username, in later practice wherein N3V tucks data into the ..\UserData folder, where \editing lives.[note 2]'” 中打开。)
Primary=..\green-siding.tga
- (MESH 位置位于子文件夹中,而“common_textures” 位于上一级,很可能就是资产的 根目录。)
Primary=..\traincar_left_door\brass-window-trim.tga
- (MESH 位置可能位于“..\traincar_right_door\” 的“姊妹文件夹” 中,其相对位置包含“shared_texture”。很可能,这两个都是“\traincar_asset-name_body” 文件夹的子文件夹。此示例来自使用兰德尔怀特帕斯普尔曼客车和 brass.tga 纹理进行的测试。)
Alpha
[edit | edit source]指定纹理的 Alpha 通道。请注意,如果只有一个包含 RGB 和 A 通道的 32 位文件,则仍需要使用 Primary 中使用的相同名称进行指定。
- <texture name> - Alpha 纹理,可以与主纹理相同或不同。
Tile
[edit | edit source]水平、垂直或同时包装纹理寻址。否则,纹理将被钳制。
- <empty> - (默认) 不进行包装。
- s - 水平包装。
- t - 垂直包装。
- st - 水平和垂直同时包装。
Dimension
[edit | edit source]纹理的维度数。由于目前仅支持二维纹理,因此该参数不是必需的。
- two - (默认) 二维。
- cube - (不支持)
- volume - (不支持)
- one - (不支持)
Compression
[edit | edit source]CMP 使用的压缩格式。如果未提供此参数,则将自动选择格式。
- none - 不压缩。警告:未压缩的纹理会消耗大量的内存,并降低性能。
- dxt1 - 适用于不透明或 Alpha 蒙版的纹理。
- dxt3 - 或者,如果纹理包含鲜明的对比,则最适合 Alpha 混合纹理。请先尝试使用 DXT5。
- dxt5 - 通常最适合 Alpha 混合纹理。
Hint
[edit | edit source]纹理使用提示,仅供内部使用。请注意,这不应该用于尝试禁用 MIP 映射。
- static - (默认) 标准纹理资源。
- dynamic - 纹理将在内存中修改。
NormalMapHint
[edit | edit source]关于纹理是否为法线贴图的提示。使用此参数非常重要,因为它会影响最终的纹理质量。压缩、MIP 映射生成和 XYZ(RGB)的重新归一化都会受到影响。
- none - (默认) 这不是法线贴图。
- normalmap - 这是一个法线贴图。
ModifyMap
[edit | edit source]允许在读取 texture.txt 文件时修改纹理。目前,这样做是为了允许翻转法线贴图的绿色通道(Y 轴)。
- none - (默认) 不修改纹理。
- flipgreen - 翻转绿色通道,即法线贴图的 Y 轴。
AlphaHint
[edit | edit source]指定 Alpha 通道的使用方式。会影响最终的 Alpha 质量。也可能影响纹理压缩和 MIP 生成。
- opaque - (默认,没有 Alpha) 不使用 Alpha 通道。
- semitransparent - (默认,有 Alpha) Alpha 混合。
- masked - Alpha 蒙版 - 这会根据 Alpha 通道或蒙版的像素值,从完全透明到完全遮挡物体,提供 8 位 灰度 着色。
|
Anisotropy
[edit | edit source]各向异性采样质量。数字越高,视觉质量越好,但性能成本也会大幅增加。如果需要纹理质量,请指定更高的值。Trainz 现在可以通过滑块控制各向异性,因此默认情况下会使用最高设置。
- 1 - 不使用各向异性过滤。
- 2 - 低。
- 4 - 中等。
- 8 - 高。
- 16 - (默认) 非常高。
AutoMip
[edit | edit source]自动 MIP 映射生成。Chris,这已弃用了吗?CMP 现在会以最高质量生成 MIP 映射,而不是在游戏加载/运行时生成。
- none - 不要生成 MIP 映射。
- default - (默认) 任何默认方法。
- fastest - 尝试以牺牲质量为代价来提高加载时间。
- nicest - 尝试提高质量,无论时间如何。
MagFilter
[edit | edit source]纹理放大时使用的纹理采样过滤器。
- nearest - 不与相邻纹素混合。
- linear - (游戏默认) 与相邻纹素混合,以实现平滑的缩放效果。
- default - (默认) 游戏默认设置。
MinFilter
[edit | edit source]纹理缩小时使用的纹理采样过滤器。
- nearest - 不与相邻纹素混合。
- linear - (游戏默认) 与相邻纹素混合,以实现平滑的缩小效果。
- default - (默认) 游戏默认设置。
MipFilter
[edit | edit source]MIP 映射选择时使用的纹理采样过滤器。
- nearest - 不与其他 MIP 映射混合。
- linear - (游戏默认) 在 MIP 映射之间进行平滑混合(注意,它独立运行,但应与各向异性采样结合使用)。
- default - (默认) 游戏默认设置。
- none - 在 CMP 中禁用 MIP 映射生成,并在游戏中使用。特别适用于用户界面元素。
Comments & Suggestions
[edit | edit source]- Hint 虽然是供内部使用,但仍被提及,因为自从它被发现以来,它一直被一些好心人使用和滥用。Anisotropy 应该用于提高纹理质量,而 MipFilter=none 应该仅用于禁用界面纹理的 MIP 映射。
此参考页面改编自 TrainzOnline Wiki,并在 CC-BY-SA 3.0 许可证 下发布。此页面可能会包含比 相同主题的源页面 更多的文本解释、说明、历史和/或示例。
TrainzOnline Wiki 主要由程序员或精通 内容创作 的人员维护,并可能提供有关当前 trainz-build 代码 标准的更新信息,这些标准随着软件功能的添加而不断变化。