66 lines
2.0 KiB
Markdown
66 lines
2.0 KiB
Markdown
# GFX Mental Model
|
|
|
|
Status: pedagogical
|
|
Companion spec: [`../specs/04-gfx-peripheral.md`](../specs/04-gfx-peripheral.md)
|
|
|
|
PROMETEU trata gráficos como um periférico explícito, não como uma GPU moderna.
|
|
|
|
O modelo mental correto é o de uma máquina 2D retro com:
|
|
|
|
- framebuffer;
|
|
- tile banks;
|
|
- tile layers;
|
|
- sprites por ordem de desenho;
|
|
- composição determinística por frame.
|
|
|
|
## Why This Exists
|
|
|
|
O objetivo não é imitar hardware histórico byte a byte. O objetivo é capturar a família de restrições e de linguagem visual de consoles como SNES, CPS-2 e Neo Geo, mas em um contrato pequeno, portátil e implementável em desktop e hardware DIY.
|
|
|
|
Isso produz algumas consequências importantes:
|
|
|
|
- desenho por ordem importa mais do que “efeitos”;
|
|
- paletas importam como parte do asset design;
|
|
- o programador pensa em rasterização, não em shaders;
|
|
- o custo visual fica mais observável.
|
|
|
|
## What The GFX Is Not
|
|
|
|
PROMETEU GFX não é:
|
|
|
|
- pipeline moderno de GPU;
|
|
- framebuffer RGBA com alpha arbitrário;
|
|
- sistema de shaders;
|
|
- composição automática pós-processada.
|
|
|
|
Essas ausências são deliberadas. Elas forçam uma linguagem visual mais próxima de console clássico e mantêm o contrato executável em ambientes modestos.
|
|
|
|
## Practical Intuition
|
|
|
|
- Tile layers existem para mundo e cenário.
|
|
- HUD existe para informação fixa e deve permanecer desacoplado da câmera.
|
|
- Sprites existem para entidades móveis e sua profundidade depende da ordem e da prioridade.
|
|
- Paletas existem para variar estado visual sem duplicar tile art.
|
|
- Fade existe como efeito especial discreto, não como alpha genérico.
|
|
|
|
## Palette Thinking
|
|
|
|
Uma boa maneira de pensar PROMETEU é: arte e cor não são a mesma coisa.
|
|
|
|
O tile é a forma. A paleta é o estado visual.
|
|
|
|
Isso habilita:
|
|
|
|
- variação de inimigos;
|
|
- mudança de bioma;
|
|
- dano, gelo, veneno, power-up;
|
|
- temas de HUD;
|
|
- ciclos de dia e noite.
|
|
|
|
## Use Cases
|
|
|
|
- troca de área com `Scene Fade`;
|
|
- troca de HUD com `HUD Fade`;
|
|
- flash de dano ou teleporte;
|
|
- swap global de paleta para clima ou estado de mundo.
|