Cubo com textura e depth buffer #5

Closed
opened 2026-10-03 17:25:06 -03:00 by caio · 1 comment
Owner

Objetivo

Desenhar o primeiro bloco de verdade: um cubo de grama texturizado, com as faces na ordem certa.

O que vou aprender

  • Index buffers para reaproveitar vértices
  • Depth buffer: como a GPU decide o que fica na frente
  • Texturas, samplers e coordenadas UV
  • Atlas de texturas: várias texturas numa imagem só
  • Filtragem Nearest para manter o visual pixel art
  • Back-face culling

Tarefas

  • Cubo com 24 vértices e 36 índices
  • Textura de profundidade, recriada quando a janela muda de tamanho
  • Carregar o atlas assets/texturas/atlas.png com a crate image e include_bytes!
  • Sampler com filtragem Nearest
  • Bloco de grama com texturas diferentes no topo, nas laterais e embaixo
  • Desenhar alguns cubos lado a lado

Pronto quando

Um bloco de grama texturizado aparece, e cubos atrás de outros ficam escondidos corretamente.

## Objetivo Desenhar o primeiro bloco de verdade: um cubo de grama texturizado, com as faces na ordem certa. ## O que vou aprender - Index buffers para reaproveitar vértices - Depth buffer: como a GPU decide o que fica na frente - Texturas, samplers e coordenadas UV - Atlas de texturas: várias texturas numa imagem só - Filtragem `Nearest` para manter o visual pixel art - Back-face culling ## Tarefas - [x] Cubo com 24 vértices e 36 índices - [x] Textura de profundidade, recriada quando a janela muda de tamanho - [x] Carregar o atlas `assets/texturas/atlas.png` com a crate `image` e `include_bytes!` - [x] Sampler com filtragem `Nearest` - [x] Bloco de grama com texturas diferentes no topo, nas laterais e embaixo - [x] Desenhar alguns cubos lado a lado ## Pronto quando Um bloco de grama texturizado aparece, e cubos atrás de outros ficam escondidos corretamente.
caio added this to the Fundação milestone 2026-10-03 17:25:06 -03:00
Author
Owner

Implementado em main.

Uma mudança em relação ao plano: em vez de carregar um atlas.png com a crate image, o atlas é gerado por código em src/render/atlas.rs, pixel a pixel, a partir de um ruído determinístico.

  • Não existe arquivo de arte para manter nem dependência extra
  • Não há risco de usar algo parecido com as texturas originais do Minecraft
  • Dá para ver na prática que uma textura é só um array de bytes RGBA

As texturas são: grama (topo e lado), terra, pedra, areia, tronco (lado e topo), folhas, tábuas, pedregulho e tijolo.

Implementado em main. Uma mudança em relação ao plano: em vez de carregar um `atlas.png` com a crate `image`, o atlas é **gerado por código** em `src/render/atlas.rs`, pixel a pixel, a partir de um ruído determinístico. - Não existe arquivo de arte para manter nem dependência extra - Não há risco de usar algo parecido com as texturas originais do Minecraft - Dá para ver na prática que uma textura é só um array de bytes RGBA As texturas são: grama (topo e lado), terra, pedra, areia, tronco (lado e topo), folhas, tábuas, pedregulho e tijolo.
caio closed this issue 2026-10-03 18:47:27 -03:00
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
caio/simple-minecraft-rust#5
No description provided.