CubemapArray

继承: ImageTextureLayered < TextureLayered < Texture < Resource < RefCounted < Object

Cubemap的数组,存储在一起并带有单个引用。

描述

CubemapArrays由Cubemaps的数组组成。与Cubemaps一样,它们由多个纹理组成,纹理的数量必须可以被6整除(立方体的每个面一个)。

CubemapArrays的主要好处是可以使用单个纹理引用在着色器代码中访问它们。换句话说,您可以使用单个CubemapArray将多个Cubemaps传递到着色器中。Cubemaps分配在GPU上的相邻缓存区域中,这使得CubemapArrays成为存储多个Cubemaps的最有效方式。

i3D在内部使用CubemapArray的许多效果,包括Sky,如果您将ProjectSettings.rendering/reflections/sky_reflections/texture_array_reflections设置为true

要自己创建这样的纹理文件,请使用i3D编辑器导入预设重新导入图像文件。要从代码创建CubemapArray,请在CubemapArray类的实例上使用ImageTextureLayered.create_from_images()

预期的图像顺序是X+、X-、Y+、Y-、Z+、Z-(在i3D的坐标系中,所以Y+是“向上”,Z-是“向前”)。您可以使用以下模板之一作为基础:

-` 2×3立方体贴图模板(默认布局选项) <https://raw.githubusercontent.com/i3dengine/i3d-docs/master/tutorials/assets_pipeline/img/cubemap_template_2x3.webp>`__

-` 3×2立方体贴图模板 <https://raw.githubusercontent.com/i3dengine/i3d-docs/master/tutorials/assets_pipeline/img/cubemap_template_3x2.webp>`__

-` 1×6立方体贴图模板 <https://raw.githubusercontent.com/i3dengine/i3d-docs/master/tutorials/assets_pipeline/img/cubemap_template_1x6.webp>`__

-` 6×1立方体贴图模板 <https://raw.githubusercontent.com/i3dengine/i3d-docs/master/tutorials/assets_pipeline/img/cubemap_template_6x1.webp>`__

当使用默认的垂直导入选项(第一层在顶部)时,多个图层会堆叠在一起。或者,您可以在导入选项中选择水平布局(第一层在左侧)。

注意:由于图形API限制,兼容性渲染器不支持CubemapArray

方法


方法说明

Resource create_placeholder() const 🔗

创建此资源(PlaceholderCubemapArray)的占位符版本。