4.space engine中使用的行星纹理的格式
InputFile参数指定源圆柱纹理的路径。
OutFolder指定立方体贴图纹理的输出文件夹的路径, 如果路径包含空格,则必须用引号括起来:“带空格的路径”。
TempFolder参数指定临时文件夹的路径。
该应用程序用于存储临时文件,如果未指定,则临时文件将存储在OutFolder中。
如果该文件夹不存在,则自动创建名为neg_x,neg_y,neg_z,pos_x,pos_y,pos_z的子文件夹。
源圆柱纹理应采用原始格式(raw格式文件),原始格式是一个简单的二维像素数组,其大小和容量(位深度)由配置文件中的以下参数描述:
InputWidth 源图像的宽度
InputHeight 源图像的高度
InputChannels 通道数(灰度,1,RGB ,3,RGBA ,4等)
Input16bit 容量(位深度):每通道16或8位
InputByteSwap 仅适用于16位:对于小端序(little-endian)为true,对于大端序(big-endian)为false
InputUnsigned 仅适用于16位:对于无符号(unsigned)为true,对于有符号(signed)值为false
InputLatOffset 经度偏移,单位是度
立方体纹理是一组文件夹和文件,其结构如下:
cubemap 在OutFolder参数中指定的文件夹
neg_x neg_x面的文件夹
0_0_0.jpg — 0级1块
1_0_0.jpg –\
1_0_1.jpg –+ + - 1级的4个图块
1_1_0.jpg –|
1_1_1.jpg –/
2_0_0.jpg –\
2_0_1.jpg –|
2_0_2.jpg –|
2_0_3.jpg - + - 2级的16个图块
2_1_0.jpg –|
2_1_1.jpg –|
2_1_2.jpg –|
2_1_3.jpg –|
………
neg_y neg_y 面的文件夹
neg_z neg_z 面的文件夹
pos_x pos_x 面的文件夹
pos_y pos_y 面的文件夹
pos_z pos_z 面的文件夹
立方体贴图的纹理由六个面组成,它们的名称是按照坐标系的半轴命名的,它们是交叉的。让原点成为行星的中心。然后Y轴穿过行星的两极:北极在正Y面,南极在负Y面。X轴从左到右通过,即左面为负X,右面为正X,Z轴向观察者方向通过,即远面为负Z,近面为正Z,在原始的圆柱纹理中,这对应于:上边界为北极,下边界为南极,左、右交界处右边界垂直穿过neg_x面,中心子午线垂直穿过pos_x面,圆柱形纹理的中心位于pos_x面的中心。
标准扫描Cubemap纹理:
一些行星地图并非以零子午线为中心。例如,它可能会运行到纹理的左边界上。在这种情况下,可以将经度偏移设置为180°,把生成的立方纹理“旋转”到正确的位置:inputlatoffset 180
立方体平面的分辨率计算为原始纹理宽度的四分之一,四舍五入到最接近的2次方。例如,如果原始纹理分辨率为86400 x 43200,则会给出每个面的分辨率为32768 x 32768(131072/4)
每个面结构为一组图块,图块的分辨率由TileWidth参数确定,并且不得超过表面的分辨率。例如,如果TileWidth=512,并且面分辨率为32768,那么我们将有7个级别的图块:log2(32768/512)+1=7。级别的编号从0到6;级别的编号是图块文件名中的第一个数字(0_0_0.jpg,…,6_63_63.jpg)。每个级别的总分辨率按顺序翻倍,而平铺文件的数量则是原来的四倍。因此,我们将有一个0级(0_0_0.jpg)的磁贴,分辨率为512 x 512。它将具有整个面的缩小图像。将有4个1级图块(1_0_0.jpg…1_1_1.jpg),每个图块包含整个面的图像的四分之一。每个图块的分辨率再次为512 x 512,因此一级的普通分辨率为1024 x 1024。2层将有16块图块,以此类推。最后一个(最详细的)级别(6)将有64*64=4096个图块(每个512 x 512),总分辨率为32768 x 32768。图块文件名中的第二个和第三个数字是垂直(V)和水平(U)索引,从左到右和从上到下进行索引,以下是前三个级别的示例图片(分块分辨率为128 x 128)
level 0
level 1
level 2
space engine官方手册配图