Ho postato la stessa domanda a StackOverflow e Stackexchange ed entrambi sono stati convertiti in downsover in obliquo come "troppo ampio". Quindi forse questo sarà un posto migliore per questo.
Sto lavorando su un motore di rendering con i miei binding C # per OpenGL e ho un paio di domande riguardo ai costrutti di OpenGL e ai concetti di OOP. Poiché non voglio trattare direttamente i buffer ogni volta che eseguo il rendering di qualcosa, sarebbe opportuno creare una classe "Mesh" che gestisca i propri buffer.
Che tipo di struttura avrebbe senso per un motore di rendering che utilizza OpenGL?
Quali sono alcune delle classi che dovrei avere e qual è il loro scopo? (VAO, VBO, Shader)
Che tipo di informazioni dovrebbero essere accessibili a ciascuna delle classi? (Se un VAO gestisce il proprio shader?)
Esistono esempi di open source focalizzati sull'architettura di rendering semplice per come potrebbe funzionare?
I progetti esistenti come Ogre3D, Delta e Godot sono un modo troppo ingegnerizzato per il mio scopo dal momento che implementano più livelli di astrazione che si concentrano sullo sviluppo del gioco e mi piacerebbe cogliere l'effettivo aspetto di rendering di esso (es .: gestione dei buffer e degli shader).
Lo so, lo so. "Crea un gioco, non un motore". Ma fare un motore è esattamente quello che voglio. Voglio conoscere i dettagli di come un pixel / frammento appare sullo schermo prima di entrare nello sviluppo del gioco stesso.
Le risposte usando C ++ / C # sarebbero preferibili, ma ogni tipo di risposta è apprezzata! Grazie! :)