

『天幕SKYBOX』指巨立方體, 係內籠貼天幕紋理,『天幕紋理』可能係『地平線』『室內』『宇宙』. 『天幕SKYBOX』原㸃與3D相機位置重合. 係遠睇時正确.
由陸幅紋理『顶』『底』『前』『後』『左』『右』組成. 以前『天幕SKYBOX』紋理分陸幅位圖存檔.
陸幅位圖存係單壹『紋理』效率更高. 将『紋理』平分拾陸等分. 足够擺两組『天幕』紋理. 『日頭』『晚黑』各壹. 似上圖咁.
紋理索引:0~15 | 『日頭』 | 『晚黑』 |
顶up | 0 | 8 |
底dn | 1 | 9 |
前ft | 7 | 15 |
后bk | 5 | 13 |
左lt | 6 | 14 |
右rt | 4 | 12 |
定義『天幕SKYBOX』
typedef struct SKYBOX_TYP { | |
VECTOR3D pos; | 位置 |
VECTOR3D rot; | 旋轉 |
TEXTURE_PTR texture; | 天幕纹理 |
float size; | 天幕大细 |
//TEXTURE_REGION region[16]; | 纹理区域 |
VECTOR3D vertex_array[36] ; | 天幕顶点 |
VECTOR2D texCoord_array[36] ; | 天幕紋理 |
}SKYBOX, *SKYBOX_PTR; |
手エ构建『天幕SKYBOX』立方體『3D頂㸃』同『UV紋理』. 正方形以两三角形組成. 紋理左上角[u0, v0], 紋理右下角[u1,v1].天幕大细『size』.
天『UV紋理』 | 『xyz頂㸃』 |
texCoord[0]=[u1, v1] | vertex_array[0]=[-size, size, -size] |
texCoord[1]=[u0, v1] | vertex_array[1]=[size, size, -size] |
texCoord[2]=[u0, v0] | vertex_array[2]=[size, size, size] |
texCoord[3]=[u1, v1] | vertex_array[3]=[-size, size, -size] |
texCoord[4]=[u0, v0] | vertex_array[4]=[size, size, size] |
texCoord[5]=[u1, v0] | vertex_array[5]=[-size, size, size] |
地『UV紋理』 | 『xyz頂㸃』 |
texCoord[6]=[u1, v1] | vertex_array[6]=[size, -size, -size] |
texCoord[7]=[u0, v1] | vertex_array[7]=[-size, -size, -size] |
texCoord[8]=[u0, v0] | vertex_array[8]=[-size, -size, size] |
texCoord[9]=[u1, v1] | vertex_array[9]=[size, -size, -size] |
texCoord[10]=[u0, v0] | vertex_array[10]=[-size, -size, size] |
texCoord[11]=[u1, v0] | vertex_array[11]=[size, -size, size] |
前『UV紋理』 | 『xyz頂㸃』 |
texCoord[12]=[u0, v0] | vertex_array[12]=[-size, -size, -size] |
texCoord[13]=[u1, v0] | vertex_array[13]=[size, -size, -size] |
texCoord[14]=[u1, v1] | vertex_array[14]=[size, size, -size] |
texCoord[15]=[u0, v0] | vertex_array[15]=[-size, -size, -size] |
texCoord[16]=[u1, v1] | vertex_array[16]=[size, size, -size] |
texCoord[17]=[u0, v1] | vertex_array[17]=[-size, size, -size] |
后『UV紋理』 | 『xyz頂㸃』 |
texCoord[18]=[u0, v0] | vertex_array[18]=[size, -size, size] |
texCoord[19]=[u1, v0] | vertex_array[19]=[-size, -size, size] |
texCoord[20]=[u1, v1] | vertex_array[20]=[-size, size, size] |
texCoord[21]=[u0, v0] | vertex_array[21]=[size, -size, size] |
texCoord[22]=[u1, v1] | vertex_array[22]=[-size, size, size] |
texCoord[23]=[u0, v1] | vertex_array[23]=[size, size, size] |
右『UV紋理』 | 『xyz頂㸃』 |
texCoord[24]=[u1, v0] | vertex_array[24]=[size, -size, size] |
texCoord[25]=[u1, v1] | vertex_array[25]=[size, size, size] |
texCoord[26]=[u0, v1] | vertex_array[26]=[size, size, -size] |
texCoord[27]=[u1, v0] | vertex_array[27]=[size, -size, size] |
texCoord[28]=[u0, v1] | vertex_array[28]=[size, size, -size] |
texCoord[29]=[u0, v0] | vertex_array[29]=[size, -size, -size] |
左『UV紋理』 | 『xyz頂㸃』 |
texCoord[30]=[u1, v0] | vertex_array[30]=[-size, -size, -size] |
texCoord[31]=[u1, v1] | vertex_array[31]=[-size, size, -size] |
texCoord[32]=[u0, v1] | vertex_array[32]=[-size, size, size] |
texCoord[33]=[u1, v0] | vertex_array[33]=[-size, -size, -size] |
texCoord[34]=[u0, v1] | vertex_array[34]=[-size, size, size] |
texCoord[35]=[u0, v0] | vertex_array[35]=[-size, -size, size] |
你必須 登入 才能發表評論。