贴图变粉色?Celestia 找不到纹理时的占位显示
症状
某个行星/卫星/深空天体突然变成粉色方块——没有任何纹理细节,就是一个纯色块。其他天体正常。
为什么是粉色
Celestia 在 SSC 数据文件里给每个天体指定了一张贴图,格式:
Texture "earth.jpg"
当 Celestia 在所有配置的贴图路径里都找不到 earth.jpg 时,它用一个默认占位符代替——这张占位符图的颜色就是粉红色。所以粉色 = Celestia 知道这个天体存在,但找不到它的"皮肤"。
四件事逐一检查
1. 文件名是否精确匹配
Celestia 是大小写敏感的:
Earth.jpg≠earth.jpgEARTH.JPG≠earth.jpg
Windows 文件系统默认不区分大小写——但 Celestia 内部用 Unix 路径逻辑,区分。Motherlode 下载的添加件在不同操作系统解压时可能丢失扩展名、或大小写错乱。
2. 路径是否正确
Celestia 的贴图路径解析优先级:
.ssc文件当前目录(如果 SSC 本身放在extras/MyAddon/data/,Celestia 会先找extras/MyAddon/textures/medres/)- 主贴图路径(
Celestia/textures/medres/、Celestia/textures/hires/、Celestia/textures/lores/) - 如果以上都没找到 → 用粉色占位符
把贴图复制到正确目录,重启 Celestia。
3. 格式是否支持
Celestia 只认三种贴图格式:
- JPG / JPEG(推荐,占用空间小)
- PNG(保留透明通道时用,比如星云边缘渐隐效果)
- DDS(DirectDraw Surface,压缩格式,显卡直接加载速度最快)
如果贴图是 WebP、BMP、TIFF 格式,Celestia 不认识——即使文件名和路径都对,仍然显示粉色。用图像转换工具(Photoshop / GIMP / ImageMagick)转成上述三格式之一。
4. 分辨率是否过大或过小
理论上 Celestia 支持任意分辨率,但:
- 过大(比如 16384×8192 的 16K 贴图):如果显卡 VRAM 不够,Celestia 加载失败 → 粉色
- 过小(小于天体预计分辨率的 1/10):Celestia 会自动放大,但效果很差(像打了马赛克)——不会粉色但很难看
检查显卡最大支持的贴图尺寸(NVIDIA 驱动面板里能查)。
对比:粉色 vs 其他异常
| 颜色 | 含义 |
|---|---|
| 粉色 | 贴图找不到 |
| 白色纯色 | SSC 里没给 Texture 字段 → Celestia 用默认纯色渲染 |
| 半透明 | 贴图是 PNG 且有透明通道(星云/彗星尾巴正常) |
| 全黑 | 天体定义错误(比如卫星轨道参数超出范围) |
修复验证
每改完一处重启 Celestia(Celestia 只在启动时读数据)。如果修复后还是粉色:
- 确认新文件放在正确目录
- 确认 SSC 文件里的 Texture 路径和新文件名一致
- 确认 Celestia 能识别格式
- 看 Celestia 控制台(Ctrl+Shift+C)有没有报错