Tutorial 2 – 3D Model Rendering (Grundlagen)

Programmbeispiel 2 demonstriert die Grundlagen im Umgang mit 3D-Modellen. Fortgeschrittene Themen wie die Animation von 3D-Objekten oder das dynamische Laden und Entladen von Textur- und Mesh-Daten werden in späteren Programmbeispielen veranschaulicht.







Schritt 1: 3D-Modell und GLSL-Shader-Programm laden

TestModel = new CModel;
TestModel->Init_Model("../Models/Destroyer_Fed", 5, true);

NormalMappingShader = new CGLSLShader;
NormalMappingShader->Init_UserDefined_Shader(
                    "Shader/NormalMappingWithTextureEffects.vert",
                    "Shader/NormalMappingWithTextureEffects.frag",
                    Format_CTexturedVertexWithNormal_NM);



Schritt 2: Anlegen einer Modell-Instanz

// Jede Modell-Instanz repräsentiert ein 3D-Objekt in der Spielewelt.
// Bevor ein 3D-Objekt gerendert werden kann, muss man der Modell-Instanz
// ein 3D-Modell zuordnen.
TestModelInstance = new CModelInstance;
TestModelInstance->Init_ModelInstance(TestModel);


Schritt 3: Bewegen einer Modell-Instanz

D3DXMATRIXA16 FrameRotationMatrix;
D3DXMatrixRotationY(&FrameRotationMatrix, -0.5f*g_FrameTime);

TestModel_WorldSpaceOrientation *= FrameRotationMatrix;

TestModelInstance->Set_New_ModelOrientationMatrix(
                   &TestModel_WorldSpaceOrientation);

TestModelInstance->Set_New_ModelOrientation();

TestModelInstance->Set_New_WorldSpacePosition(
                   &TestModel_WorldSpacePosition);

TestModelInstance->Calculate_ShaderTransformationMatrices(
                   &g_ViewProjectionMatrix, &g_CameraPosition);


Schritt 4: Rendern einer Modell-Instanz

NormalMappingShader->Use_Shader();

//Render_Model(TestModelInstance, NormalMappingShader, g_LODStep, 1.0f);

Render_Model_And_Use_TextureRenderLists(TestModelInstance,
                                        NormalMappingShader,
                                        g_LODStep, 1.0f);

NormalMappingShader->Stop_Using_Shader();



Hinweise zum Erstellen eines neuen Projekts:

  • Kopieren Sie den Ordner GraphicsAndPhysicsFrameworkImports ins Projektverzeichnis
  • Kopieren sie alle dll-Dateien sowie die Konfigurationsdatei ResolutionAndRendering.txt aus besagtem Ordner ins gleiche Verzeichnis, in dem sich auch die exe-Datei befindet (in unseren Programmbeispielen ist dies das Bin-Verzeichnis)
  • Binden Sie die folgenden Dateien in Ihr Projekt ein: GraphicsAndPhysics_Framework_Imports.h, GraphicsAndPhysics_Framework_Imports.lib, glew32.lib, glew32s.lib, glut32.lib. Die Glew- und Glut-Bibliotheken ermöglichen die Nutzung der aktuellen OpenGL-Spezifikationen unabhängig vom Framework.