投稿者 tel | 2015年3月21日

Unityでキューブマップのテクスチャを取得する

Unityでキューブマップのアセットから各面のテクスチャを取得するエディタスクリプトを書いた。

https://gist.github.com/sapphire-al2o3/1387dae04b718769f3c6

Editorディレクトリに入れて、メニューの Editor – Get Cubemap Texture を実行するとテクスチャが生成される。

キューブマップから各面のピクセル取得は Cubemap.GetPixels メソッドを使う。取得したピクセルはどうやら180度回転しているみたいなので回転してからPNGにして保存している。

Unity 4.6でスフィアマップからキューブマップを生成した時にメモリサイズがなぜか大きい。なので Create から作成したキューブマップにテクスチャを1枚ずつ設定してみたらサイズが減った。

ただし、元のテクスチャを圧縮してもキューブマップ自体は32bitになっているっぽい。
http://forum.unity3d.com/threads/has-the-cubemap-texture-compression-bug-been-fixed-in-unity4.165125/
http://issuetracker.unity3d.com/issues/cubemaps-support-texture-compression-on-them

Unity 5だとスフィアマップから生成してもメモリサイズが小さかった。


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。