Trainz/refs/texture.txt 文件
以 *.texture.txt 为后缀和扩展名的文本文件被用作指定几乎所有资产(包括那些包含烘焙纹理映射的较新技术)中的图形文件选项和过程的首选方法。 网格 具有法线和反射率(UV 贴图) - 因为它们的目的是在 Trainz 中配置图形纹理的行为。这些文件还可以控制 内容管理器 如何处理纹理,特别地,通过提供 路径规范,并触发额外的验证以最佳地生成健康的资产。此外,具有法线或 UV 映射的较新的 LOD 网格集将有自己的 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++ 的“双斜杠”注释风格进行注释
// 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 文件的名称,该名称不必与实际图像/纹理的名称匹配,实际图像/纹理在其中被列为“主要”。
- 假设一个公共纹理文件,不同的网格名称和/或位置,以及来自附加图形的不同“外观”
- 上面示例中的八个网格中的四个每个都有一个不同的名称可以引用相同的纹理并使用相同的处理“标记”,但是每个必须存在以支持从 网格文件内部进行的引用。
- 其余两个可能正在引用一个完全不同的“black2.tga”
- 而其他一些则引用的是相同的,但是具有上面合成示例中所示的标记的不同组合,并在下面详细说明。
- 需要掌握的要点是 texture.txt 文件和网格文件之间的 Onto 关系,以及纹理名称和位置可能非常不同 - 它们没有理由与网格或 texture.txt 文件位于同一位置。后者有将两者结合起来并定义该网格渲染纹理图像的方式的任务。
大多数 texture.txt 文件只有两到四行,比如下面左边和中间的两个示例。Alpha 通道数据通常由与被列为“主要”的相同文件传递,当图像类型支持这种方式时。大多数情况下是具有 32 位深度的 BMP 和 TGA 文件,尽管几种其他现代类型正在开发中。在最后一个示例中,前四行类似于中间示例。许多较旧的资产将没有 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' 的子文件夹的文件夹中,因此网格可能位于资产的根文件夹中,CM 将在路径 '{{TBS|用户名|p=..\editing\用户名 或 ..\..\editing\用户名,在 N3V 将数据放入 ..\UserData 文件夹的后期实践中,其中 \editing 位于其中。[注释 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' 文件夹的子文件夹。此示例来自使用 Randall Whitepass Pullman 客车和 brass.tga 纹理的测试。)
指定纹理的 alpha 通道。请注意,如果只有一个带有 RGB 和 A 通道的 32 位文件,则必须使用与 Primary 中使用的相同名称进行指定。
- <纹理名称> - Alpha 纹理,可以与主纹理相同或不同
水平、垂直或同时环绕纹理寻址。否则纹理将被钳位。
- <空> - (默认) 无环绕
- s - 水平环绕
- t - 垂直环绕
- st - 水平和垂直同时环绕
纹理的维度数。由于目前仅支持 2D 纹理,因此不需要。
- two - (默认) 二维
- cube - (不支持)
- volume - (不支持)
- one - (不支持)
CMP 使用的压缩格式。如果没有提供此选项,则会自动选择格式。
- none - 不压缩。警告:未压缩的纹理会消耗大量内存并降低性能。
- dxt1 - 适用于不透明或 alpha 遮罩纹理
- dxt3 - 或者对于 alpha 混合纹理来说,如果纹理包含鲜明对比,则最好。请先尝试 DXT5。
- dxt5 - 通常最适合 alpha 混合纹理
纹理使用提示,仅供内部使用。请注意,这不应用于尝试禁用 mip 映射。
- static - (默认) 标准纹理资源
- dynamic - 纹理将在内存中被修改
关于纹理是否是法线贴图的提示。使用此功能非常重要,因为它会影响最终的纹理质量。压缩、mip 映射生成和 XYZ(RGB)的重新归一化会受到影响。
- none - (默认) 这不是法线贴图
- normalmap - 这是一个法线贴图
允许在读取 texture.txt 文件时修改纹理。目前,这是为了允许将绿色通道(Y 轴)翻转以用于法线贴图。
- none - (默认) 不要修改纹理
- flipgreen - 翻转绿色通道,即法线贴图的 Y 轴
指定 alpha 通道的使用方式。影响最终的 alpha 质量。也可能影响纹理压缩和 mip 生成。
- opaque - (默认情况下没有 alpha) 不使用 alpha 通道。
- semitransparent - (默认情况下有 alpha) Alpha 混合
- masked - Alpha 遮罩 - 这会从完全透明到完全阻塞物体提供 8 位 灰度 着色,具体取决于 Alpha 通道或遮罩的逐像素值。
|
各向异性采样质量。数字越高,视觉质量越好,但性能成本也会显著增加。在需要纹理质量的地方,请指定较高的值。Trainz 现在可以通过滑块控制各向异性,因此默认情况下使用最高设置。
- 1 - 无各向异性过滤
- 2 - 低
- 4 - 中等
- 8 - 高
- 16 - (默认) 非常高
自动 mip 映射生成。Chris,这是否已弃用?CMP 现在以最高质量生成 mip 映射,而不是在游戏加载/运行时生成。
- none - 不要生成 mip 映射
- default - (默认) 无论默认方法是什么
- fastest - 尝试以牺牲质量为代价来提高加载时间
- nicest - 尝试提高质量,无论花费多少时间
纹理放大时使用的纹理采样过滤器
- nearest - 不与相邻纹素混合
- linear - (游戏默认) 与相邻纹素混合,以实现平滑的缩放效果
- default - (默认) 游戏默认值
纹理缩小时使用的纹理采样过滤器
- nearest - 不与相邻纹素混合
- linear - (游戏默认) 与相邻纹素混合,以实现平滑的缩小效果
- default - (默认) 游戏默认值
纹理采样过滤器用于Mipmap选择
- nearest - 不与其他Mipmap混合
- linear - (游戏默认) 在Mipmap之间平滑混合(注意,独立运行,但应与各向异性采样一起使用)
- default - (默认) 游戏默认值
- none - 在CMP中禁用Mipmap生成并在游戏中使用。专门用于用户界面元素。
- Hint 被提及,尽管它只用于内部使用,但由于它被发现后被有心人使用和滥用,所以被提及。Anisotropy 应该用于提高纹理质量,MipFilter=none 应该仅用于禁用界面纹理的Mipmapping。
本参考页面改编自 TrainzOnline Wiki 在 CC-BY-SA 3.0 许可证 下。本页面可能会包含比 同一主题的源页面 更多的文字解释、阐述、历史或示例。
TrainzOnline Wiki 在很大程度上由程序员或精通 内容创作者 维护,并且可能包含关于当前 trainz-build 代码 标准的更新和更准确的信息,这些标准随着软件功能的添加而变化。