Difference between revisions of "love.graphics.newCubeImage"

m (Arguments)
(Added example images, image ordering, and a major caveat)
 
Line 10: Line 10:
  
 
For variants of this function which accept a single image containing multiple cubemap faces, they must be laid out in one of the following forms in the image:
 
For variants of this function which accept a single image containing multiple cubemap faces, they must be laid out in one of the following forms in the image:
<source lang="lua">
 
  +y
 
+z +x -z
 
  -y
 
  -x
 
</source>
 
or:
 
 
<source lang="lua">
 
<source lang="lua">
 
   +y
 
   +y
Line 22: Line 15:
 
   -y
 
   -y
 
</source>
 
</source>
 +
[[File:cubemap-sidecross-earth.png|128px]]
 +
 
or:
 
or:
 
<source lang="lua">
 
<source lang="lua">
Line 31: Line 26:
 
-z
 
-z
 
</source>
 
</source>
 +
[[File:cubemap-verticalstrip-earth.png|32px]]
 +
 
or:
 
or:
 
<source lang="lua">
 
<source lang="lua">
 
+x -x +y -y +z -z
 
+x -x +y -y +z -z
 
</source>
 
</source>
 +
[[File:cubemap-horizontalstrip-earth.png|192px]]
  
 +
or:
 +
<source lang="lua">
 +
  +y
 +
+z +x -z
 +
  -y
 +
  -x
 +
</source>
 +
[[File:cubemap-upcross-earth.png|96px]]
 +
 +
Note that this form, despite looking like it should fold into a cube, does not do so: the orientation of the individual faces is the same as in the other three layouts.
 
== Function ==
 
== Function ==
 
Creates a cubemap Image given a single image file containing multiple cube faces.
 
Creates a cubemap Image given a single image file containing multiple cube faces.
Line 47: Line 55:
 
{{subparam|boolean|mipmaps (false)|True to make the image use mipmaps, false to disable them. Mipmaps will be automatically generated if the image isn't a [[PixelFormat|compressed texture]] format.}}
 
{{subparam|boolean|mipmaps (false)|True to make the image use mipmaps, false to disable them. Mipmaps will be automatically generated if the image isn't a [[PixelFormat|compressed texture]] format.}}
 
{{subparam|boolean|linear (false)|True to treat the image's pixels as linear instead of sRGB, when [[love.graphics.isGammaCorrect|gamma correct rendering]] is enabled. Most images are authored as sRGB.}}
 
{{subparam|boolean|linear (false)|True to treat the image's pixels as linear instead of sRGB, when [[love.graphics.isGammaCorrect|gamma correct rendering]] is enabled. Most images are authored as sRGB.}}
 
 
=== Returns ===
 
=== Returns ===
 
{{param|Image|image|An cubemap Image object.}}
 
{{param|Image|image|An cubemap Image object.}}
Line 58: Line 65:
 
</source>
 
</source>
 
=== Arguments ===
 
=== Arguments ===
{{param|table|faces|A table containing 6 filepaths to images (or [[File]], [[FileData]], [[ImageData]], or [[CompressedImageData]] objects), in an array. Each face image must have the same dimensions. A table of tables can also be given, where each sub-table contains all mipmap levels for the cube face index of that sub-table.}}
+
{{param|table|faces|A table containing 6 filepaths to images (or [[File]], [[FileData]], [[ImageData]], or [[CompressedImageData]] objects), in an array, in the order +x -x +y -y +z -z. Each face image must have the same dimensions. A table of tables can also be given, where each sub-table contains all mipmap levels for the cube face index of that sub-table.}}
 
{{param|table|settings (nil)|Optional table of settings to configure the cubemap image, containing the following fields:}}
 
{{param|table|settings (nil)|Optional table of settings to configure the cubemap image, containing the following fields:}}
 
{{subparam|boolean|mipmaps (false)|True to make the image use mipmaps, false to disable them. Mipmaps will be automatically generated if the image isn't a [[PixelFormat|compressed texture]] format.}}
 
{{subparam|boolean|mipmaps (false)|True to make the image use mipmaps, false to disable them. Mipmaps will be automatically generated if the image isn't a [[PixelFormat|compressed texture]] format.}}

Latest revision as of 11:57, 10 August 2021

Available since LÖVE 11.0
This function is not supported in earlier versions.

Creates a new cubemap Image.

O.png This function can be slow if it is called repeatedly, such as from love.update or love.draw. If you need to use a specific resource often, create it once and store it somewhere it can be reused!  



Cubemap images have 6 faces (sides) which represent a cube. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).

To use a cubemap image in a Shader, it must be declared as a CubeImage or samplerCube type (instead of Image or sampler2D). The Texel(CubeImage image, vec3 direction) shader function must be used to get pixel colors from the cubemap. The vec3 argument is a normalized direction from the center of the cube, rather than explicit texture coordinates.

Each face in a cubemap image must have square dimensions.

For variants of this function which accept a single image containing multiple cubemap faces, they must be laid out in one of the following forms in the image:

   +y
-x +z +x -z
   -y

cubemap-sidecross-earth.png

or:

+x
-x
+y
-y
+z
-z

cubemap-verticalstrip-earth.png

or:

+x -x +y -y +z -z

cubemap-horizontalstrip-earth.png

or:

   +y
+z +x -z
   -y
   -x

cubemap-upcross-earth.png

Note that this form, despite looking like it should fold into a cube, does not do so: the orientation of the individual faces is the same as in the other three layouts.

Function

Creates a cubemap Image given a single image file containing multiple cube faces.

Synopsis

image = love.graphics.newCubeImage( filename, settings )

Arguments

string filename
The filepath to a cubemap image file (or a File, FileData, or ImageData).
table settings (nil)
Optional table of settings to configure the cubemap image, containing the following fields:
boolean mipmaps (false)
True to make the image use mipmaps, false to disable them. Mipmaps will be automatically generated if the image isn't a compressed texture format.
boolean linear (false)
True to treat the image's pixels as linear instead of sRGB, when gamma correct rendering is enabled. Most images are authored as sRGB.

Returns

Image image
An cubemap Image object.

Function

Creates a cubemap Image given a different image file for each cube face.

Synopsis

image = love.graphics.newCubeImage( faces, settings )

Arguments

table faces
A table containing 6 filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array, in the order +x -x +y -y +z -z. Each face image must have the same dimensions. A table of tables can also be given, where each sub-table contains all mipmap levels for the cube face index of that sub-table.
table settings (nil)
Optional table of settings to configure the cubemap image, containing the following fields:
boolean mipmaps (false)
True to make the image use mipmaps, false to disable them. Mipmaps will be automatically generated if the image isn't a compressed texture format.
boolean linear (false)
True to treat the image's pixels as linear instead of sRGB, when gamma correct rendering is enabled. Most images are authored as sRGB.

Returns

Image image
An cubemap Image object.

See Also


Other Languages