Eu me codifiquei como visualizador OpenGL BSP para um formato de jogo antigo. É muito semelhante ao formato de arquivo Quake 3. Como meu interesse é desenvolver mecanismos gráficos, quero estar desenvolvendo enquanto uso a tecnologia atual. Por isso, recorro a vocês, especialistas no assunto, para orientações sobre o que focar. Gostaria que fosse o mais rápido possível e, considerando que os formatos de arquivo antigos são muito simples e têm poucos polígonos, acho que deve ser possível. Aqui estão as minhas perguntas:
Iluminação a. Faz sentido para mim aprender a iluminação de vértices ou devo apenas implementar a iluminação por pixel? Eu sei que o OpenGL tem um limite de 8 luzes. Devo realisticamente usar apenas um desses para luz ambiente e o restante computador através de shaders? Caso contrário, o que devo fazer?
Classificação / Seleção a. Qual é o algoritmo usado mais rápido e mais comum para classificar superfícies a serem renderizadas. Complexidade não é realmente um problema. Quero aprender o que está sendo usado no momento e maneiras de realmente renderizar apenas as coisas que posso ver. Eu já vi vários algoritmos descritos como o algoritmo do pintor e estou me perguntando o que faz mais sentido para a geometria baseada em BSP. b. Se eu tenho texturas com máscaras alfa, me disseram que a classificação tem algum tipo de envolvimento com esse processo. Como permito que eles sejam renderizados corretamente no espaço 3D?
Pipeline de gráficos a. Devo enviar meus dados de geometria via VBOs? Esse é o padrão usado hoje? b. Se eu tiver várias "regiões", possivelmente 200 a 300, devo encontrar uma maneira melhor de enviá-las para a GPU sem enviar 200 a 300 partes. Devo combiná-los em um e manter uma referência associada a cada um.
Alguma outra dica para renderização baseada em BSP e coisas dessa natureza?
Além disso, se eu disser algo incorreto, corrija-me. Sou aquela pessoa que prefere ser corrigida e um pouco envergonhada do que ignorante e inconsciente.
Obrigado pelo seu tempo. Eu realmente aprecio isso.