class_cubemap.rst 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/Cubemap.xml.
  6. .. _class_Cubemap:
  7. Cubemap
  8. =======
  9. **Inherits:** :ref:`ImageTextureLayered<class_ImageTextureLayered>` **<** :ref:`TextureLayered<class_TextureLayered>` **<** :ref:`Texture<class_Texture>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
  10. Six square textures representing the faces of a cube. Commonly used as a skybox.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. A cubemap is made of 6 textures organized in layers. They are typically used for faking reflections in 3D rendering (see :ref:`ReflectionProbe<class_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.
  15. This resource is typically used as a uniform in custom shaders. Few core Godot methods make use of **Cubemap** resources.
  16. To create such a texture file yourself, reimport your image files using the Godot Editor import presets. 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:
  17. - `2×3 cubemap template (default layout option) <https://raw.githubusercontent.com/godotengine/godot-docs/master/img/cubemap_template_2x3.webp>`__\
  18. - `3×2 cubemap template <https://raw.githubusercontent.com/godotengine/godot-docs/master/img/cubemap_template_3x2.webp>`__\
  19. - `1×6 cubemap template <https://raw.githubusercontent.com/godotengine/godot-docs/master/img/cubemap_template_1x6.webp>`__\
  20. - `6×1 cubemap template <https://raw.githubusercontent.com/godotengine/godot-docs/master/img/cubemap_template_6x1.webp>`__\
  21. \ **Note:** Godot doesn't support using cubemaps in a :ref:`PanoramaSkyMaterial<class_PanoramaSkyMaterial>`. To use a cubemap as a skybox, convert the default :ref:`PanoramaSkyMaterial<class_PanoramaSkyMaterial>` to a :ref:`ShaderMaterial<class_ShaderMaterial>` using the **Convert to ShaderMaterial** resource dropdown option, then replace its code with the following:
  22. .. code:: text
  23. shader_type sky;
  24. uniform samplerCube source_panorama : filter_linear, source_color, hint_default_black;
  25. uniform float exposure : hint_range(0, 128) = 1.0;
  26. void sky() {
  27. // If importing a cubemap from another engine, you may need to flip one of the `EYEDIR` components below
  28. // by replacing it with `-EYEDIR`.
  29. vec3 eyedir = vec3(EYEDIR.x, EYEDIR.y, EYEDIR.z);
  30. COLOR = texture(source_panorama, eyedir).rgb * exposure;
  31. }
  32. After replacing the shader code and saving, specify the imported Cubemap resource in the Shader Parameters section of the ShaderMaterial in the inspector.
  33. Alternatively, you can use `this tool <https://danilw.github.io/GLSL-howto/cubemap_to_panorama_js/cubemap_to_panorama.html>`__ to convert a cubemap to an equirectangular sky map and use :ref:`PanoramaSkyMaterial<class_PanoramaSkyMaterial>` as usual.
  34. .. rst-class:: classref-reftable-group
  35. Methods
  36. -------
  37. .. table::
  38. :widths: auto
  39. +---------------------------------+----------------------------------------------------------------------------------+
  40. | :ref:`Resource<class_Resource>` | :ref:`create_placeholder<class_Cubemap_method_create_placeholder>`\ (\ ) |const| |
  41. +---------------------------------+----------------------------------------------------------------------------------+
  42. .. rst-class:: classref-section-separator
  43. ----
  44. .. rst-class:: classref-descriptions-group
  45. Method Descriptions
  46. -------------------
  47. .. _class_Cubemap_method_create_placeholder:
  48. .. rst-class:: classref-method
  49. :ref:`Resource<class_Resource>` **create_placeholder**\ (\ ) |const| :ref:`🔗<class_Cubemap_method_create_placeholder>`
  50. Creates a placeholder version of this resource (:ref:`PlaceholderCubemap<class_PlaceholderCubemap>`).
  51. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  52. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  53. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  54. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  55. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  56. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  57. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
  58. .. |void| replace:: :abbr:`void (No return value.)`