[3] Basic Structure of the 3D Engine


Basic Structure of the 3D Engine

Above, I have already discussed the goals of my engine. User-friendly handling is at the forefront of my considerations. This applies to creating the window and message loops as well as creating primitives. The engine itself consists of three main components. The developer's application is one of them and represents the part that the user creates. The second part is the engine itself, which consists of a variety of classes, functions, and structures. A portion of this component autonomously performs certain tasks. It processes the developer's instructions and manages all necessary resources to render a 3D object on the screen. The third part, while less significant for the user and the engine, but responsible for creating a window and managing the message loop, should not be of further interest to the user. This represents the basic structure of the engine.

The user starts their program, as is customary in all C/C++ programs, with an int main(). This function is called first by the engine after all necessary initialization steps have been completed. At this point, the user does not need to do anything further.

I should mention that after creating the Windows window, a console is also created where debug information can be displayed. For this purpose, there is a simple way to output values of variables or check certain conditions, for example, by using Debug::Log("The variable has the value", variable);. This functionality will later be very helpful for me to output information about the graphics card or other system details.

Grundlegende Struktur der 3D Engine

Weiter oben habe ich bereits über die Ziele meiner Engine gesprochen. Eine benutzerfreundliche Handhabung steht dabei im Mittelpunkt meiner Überlegungen. Das gilt für die Erstellung des Fensters und die Nachrichtenschleifen bis zum Erstellen von Primitiven. Die Engine selbst besteht aus drei Hauptkomponenten. Die Anwendung des Entwicklers ist eine davon und stellt den Teil dar, den der Anwender erstellt. Der zweite Teil ist die Engine selbst, welche aus einer Vielzahl von Klassen, Funktionen und Strukturen besteht. Ein Teil dieser Komponente übernimmt autonom bestimmte Aufgaben. Er verarbeitet die Anweisungen des Entwicklers und verwaltet sämtliche benötigten Ressourcen, um ein 3D-Objekt auf dem Bildschirm zu rendern. Der dritte Teil, der zwar für den Anwender und die Engine weniger Bedeutung hat, jedoch für die Erstellung eines Fensters und die Verwaltung der Nachrichtenschleife zuständig ist, sollte den Anwender nicht weiter interessieren. Das stellt die grundlegende Struktur der Engine dar.

Der Anwender startet sein Programm, wie in allen C/C++ Programmen üblich, mit einer           int main(). Diese Funktion wird von der Engine als Erstes aufgerufen, nachdem alle erforderlichen Initialisierungsschritte abgeschlossen sind. An dieser Stelle muss der Anwender vorerst nichts weiter tun.

Ich sollte noch erwähnen, dass nach der Erstellung des Windowsfensters auch eine Konsole erstellt wird, in der Debug-Informationen angezeigt werden können. Hierfür steht eine einfache Möglichkeit zur Verfügung, um Werte von Variablen auszugeben oder bestimmte Bedingungen zu überprüfen, indem beispielsweise Debug::Log("Die Variable hat den Wert", variable); verwendet wird. Diese Funktionalität wird mir später sehr hilfreich sein, um Informationen über die Grafikkarte oder andere Systemdetails auszugeben.

Leave a comment

Log in with itch.io to leave a comment.