:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/Cubemap.xml. .. _class_Cubemap: Cubemap ======= **Inherits:** :ref:`ImageTextureLayered` **<** :ref:`TextureLayered` **<** :ref:`Texture` **<** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` Six square textures representing the faces of a cube. Commonly used as a skybox. .. rst-class:: classref-introduction-group Description ----------- A cubemap is made of 6 textures organized in layers. They are typically used for faking reflections in 3D rendering (see :ref:`ReflectionProbe`). It can be used to make an object look as if it's reflecting its surroundings. This usually delivers much better performance than other reflection methods. This resource is typically used as a uniform in custom shaders. Few core Godot methods make use of **Cubemap** resources. To create such a texture file yourself, reimport your image files using the Godot Editor import presets. To create a Cubemap from code, use :ref:`ImageTextureLayered.create_from_images()` on an instance of the Cubemap class. The expected image order is X+, X-, Y+, Y-, Z+, Z- (in Godot's coordinate system, so Y+ is "up" and Z- is "forward"). You can use one of the following templates as a base: - `2×3 cubemap template (default layout option) `__\ - `3×2 cubemap template `__\ - `1×6 cubemap template `__\ - `6×1 cubemap template `__\ \ **Note:** Godot doesn't support using cubemaps in a :ref:`PanoramaSkyMaterial`. To use a cubemap as a skybox, convert the default :ref:`PanoramaSkyMaterial` to a :ref:`ShaderMaterial` using the **Convert to ShaderMaterial** resource dropdown option, then replace its code with the following: .. code:: text shader_type sky; uniform samplerCube source_panorama : filter_linear, source_color, hint_default_black; uniform float exposure : hint_range(0, 128) = 1.0; void sky() { // If importing a cubemap from another engine, you may need to flip one of the `EYEDIR` components below // by replacing it with `-EYEDIR`. vec3 eyedir = vec3(EYEDIR.x, EYEDIR.y, EYEDIR.z); COLOR = texture(source_panorama, eyedir).rgb * exposure; } After replacing the shader code and saving, specify the imported Cubemap resource in the Shader Parameters section of the ShaderMaterial in the inspector. Alternatively, you can use `this tool `__ to convert a cubemap to an equirectangular sky map and use :ref:`PanoramaSkyMaterial` as usual. .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +---------------------------------+----------------------------------------------------------------------------------+ | :ref:`Resource` | :ref:`create_placeholder`\ (\ ) |const| | +---------------------------------+----------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_Cubemap_method_create_placeholder: .. rst-class:: classref-method :ref:`Resource` **create_placeholder**\ (\ ) |const| :ref:`🔗` Creates a placeholder version of this resource (:ref:`PlaceholderCubemap`). .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` .. |void| replace:: :abbr:`void (No return value.)`