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, 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:
- Where does "face" fit in?
- Is my "layer-face" description correct? Or maybe it refers to all mip levels instead?
- Is my description of a "layer" correct?
- Similarly, does a "mipmap chain" refer to all mip levels of a single face, or to all mip levels of the layer?