O que todo programador gráfico deve escrever [fechado]

18

Eu já vi essa pergunta no SO, mas aqui quero que ele se concentre no GFX.

Então, na sua opinião, quais aplicativos / recursos todo programador GFX aspirante deve escrever / alterar para melhorar?

Wiki da comunidade, pois não há "resposta certa".

LE: Não se refere a jogos reais, mas a recursos gráficos, por exemplo, alterando algo em um mecanismo (por exemplo, como ele carrega objetos), criando um compositor, etc.

Cristina
fonte
2
Semelhante a esta pergunta: gamedev.stackexchange.com/questions/854/…
Bryan Denny

Respostas:

22

Minha resposta é sempre a mesma: se você ainda não escreveu uma, escreva um traçador de raios.

Você terá que lidar com estruturas de otimização, precisão numérica e todos os tipos de outras questões, mas também trabalhará diretamente com a matemática da luz de uma maneira que raramente faz ao lidar com todos os hacks e aproximações que compõem um renderizador de produção em tempo real.

Afaste todo o edifício de sistemas de carregamento, palavras-chave da semana, adie isso ou envie-o para a frente e, finalmente, você ficará com a luz viajando pelo meio. No final, isso é tudo o que há nos gráficos.

Charlie
fonte
Interessante, eu estava pensando em sugerir um traçador de raios também, um ótimo exercício de matemática. Eu discordo do diferido ser um chavão da semana, é, como o raytracing, uma mudança bastante grande na maneira como você aborda sua renderização, que, para um programador gráfico, parece ser algo que você deve estar ciente.
Kaj
Eu diria que a otimização não é tão importante quanto lidar com malhas arbitrárias, o que é um passo que muitas pessoas nunca dão aos raytracers.
Jonathan Fischoff
Eu segundo (terceiro?) Essa sugestão, com a ressalva de que (como mencionado) ele precisa para suportar malhas, e não apenas parar nas esferas brilhantes em um tabuleiro de damas. Pontos de bônus por qualquer tentativa de iluminação global. Mesmo que você não o otimize fortemente para algo realmente útil , você deve se esforçar para entender quais bits são lentos e por quê.
JasonD
E uma ressalva com essa sugestão - enquanto a viagem leve através de um meio é tudo o que há para gráficos, ele oferece muito pouco treinamento no que você precisa em ambientes de produção atuais (atuais).
Kaj
1
+1 escrevendo um ray tracer foi a coisa útil mais eu aprendi na aula do meu gráfico faculdade
Bryan Denny
7

Hoje em dia, pode ser de pouca utilidade prática, mas escrever em um renderizador de software, pelo menos básico (talvez apenas alguns cubos com textura), é um exercício que vale a pena.

Compreender como transformar, projetar, recortar, classificar em profundidade, rasterizar e mapear polígonos de mapa você mesmo fornecerá uma compreensão muito melhor do que o hardware 3D e as APIs de renderização estão fazendo

bluescrn
fonte
praticamente isso. exceto isso, um sprite blitter com suporte alfa. ..ou pelo menos alguma coisa, QUALQUER COISA, onde você manipula pixels por seus valores de bits.
Lassi Kinnunen
6

Apesar de não renderizar código, acho que escrever um compilador BSP e acompanhar o código transversal é um bom exercício de matemática vetorial.
Em segundo lugar, um renderizador adiado. Não porque é a resposta final à renderização, mas fornecerá informações sobre outra abordagem da renderização.

Kaj
fonte
2

Aprenda a mecânica e as habilidades de escrever bons shaders. Embora não seja 100% necessário em todos os casos, é uma habilidade valiosa para se conhecer.

RCIX
fonte
Concordo com a sua resposta, no entanto, é muito ampla e alguns recursos e links para eles não prejudicariam uma resposta completa :).
Lukas.pukenis