ShaderImage QML Type
シェーダープログラムへのイメージアクセスを提供します。詳細...
Import Statement: | import Qt3D.Render 2.8 |
In C++: | QShaderImage |
Status: | Deprecated |
プロパティ
詳細説明
テクスチャの内容をシェーダで読み書きできるようにするには、ShaderImageとして公開する必要があります。テクスチャは複数のミップレベル、レイヤー、フェースで構成できます。さらにShaderImageを宣言することで、テクスチャ・コンテンツのどのレベル、レイヤー、面にアクセスしたいかを指定できます。
ShaderImageが正しく動作するには、Parameterの値として割り当てられ、有効なQt3D.Render.AbstractTexture 。
参照されるテクスチャが 1 次元配列、2 次元配列、3 次元、キューブマップ、キューブマップ配列、2 次元マルチサンプル配列テクスチャの場合、テクスチャレベル全体、またはテクスチャレベルの 1 つのレイヤーまたは面のいずれかをバインドできます。これは、layered プロパティで制御できます。
ShaderImageのサポートはOpenGL 4でのみサポートされており、OpenGL ES 3.1と3.2では部分的にサポートされています。
OpenGL 4では、以下のイメージタイプがサポートされています:
GLSLタイプ | OpenGLタイプ列挙型 | テクスチャ・タイプ |
---|---|---|
image1D | GL_IMAGE_1D | Texture1D |
画像2D | GL_IMAGE_2D | Texture2D |
画像3D | GL_IMAGE_3D | Texture3D |
イメージ2Dレクト | GL_IMAGE_2DRECT | TextureRectangle |
イメージキューブ | GL_IMAGE_CUBE | TextureCubeMap |
イメージバッファ | gl_image_buffer。 | TextureBuffer |
image1DArray | gl_image_1d_array。 | Texture1DArray |
イメージ2Dアレイ | gl_image_2d_array。 | Texture2DArray |
イメージキューブマップ配列 | gl_image_cube_map_array。 | TextureCubeMapArray |
画像2DMS | gl_image_2d_multisample。 | Texture2DMultisample |
image2DMSArray | gl_image_2d_multisample_array | Texture2DMultisampleArray |
iimage1D | gl_int_image_1d | Texture1D |
iimage2D | gl_int_image_2d | Texture2D |
iimage3D | gl_int_image_3d | Texture3D |
iimage2DRect | gl_int_image_2d_rect | TextureRectangle |
画像キューブ | gl_int_image_cube | TextureCubeMap |
iimageバッファ | gl_int_image_buffer | TextureBuffer |
iimage1DArray | gl_int_image_1d_array | Texture1DArray |
iimage2DArray | gl_int_image_2d_array | Texture2DArray |
iimageCubeArray | gl_int_image_cube_map_array | TextureCubeMapArray |
iimage2DMS | gl_int_image_2d_multisample | Texture2DMultisample |
iimage2DMSArray | gl_int_image_2d_multisample_array | Texture2DMultisampleArray |
uimage1D | gl_unsigned_int_image_1d | Texture1D |
uimage2D | gl_unsigned_int_image_2d | Texture2D |
uimage3D | gl_unsigned_int_image_3d | Texture3D |
uimage2DRect | gl_unsigned_int_image_2d_rect | TextureRectangle |
uimageCube | gl_unsigned_int_image_cube | TextureCubeMap |
uimageBuffer | gl_unsigned_int_image_buffer | TextureBuffer |
uimage1DArray | gl_unsigned_int_image_1d_array | Texture1DArray |
uimage2DArray | gl_unsigned_int_image_2d_array | Texture2DArray |
uimageCubeArray | gl_unsigned_int_image_cube_map_array | TextureCubeMapArray |
uimage2DMS | gl_unsigned_int_image_2d_multisample | Texture2DMultisample |
uimage2DMSArray | gl_unsigned_int_image_2d_multisample_array | Texture2DMultisampleArray |
OpenGL ES 3.1は以下の画像タイプをサポートしています:
GLSLタイプ | OpenGLタイプ列挙型 | テクスチャタイプ |
---|---|---|
イメージ2D | GL_IMAGE_2D | Texture2D |
画像3D | GL_IMAGE_3D | Texture3D |
イメージキューブ | GL_IMAGE_CUBE | TextureCubeMap |
画像2D配列 | GL_IMAGE_2DA_ARRAY | Texture2DArray |
iimage2D | gl_int_image_2d | Texture2D |
iimage3D | gl_int_image_3d。 | Texture3D |
立方体 | gl_int_image_cube | TextureCubeMap |
iimage2DArray | gl_int_image_2d_array | Texture2DArray |
uimage2D | gl_unsigned_int_image_2d | Texture2D |
uimage3D | gl_unsigned_int_image_3d | Texture3D |
uimageCube | gl_unsigned_int_image_cube | TextureCubeMap |
uimage2DArray | gl_unsigned_int_image_2d_array | Texture2DArray |
OpenGL ES 3.2は、OpenGL ES 3.1のすべての画像タイプに加え、以下をサポートしています:
GLSLタイプ | OpenGLタイプ列挙型 | テクスチャ・タイプ |
---|---|---|
イメージバッファ | gl_image_buffer | TextureBuffer |
イメージキューブマップ配列 | gl_image_cube_map_array | TextureCubeMapArray |
iimageバッファ | gl_image_buffer | TextureBuffer |
iimageCubeArray | gl_int_image_cube_map_array | TextureCubeMapArray |
uimageBuffer | gl_unsigned_int_image_buffer | TextureBuffer |
uimageCubeArray | gl_unsigned_int_image_cube_map_array | TextureCubeMapArray |
予想される使い方は次のようになる:
import Qt3D.Render 2.14 Entity { ... Texture2D { id: tex2D ... } Material { parameters: Parameter { name: "imageUniformName" value: ShaderImage { texture: tex2D } } ... } ... }
プロパティの説明
access : enumeration |
シェーダーインスタンスから画像へのアクセスタイプを指定します。シェーダが互換性のないアクセスを持つ画像から書き込みや読み込みを行おうとした場合、その動作は未定義です。
定数 | 説明 |
---|---|
ShaderImage.ReadOnly | 読み取り専用アクセス。 |
ShaderImage.WriteOnly | 書き込み専用アクセス。 |
ShaderImage.ReadWrite | 読み書きアクセス。 |
デフォルト値はShaderImage.ReadWrite。
format : enumeration |
シェーダーからShaderImage に値を格納するときに本質的に重要な、画像フォーマットを指定します。
このフォーマットは、参照されるテクスチャのフォーマットと同じである必要はありません。しかし、互換性がなければなりません(サイズは一致しますが、クラスタイプは必ずしも一致しません)。たとえば、フォーマット R32F(サイズ 32 ビット、クラス 1x32)のテクスチャは、フォーマット RGBA8I(サイズ 32 ビット、クラス 4x8)の画像で使用できます。OpenGL仕様の表8.27に、サポートされているすべての画像フォーマットのサイズとクラスが示されています。
デフォルトでは、Qt3Dは参照されるテクスチャのフォーマットに合うように画像フォーマットを設定しようとします。
デフォルト値はShaderImage です。
layer : int |
ShaderImageこのプロパティは、layered が true に設定されている場合、または参照テクスチャのタイプがレイヤーと互換性がない場合、何もしません。
Note: 参照テクスチャのタイプがキューブマップまたはキューブマップ配列で、ĺayered が false に設定されている場合、面とレイヤは以下の方法で取得されます:
cubeMapLayer = layer / 6 cubeMapFace = layer - (cubeMapLayer * 6)
デフォルト値は 0 です。
layered : bool |
*
true に設定すると、参照されるテクスチャが 1 次元配列、2 次元配列、3 次元、キューブ マップ、キューブ マップ配列、または 2 次元マルチサンプル配列テクスチャの場合、すべてのレイヤに対してレベル全体がバインドされます。false に設定すると、layer プロパティで指定された単一のレイヤーのみがバインドされます。
デフォルト値はfalse
です。
mipLevel : int |
参照されるテクスチャのうち、どの mipLevel をShaderImage に使用するかを保持します。
デフォルト値は 0 です。
本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。