论坛帖子
rFactor 2 | 模组制作 - 数字仪表盘参考资料
3Rs 发表于 2020.01.13 19:30:48 | 阅读: 2951 | 评论: 0
本帖最后由 3Rs 于 2020-1-25 16:12 编辑
1. 官方数字仪表盘(Digital gauges,或称为LCD)教程请查阅:Car Modding Complete Tutorial 第12页。
2. LCD的所有材质、元素设定都包含在独立的 .GMT 文件中;而字体大小和元素类型则在 COCKPITINFO.INI 文件中定义。
LCD文字元素基本设定
Material
Name: somecar_gearsbkg
DirectX Shader
DashboardElementShader (使仪表在夜晚也能发光!)
Primary Texture Map
texture map: somecar_gearsbkg.tga (使用TGA格式贴图,一般为透明)
Bias: 0.0000
Mip Mapping: False
Colour/Transparency - Blending
Source Blend: Src Alpha
Dest Blend: Inv Src Alpha
Blend Result: Alpha Blending Transparency
Diffuse RGB ffffff
Ambient RGB 808080 (决定贴图在白天和夜晚的亮度,000000=全黑。)
Specular RGB 000000
Emissive RGB 5f5f5f
Other Attributes
No Clip: False
Double sided: False
Render Target: True (如果不是文字数值类元素,就选False)
Glass: False
Frame Buffer: False
Alpha Sort Offset: 0
Animation
Animation Type: None
LCD字体大小和元素类型
COCKPITINFO.INI文件中所有支持的文字元素参考说明:
GearsFont=SOMECAR_FONTGEAR.TGA // 字体贴图,支持格式:BMP、TGA(推荐使用TGA)
GearsBackground=somecar_gearsbkg // 定义“档位”元素
GearsScale=(0.5, 0.6) // 文字缩放。第一个数值决定宽度,第二个决定高度。
RPMFont=SOMECAR_FONT.TGA
RPMBackground=somecar_rpmbkg // 定义“转速”元素
RPMScale=(1.0,1.0)
SpeedFont=SOMECAR_FONT.TGA
SpeedBackground=somecar_speedbkg // 定义“时速”元素
SpeedScale=(1.0,1.0)
PlaceFont=SOMECAR_FONT.TGA
PlaceBackground=somecar_placebkg // 定义“名次”元素
PlaceScale=(1.0,1.0)
LapsFont=SOMECAR_FONT.TGA
LapsBackground=somecar_lapsbkg // 定义“圈数”元素
LapsScale=(1.0,1.0)
FuelLevelDigitFont=SOMECAR_FONT.TGA
FuelLevelDigitBackground=somecar_fuelbkg // 定义“油量”元素
FuelLevelDigitScale=(1.0,1.0)
WaterTempDigitFont=SOMECAR_FONT.TGA
WaterTempDigitBackground=somecar_wtdbkg // 定义“水温”元素
WaterTempDigitScale=(1.0,1.0)
OilTempDigitFont=SOMECAR_FONT.TGA
OilTempDigitBackground=somecar_otdbkg // 定义“油温”元素
OilTempDigitScale=(1.0,1.0)
BestLapFont=SOMECAR_FONT.TGA
BestLapBackground=somecar_bestlapbkg // 定义“最快圈圈速”元素
BestLapScale=(1.0,1.0)
LastLapFont=SOMECAR_FONT.TGA
LastLapBackground=somecar_lastlapbkg // 定义“上一圈圈速”元素
LastLapScale=(1.0,1.0)
TTempLFFont=SOMECAR_FONT.TGA
TTempLFBackground=somecar_TTLF // 定义“左前平均胎温”元素
TTempLFScale=(1.0,1.0)
TTempRFFont=SOMECAR_FONT.TGA
TTempRFBackground=somecar_TTRF // 定义“右前平均胎温”元素
TTempRFScale=(1.0,1.0)
TTempLRFont=SOMECAR_FONT.TGA
TTempLRBackground=somecar_TTLR // 定义“左后平均胎温”元素
TTempLRScale=(1.0,1.0)
TTempRRFont=SOMECAR_FONT.TGA
TTempRRBackground=somecar_TTRR // 定义“右后平均胎温”元素
TTempRRScale=(1.0,1.0)
高清LCD字体制作方法
1. 把BMP字体改制成透明背景然后存为TGA格式即可,图像尺寸可以以倍数缩放。
2. 随后在COCKPITINFO.INI文件中修改对应的BMP后缀名为TGA。
3. 由于RF2渲染机制,高清字体不一定能改善显示效果。
仪表LCD字体BUG(发绿、变粗)
给对应字体的BKG.tga加相同的背景色即可。
仪表LCD字体对齐方式
1. 参考官方LCD的BMP或TGA文件,在图片的左上角第一个方框顶部有个像素小点(通常为紫色),通过移动这个像素点的位置可改变字体的对齐方式
2. 像素点位于第一个方框最左侧时,为左对齐;像素点位于第一个方框最右侧时,为右对齐;而方框中间的范围则用于微调中心对齐的位置。
发光类贴图过亮的解决方法
转速灯、头灯、尾灯类贴图(DirectX Shader: high luminance sun)
通过修改降低不透明度(通常降低到10%-30%)可以减少发光强度,另外调整贴图的亮色亮度和大小也可以减轻曝亮问题(需要耐心调整)。
仪表LCD发光类型(DirectX Shader: DashboardElementShader)
可以通过3DSimED3修改对应GMT文件中的material材质的几个色彩数值,参考设定:
Diffuse RGB ffffff
Ambient RGB 808080
Specular RGB 000000
Emissive RGB 5f5f5f
其中Ambient,Specular和Emissive至关重要。
Ambient决定贴图亮度,000000即为全黑。
设定仪表LCD层叠方法
如果想在某个LCD元素之上覆盖一个material元素,需要把上面那个元素blending参数改为:
Source Blend: One
Dest Blend: Zero
Blend Result: Alpha Chroma
多帧动画
比如想在低油量时LCD出现闪烁警告图像。
准备3张DDS贴图,文件名规则:
LCDLOWFUEL.dds (初始帧图像)
LCDLOWFUEL00.dds (第一帧图像)
LCDLOWFUEL01.dds (第二帧图像)
随后在Animation部分设定:
Animation Type: Event
Frames: 0, 1
Frequency: 1.000