Me he codificado un visor OpenGL BSP para un formato de juego antiguo. Es muy similar al formato de archivo Quake 3. Debido a que mi interés es desarrollar motores gráficos, quiero desarrollar mientras veo el uso de la tecnología actual. Así que me dirijo a ustedes, los expertos en el tema, para obtener instrucciones sobre en qué enfocarse. Me gustaría que esto sea lo más rápido posible y considerando que los formatos de archivo antiguos son muy simples y tienen pocos polígonos, creo que debería ser factible. Aquí están mis preguntas:
Iluminación a. ¿Tiene sentido para mí aprender la iluminación de vértices o debería implementar la iluminación por píxel? b. Sé que OpenGL tiene un límite de 8 luces. ¿Realmente debería usar solo uno de esos para la luz ambiental y el resto de la computadora a través de sombreadores? Si no, ¿qué debo hacer?
Clasificación / selección a. ¿Cuál es el algoritmo utilizado más rápido y más común para ordenar superficies para renderizar? La complejidad no es realmente un problema. Quiero aprender lo que se está utilizando actualmente y las formas de representar realmente las cosas que puedo ver. He visto varios algoritmos descritos como el algoritmo del pintor y me pregunto qué tiene más sentido para la geometría basada en BSP. si. Si tengo texturas con máscaras alfa, me dijeron que la clasificación tiene algún tipo de participación en este proceso. ¿Cómo les permito renderizar correctamente en el espacio 3d?
Tubería de gráficos a. ¿Debo enviar mis datos de geometría a través de VBO? ¿Es este el estándar utilizado hoy? si. Si tengo varias "regiones", posiblemente 200-300, ¿debería encontrar una mejor manera de enviarlas a la GPU sin enviar 200-300 fragmentos. ¿Debo combinarlos en uno y mantener una referencia asociada a cada uno?
¿Algún otro consejo para el renderizado basado en BSP y cosas de esa naturaleza?
Además, si dije algo incorrecto, corrígeme. Soy esa persona que preferiría ser corregida y un poco avergonzada que ignorante e inconsciente.
Gracias por tu tiempo. Realmente lo aprecio.