<ol>
<li><p>A &quot;face&quot; simply specifies one of the six images at a level in a cubemap (and its optional mip pyramid).</p>
<p>It is helpful to think of level L of your mipmapped cube array texture as consisting of a 2D array of images, with exactly six columns comprising the six faces of the logical cube, and the N rows corresponding to the N layers of the array (some APIs call these &quot;slices&quot;). This is because non-array Cube textures are already structured like 2D arrays with exactly 6 layers.</p>
</li>
<li><p>This is correct with the exception that it would refer to the entire mip pyramid for that layer-face. Regarding the 2D array of faces and layers i just mentioned, OpenGL uses a single index for this 2d array, &quot;unrolls&quot; it, and calls this 1D index a &quot;layer-face&quot;.</p>
</li>
<li><p>Yes, but again, encompasses the mip pyramids for each layer-face image in that layer</p>
</li>
<li><p>Depends on the context, could be either.</p>
</li>
</ol>

CC BY-SA 3.0
2016-08-08T05:56:02.177Z
I've [updated the diagram](http://geometrian.com/programming/tutorials/gltextureterm/index.php); can you check it? Also, perhaps you could elaborate on the "context" for "mipmap chain"?
geometrian
CC BY-SA 3.0
2016-08-08T22:29:54.770Z
Yeah, so by context, i mean that the 'mipmap chain' could refer just to the image pyramid for a single layer-face, or for all faces in a layer, or for the whole thing.  Which is meant will depend on what is being discussed.

So, for the purposes of your ASCII chart, where you have "mipmap / mipmap chain" grouped, I'd qualify that as the "layer-face mipmap chain"
GroverManheim
CC BY-SA 3.0
2016-08-08T04:23:40.170Z
2016-08-08T04:23:40.170Z
2020-06-18T08:32:12.800Z
GroverManheim
<p>I'm generalizing my texturing code, and have become confused by the frankly contradictory information about textures' pieces.  Specifically, <strong>I'm looking to understand what <em>exactly</em> the terms "face", "layer", "layer-face", and "mipmap chain" refer to</strong>.</p>

<hr>

<p>I've put together an !ASCII-art diagram of what I think I understand for the example of a mipmapped cubemap array texture containing two cubemaps (<a href="http://geometrian.com/programming/tutorials/gltextureterm/index.php" rel="noreferrer">from my site</a>, reproduced poorly here):<pre>
                                                                                   "Mipmap" /
                                                         "Layer-Face"            "Mipmap Chain"
                                                         (or "Image")              ┌────┴────┐
┌─ "Texture" (2D Cubemap Array) ──────────────────────────────┼────────────────────┼─────────┼──────────────────────────────────────────────┐
│ ┌─ "Image Array" / "Layered Image" / "Mipmap Level" ────────┼────────────────────┼─────────┼────────────────────────────────────────────┐ │
│ │ ┌─ "Layer" of Array ──────────────────────────────────────┼───────┐            │         │                                            │ │
│ │ │                                                    ┌────┴────┐  │            │         │                                            │ │
│ │ │   ╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗│╔═╦═╦═╦═╗│  │   ╔═╦═╦═╦═╗│╔═╦═╦═╦═╗│╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗     │ │
│ │ │   ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣│╠═╬═╬═╬═╣│  │   ╠═╬═╬═╬═╣│╠═╬═╬═╬═╣│╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣     │ │
│ │ │   ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣│╠═╬═╬═╬═╣│  │   ╠═╬═╬═╬═╣│╠═╬═╬═╬═╣│╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣     │ │
│ │ │   ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣│╠═╬═╬═╬═╣│  │   ╠═╬═╬═╬═╣│╠═╬═╬═╬═╣│╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣     │ │
│ │ │   ╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝│╚═╩═╩═╩═╝│  │   ╚═╩═╩═╩═╝│╚═╩═╩═╩═╝│╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝     │ │
│ │ │                                                    └─────────┘  │            │         │                                            │ │
│ │ └─────────────────────────────────────────────────────────────────┘            │         │                                            │ │
│ └────────────────────────────────────────────────────────────────────────────────┼─────────┼────────────────────────────────────────────┘ │
│         ╔═╦═╗     ╔═╦═╗     ╔═╦═╗     ╔═╦═╗     ╔═╦═╗     ╔═╦═╗           ╔═╦═╗  │  ╔═╦═╗  │  ╔═╦═╗     ╔═╦═╗     ╔═╦═╗     ╔═╦═╗         │
│         ╠═╬═╣     ╠═╬═╣     ╠═╬═╣     ╠═╬═╣     ╠═╬═╣     ╠═╬═╣           ╠═╬═╣  │  ╠═╬═╣  │  ╠═╬═╣     ╠═╬═╣     ╠═╬═╣     ╠═╬═╣         │
│         ╚═╩═╝     ╚═╩═╝     ╚═╩═╝     ╚═╩═╝     ╚═╩═╝     ╚═╩═╝           ╚═╩═╝  │  ╚═╩═╝  │  ╚═╩═╝     ╚═╩═╝     ╚═╩═╝     ╚═╩═╝         │
│                                                                                  │         │                                              │
│                                                                                  │         │                                              │
│                                                                                  │         │                                              │
│          ╔═╗       ╔═╗       ╔═╗       ╔═╗       ╔═╗       ╔═╗             ╔═╗   │   ╔═╗   │   ╔═╗       ╔═╗       ╔═╗       ╔═╗          │
│          ╚═╝       ╚═╝       ╚═╝       ╚═╝       ╚═╝       ╚═╝             ╚═╝   │   ╚═╝   │   ╚═╝       ╚═╝       ╚═╝       ╚═╝          │
│                                                                                  └─────────┘                                              │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
</pre></p>

<p>Basically, I'd like corrections and additions to the above diagram, but if phrased as my key questions:</p>

<ol>
<li>Where does "face" fit in?</li>
<li>Is my "layer-face" description correct?  Or maybe it refers to all mip levels instead?</li>
<li>Is my description of a "layer" correct?</li>
<li>Similarly, does a "mipmap chain" refer to all mip levels of a single face, or to all mip levels of the layer?</li>
</ol>

CC BY-SA 3.0
2016-08-08T04:23:50.967Z
Your ASCII diagram is cool
GroverManheim
<opengl><texture><terminology>
Texture Parts Terminology
geometrian
# Texture Parts Terminology

(Asked by: username_0 on 2016-08-06)

I'm generalizing my texturing code, and have become confused by the frankly contradictory information about textures' pieces. Specifically, **I'm looking to understand what *exactly* the terms "face", "layer", "layer-face", and "mipmap chain" refer to**.

---

I've put together an !ASCII-art diagram of what I think I understand for the example of a mipmapped cubemap array texture containing two cubemaps ([from my site](http://username_0.com/programming/tutorials/gltextureterm/index.php), reproduced poorly here):

```

                                                                                   "Mipmap" /
                                                         "Layer-Face"            "Mipmap Chain"
                                                         (or "Image")              ┌────┴────┐
┌─ "Texture" (2D Cubemap Array) ──────────────────────────────┼────────────────────┼─────────┼──────────────────────────────────────────────┐
│ ┌─ "Image Array" / "Layered Image" / "Mipmap Level" ────────┼────────────────────┼─────────┼────────────────────────────────────────────┐ │
│ │ ┌─ "Layer" of Array ──────────────────────────────────────┼───────┐            │         │                                            │ │
│ │ │                                                    ┌────┴────┐  │            │         │                                            │ │
│ │ │   ╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗│╔═╦═╦═╦═╗│  │   ╔═╦═╦═╦═╗│╔═╦═╦═╦═╗│╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗ ╔═╦═╦═╦═╗     │ │
│ │ │   ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣│╠═╬═╬═╬═╣│  │   ╠═╬═╬═╬═╣│╠═╬═╬═╬═╣│╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣     │ │
│ │ │   ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣│╠═╬═╬═╬═╣│  │   ╠═╬═╬═╬═╣│╠═╬═╬═╬═╣│╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣     │ │
│ │ │   ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣│╠═╬═╬═╬═╣│  │   ╠═╬═╬═╬═╣│╠═╬═╬═╬═╣│╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣ ╠═╬═╬═╬═╣     │ │
│ │ │   ╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝│╚═╩═╩═╩═╝│  │   ╚═╩═╩═╩═╝│╚═╩═╩═╩═╝│╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝ ╚═╩═╩═╩═╝     │ │
│ │ │                                                    └─────────┘  │            │         │                                            │ │
│ │ └─────────────────────────────────────────────────────────────────┘            │         │                                            │ │
│ └────────────────────────────────────────────────────────────────────────────────┼─────────┼────────────────────────────────────────────┘ │
│         ╔═╦═╗     ╔═╦═╗     ╔═╦═╗     ╔═╦═╗     ╔═╦═╗     ╔═╦═╗           ╔═╦═╗  │  ╔═╦═╗  │  ╔═╦═╗     ╔═╦═╗     ╔═╦═╗     ╔═╦═╗         │
│         ╠═╬═╣     ╠═╬═╣     ╠═╬═╣     ╠═╬═╣     ╠═╬═╣     ╠═╬═╣           ╠═╬═╣  │  ╠═╬═╣  │  ╠═╬═╣     ╠═╬═╣     ╠═╬═╣     ╠═╬═╣         │
│         ╚═╩═╝     ╚═╩═╝     ╚═╩═╝     ╚═╩═╝     ╚═╩═╝     ╚═╩═╝           ╚═╩═╝  │  ╚═╩═╝  │  ╚═╩═╝     ╚═╩═╝     ╚═╩═╝     ╚═╩═╝         │
│                                                                                  │         │                                              │
│                                                                                  │         │                                              │
│                                                                                  │         │                                              │
│          ╔═╗       ╔═╗       ╔═╗       ╔═╗       ╔═╗       ╔═╗             ╔═╗   │   ╔═╗   │   ╔═╗       ╔═╗       ╔═╗       ╔═╗          │
│          ╚═╝       ╚═╝       ╚═╝       ╚═╝       ╚═╝       ╚═╝             ╚═╝   │   ╚═╝   │   ╚═╝       ╚═╝       ╚═╝       ╚═╝          │
│                                                                                  └─────────┘                                              │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

```

Basically, I'd like corrections and additions to the above diagram, but if phrased as my key questions:

1. Where does "face" fit in?
2. Is my "layer-face" description correct? Or maybe it refers to all mip levels instead?
3. Is my description of a "layer" correct?
4. Similarly, does a "mipmap chain" refer to all mip levels of a single face, or to all mip levels of the layer?

**Tags:** opengl, texture, terminology

> **Comments:**
> **username_1**: Your ASCII diagram is cool  

---

## 1 answers

### Answer by username_1 on 2016-08-08. Score: 3 | Accepted answer

1. A "face" simply specifies one of the six images at a level in a cubemap (and its optional mip pyramid).

   It is helpful to think of level L of your mipmapped cube array texture as consisting of a 2D array of images, with exactly six columns comprising the six faces of the logical cube, and the N rows corresponding to the N layers of the array (some APIs call these "slices"). This is because non-array Cube textures are already structured like 2D arrays with exactly 6 layers.
2. This is correct with the exception that it would refer to the entire mip pyramid for that layer-face. Regarding the 2D array of faces and layers i just mentioned, OpenGL uses a single index for this 2d array, "unrolls" it, and calls this 1D index a "layer-face".
3. Yes, but again, encompasses the mip pyramids for each layer-face image in that layer
4. Depends on the context, could be either.

> **Comments:**
> **username_0**: I've [updated the diagram](http://username_0.com/programming/tutorials/gltextureterm/index.php); can you check it? Also, perhaps you could elaborate on the "context" for "mipmap chain"?  
> **username_1**: Yeah, so by context, i mean that the 'mipmap chain' could refer just to the image pyramid for a single layer-face, or for all faces in a layer, or for the whole thing.  Which is meant will depend on what is being discussed.  So, for the purposes of your ASCII chart, where you have "mipmap / mipmap chain" grouped, I'd qualify that as the "layer-face mipmap chain"  

---

