Semestre 02, 2026
El carácter de la pared da un color. La estaca se pinta de ese color, de arriba abajo.
El carácter de la pared da una imagen. La estaca muestra una tira vertical de esa imagen.
tx = 0 tx = 127
┌─────────────────────────┐ ty = 0
│ · · · · · · · · · · · · │
│ · · · · ███ · · · · · · │
│ · · · · ███ · · · · · · │
│ · · · · · · · · · · · · │
│ · · · · · · · · · · · · │
└─────────────────────────┘ ty = 127
textura[ty * 128 + tx]
(0, 0) u → (1, 0)
┌───────────────────────────┐ ty = 0
│ │
│ │
v │ │
↓ │ │
│ │
└───────────────────────────┘ ty = 127
(0, 1) (1, 1)
tx = 0 tx = 127
Dice en qué punto de la pared pegó el rayo. Se calcula una vez por columna y no vuelve a cambiar.
Dice a qué altura de la pared corresponde cada píxel. Cambia en cada fila.
la textura la pantalla
tx=0 tx=48 tx=127
┌───────────╥───────────┐ ┌─────────────────────┐
│ ║ │ v=0.00 │ ┌─╥─┐ │ arriba
│ ║ │ │ │ ║ │ │
│ ║ │ v=0.50 │────────┼─╫─┼────────│ horizonte
│ ║ │ │ │ ║ │ │
│ ║ │ v=0.99 │ └─╨─┘ │ abajo
└───────────╨───────────┘ └─────────────────────┘
▲ ▲
u = 0.375 fija la columna i
toda la tira se estira un píxel de ancho
sobre la estaca
Es la misma cuenta que ya hace el rayo para avanzar. Solo hay que guardarla.
paso = 1.0
· · · · █ ← se detiene aquí
↑ ↑
cara │ │ punto reportado
└──┘
error hasta 1.0
paso = 0.05
····························█
↑↑
error hasta 0.05
marchado fijo salto a frontera
┌───┬───┬───┐ ┌───┬───┬───┐
│·· │···│···│ │ │ │ │
│·· │···│···│ ●───●───●───●
│·· │···│ ██│ │ │ │ ██│
└───┴───┴───┘ └───┴───┴───┘
cientos de pruebas tres saltos exactos
x=400 x=500
┌──────────────┐ y=300
│ │
cara │ │ cara
vertical │ BLOQUE │ vertical
u ← y │ │ u ← y
│ │
└──────────────┘ y=400
cara horizontal u ← x
pantalla textura
arriba ─── ┌───┐ ty = 0
│███│
│███│
horizonte ─┼███┤ ty = 64
│███│
│███│
abajo ──── └───┘ ty = 127
altura px ←→ T_h texels
Mezclarlas aplasta la textura dentro de la parte visible.
símbolo antes ahora
+ color azul textura de esquina
- color rojo textura horizontal
| color rojo textura vertical
g color verde textura de meta
otro color claro textura por defecto
columna i de la pantalla
│
▼ lanzar el rayo ───────────► distancia · carácter · impacto
│
▼ corregir el ojo de pez ───► distancia corregida
│
▼ medir la estaca ──────────► altura · orillas reales
│
├──► elegir la imagen del catálogo
├──► coordenada horizontal ───► columna de texel
├──► paso vertical y arranque
│
▼ recortar a la pantalla ───► rango de filas visible
│
▼ por cada fila: leer texel → atenuar → pintar
texel original
┌────────┬────────┬────────┐
│ R │ G │ B │
│ 200 │ 180 │ 150 │
└────────┴────────┴────────┘
│ │ │
× f × f × f f = 0.70
▼ ▼ ▼
┌────────┬────────┬────────┐
│ 140 │ 126 │ 105 │
└────────┴────────┴────────┘