Texture2D和CubeMap的相互轉換

2022-09-15 04:51:11 字數 1934 閱讀 5061

有兩種轉換:

1.使用6個正方形組成的cubemap。

這種比較簡單,排版好就行:

2.全景圖轉成cubemap。

可以直接將魚眼那種的全景貼圖轉為cubemap。

需要注意的是這兩種轉換後,得到的貼圖都存在水平或者垂直方向的翻轉問題。

完整**:

using

unityengine;

public

static

class

cubemapandtexture2d

//////

使用panorado全景圖獲取cubemap

/// ///

///public

static

cubemap getcubemapbypanoradotexture2d(texture2d temptex)

static texture2d createcubemaptexture(texture2d m_srctexture, int texsize, int faceindex, string filename = null

)

if (faceindex == 1

)

if (faceindex == 2

)

if (faceindex == 3

)

if (faceindex == 4

)

if (faceindex == 5

)

vector3 rotdx1 = (vdira[1] - vdira[0]) / (float

)texsize;

vector3 rotdx2 = (vdira[3] - vdira[2]) / (float

)texsize;

float dy = 1.0f / (float

)texsize;

float fy = 0.0f

; color cols = new

color[texsize];

for (int y = 0; y < texsize; y++)

tex.setpixels(

0, y, texsize, 1

, cols);

fy +=dy;

}tex.wrapmode = texturewrapmode.clamp; //

tex = flippixels(tex, true, true

);

return

tex;

}static

color calcprojectionspherical(texture2d m_srctexture, vector3 vdir)

//////

水平/垂直反**圖象素

/// ///

//////

///public

static texture2d flippixels(texture2d texture, bool flipx, bool

flipy)

if(flipx)}}

if(flipy)}}

return

texture;

}//////

將cubemap轉為普通貼圖

/// ///

///public

static

texture2d gettexture2dbycubemap(cubemap cubemap)

}

就這樣!

拜拜~

opengl 使用 texture2d 關鍵步驟

生成 texture2d 的步驟 1.準備 紋理的畫素資料 imagedata 2.glgentextures 存放在乙個 控制代碼 gluint texture 3.glbindtexture 剛才生成的 texture,第乙個引數是 gl texture 2d 4.glteximage2d 用 ...

Unity 二維紋理 Texture 2D 1

二維紋理 texture 2d 紋理使你的網格 粒子 和介面更生動!它們是你覆蓋或環繞著物件的或影片檔案。由於它們是如此的重要,它們有很多的屬性。如果你是第一次閱讀這一點,跳到細節,當你需要乙個參考時返回到實際設定。用於物件的著色器可以指定所需要的紋理,但基本原則是可以放置專案中任何影象檔案。如果它...

Unity 二維紋理 Texture 2D 4

supported formats 支援的格式 unity支援下面的檔案格式 psd,tiff,jpg,tga,png,gif,bmp,iff,pict。應注意,unity可以匯入多層psd和tiff檔案,在匯入時,層將自動被塌陷,因此你不必浪費時間,直接使用原始檔型別。這點很重要,允許只有乙個紋理...