Theme Catppuccin
Make yourself at homeCatppuccin

A softer light for long learning sessions.

Appearance

Loading your preference…

Dark palette

Choose a dark palette to try it.

Light uses Latte. Your choices stay in this browser.

Give the garden depth

SKETCHBOOK / 06 Signal Garden · 2-week chapter

Page 1 of 3: An image has more than pixels

Storage, view, sampler

An image has more than pixels

A VkImage describes dimensions, format, mip levels, layers, samples, tiling, and usages. Memory backs it. An image view chooses how a subresource range is interpreted. A sampler describes filtering and addressing. Keeping these separate lets one image have several views, but also means a valid image handle alone does not establish a valid sampled binding. Check format support for the actual intended usages and tiling rather than assuming every format can be both a color attachment and storage image.

Upload a tiny checker petal texture first. A staging copy writes the destination subresource in an appropriate transfer layout; a later dependency transitions it to a layout suitable for shader sampling and makes the writes visible to the fragment shader. Layout transitions are part of synchronization, not cosmetic metadata. Track aspect, mip, and layer ranges, and do not transition untouched subresources as though they held initialized data.

Choose color encoding deliberately. An sRGB sampled color texture is decoded for linear shading, while normals and scalar data need linear formats. Present through a supported surface format with an understood output conversion. A bright image is not proof that color management is correct: use a gray ramp and a known blend to isolate the path.

From the page to your own work

Your studio assignment.

Compose a depth-tested botanical postcard with one tiny texture.

A finish line you can see

An overlap-order test, an image-state table, and a resize-safe textured scene.

  1. Query depth and sampled-image format support.
  2. Document each upload and sampling transition.
  3. Keep pipeline and rendering attachment formats consistent.
  4. Show identical opaque visibility when draw order is reversed.
Keep the evidence in your weekly notebook ↗
Explain it like an engineer

Try answering aloud before opening the review notes. Use your own implementation as evidence.

What responsibilities remain after switching to dynamic rendering?
  • Attachment format, sample count, area, and usage compatibility.
  • Image layouts and explicit producer/consumer dependencies.
  • Resource lifetime, extent changes, and defined load/store behavior.

These prompts support practice; they are not an automatic assessment of your work.

A small creative variation ↗

Add a second view of the same image for a documented mip range without adding a new texture allocation.

Optional. Save it for later if this chapter already feels full.

Coming back after a break? ↩

Render two solid overlapping triangles with depth. Restore texture sampling only after that test passes.

Books & principles behind this study +

Original Parallax explanations and assignments, with these works for further reading.

YOUR MARGIN NOTES

Leave yourself a good question.

What changed your mind? What would you try next?

Notes are private to this browser and saved as you write.

A CHECKPOINT, NOT A SCORE

Can you explain the idea and try the exercise yourself?

Completion records your own assessment. It does not compile or test your C++.
Companion source 2 files