Esferas e Listas Vinculadas
Fiz muitos progressos no Weekend Ray Tracer. Estou no capítulo 9 e aprendi muito sobre o processamento de imagens:
- Criei uma biblioteca robusta de álgebra linear cheia de funções uteis.
- Abstraia muitas das funções de um ray tracer em módulos (raios, câmera, cor, geometria, registro hits, matemática, números aleatórios, etc.)
- Aprendi como colorir superfícies pela normal da interseção com o raio, que faz uns efeitos bem psicodelicos:


- Aprendi como lidar com vários objetos em uma cena usando apenas listas linkadas, meu recorde é de 3000!

- Implementei anti-aliasing, sampling e correção de gama.
- Aprendi sobre superfícies escondidas e os efeitos associados que usamos para renderizá-los, como a difusão de raios para criar superfícies foscas.

Eu poderia falar mais coisas, mas você entendeu: o projeto é muito envolvente e muito gratificante.
É um pouco desafiador “transpilar” todos os exemplos C++ para C e ao mesmo tempo gerenciar as restrições impostas pelo projeto final. Com algumas exceções, não posso usar nenhuma biblioteca ou função externa, e tudo tem que seguir a norma da 42.
Essas restrições estão aprimorando minhas habilidades, e posso dizer que meu código está melhorando a cada hora. Eu percebo agora como C++ é relativamente alto em abstração comparado ao C; Existem várias operações simples com vetores que levam mais de 5 linhas para implementar, e todos os cabeçalhos e classes C++ cortariam algumas de minhas funções pela metade.
Estou gostando muito do projeto miniRT até agora,
e gostando mais do que printf.
Eu ja brinquie com os efeitos por horas e gerei centenas de imagens legais.
Hoje vou explorar o novo módulo do bootcamp Elixir que estou fazendo. Provavelmente levarei dois dias para fazer todas as aulas e desafios.