Texture Components
プロシージャルマテリアル アセット

3Dテクスチャ

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Unityは3Dテクスチャのシェーダ・スクリプトからの使用・作成をサポートしています。はじめのうちは,3Dテクスチャのユーザ使用例が思い当たらないかもしれませんが,3D Color Correction (3Dカラー補正)のようなエフェクトを実装する場合などは作成作業の一部になります。

現時点では3Dテクスチャはスクリプトからしか作成できません。次の短いスクリプトで「中立的」な3Dテクスチャを作成し,3D Color Correction (3Dカラー補正)のようにLookupテクスチャとして用いた場合,補正結果は同一の内容が得られます。

function CreateIdentityLut (dim : int, tex3D : Texture3D) 
{
  var newC : Color[] = new Color[dim * dim * dim];
  var oneOverDim : float = 1.0f / (1.0f * dim - 1.0f);
  for(var i : int = 0; i < dim; i++) {
    for(var j : int = 0; j < dim; j++) {
      for(var k : int = 0; k < dim; k++) {
        newC[i + (j*dim) + (k*dim*dim)] = new Color((i*1.0f)*oneOverDim, (j*1.0f)*oneOverDim, (k*1.0f)*oneOverDim, 1.0f);
      }
    }
  }
  tex3D.SetPixels (newC);
  tex3D.Apply ();
}

Texture Components
プロシージャルマテリアル アセット