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?