Mi sono codificato un visualizzatore OpenGL BSP per un vecchio formato di gioco. È molto simile al formato di file di Quake 3. Poiché il mio interesse è lo sviluppo di motori grafici, voglio svilupparmi mentre guardo utilizzando la tecnologia attuale. Quindi mi rivolgo a voi, esperti in materia, per la direzione su cosa focalizzare. Vorrei che questo fosse il più veloce possibile e considerando che i vecchi formati di file sono molto semplici e hanno pochi poligoni, penso che dovrebbe essere fattibile. Ecco le mie domande:
Illuminazione a. Ha senso per me imparare l'illuminazione dei vertici o devo semplicemente implementare l'illuminazione per pixel? b. So che OpenGL ha un limite di 8 luci. Dovrei realisticamente usare solo uno di quelli per la luce ambientale e il resto del computer tramite shader? In caso contrario, cosa devo fare?
Ordinamento / abbattimento a. Qual è l'algoritmo più veloce utilizzato più comunemente per il rendering delle superfici di ordinamento. La complessità non è davvero un problema. Voglio imparare ciò che viene attualmente utilizzato e i modi per rendere veramente solo le cose che posso vedere. Ho visto una serie di algoritmi descritti come l'algoritmo del pittore e mi chiedo cosa abbia più senso per la geometria basata su BSP. b. Se ho trame con maschere alfa, mi è stato detto che l'ordinamento ha una sorta di coinvolgimento con questo processo. Come posso consentire loro di eseguire il rendering correttamente nello spazio 3d?
Pipeline grafica a. Devo inviare i miei dati geometrici tramite VBO? È questo lo standard usato oggi? b. Se ho un certo numero di "regioni", forse 200-300, dovrei trovare un modo migliore per inviarle alla GPU senza inviare 200-300 blocchi. Dovrei combinarli in uno e mantenere un riferimento associato a ciascuno.
Qualche altro suggerimento per il rendering basato su BSP e cose del genere?
Inoltre, se ho detto qualcosa che non era corretto, per favore correggimi. Sono quella persona che preferirebbe essere corretta e leggermente imbarazzata che ignorante e inconsapevole.
Grazie per il tuo tempo. Lo apprezzo davvero.