Zugriff auf ein Texture Array im Fragment Shader:
uniform sampler2DArray ParticleTextureArray;
[...]
// Hinweise:
// gs_TexCoord[0].z: Index der zu verwendenden Textur
// gs_TexCoord[0].xy: die normalen Texturkoordinaten
vec4 ParticleColor = texture(ParticleTextureArray, gs_TexCoord[0].xyz);
[...]
// Hinweise:
// gs_TexCoord[0].z: Index der zu verwendenden Textur
// gs_TexCoord[0].xy: die normalen Texturkoordinaten
vec4 ParticleColor = texture(ParticleTextureArray, gs_TexCoord[0].xyz);
Beim Erzeugen eines Textur-Arrays ist darauf zu achten, dass die verwendeten Bilddateien (Texturdaten) die gleiche Größe besitzen.
Einzelne Partikeltexturdaten laden und zu einem Texture Array zusammenfassen:
// Verhindern, dass einzelne Texturen erzeugt und in den
// Grafikspeicher geladen werden:
Enable_TextureArrayGeneration();
// Partikel-Grafikmanager initialisieren:
ParticleGraphicsManager = new CParticleGraphicsManager;
ParticleGraphicsManager->Init_ParticleGraphicsManager(
"../Particles/Particles.txt",
"../Particles/Textures/",
"../Particles/Meshes/", 2000);
ParticleGraphicsManager->Build_ParticleTextureArray();
Disable_TextureArrayGeneration();
Enable_TextureArrayGeneration();
// Partikel-Grafikmanager initialisieren:
ParticleGraphicsManager = new CParticleGraphicsManager;
ParticleGraphicsManager->Init_ParticleGraphicsManager(
"../Particles/Particles.txt",
"../Particles/Textures/",
"../Particles/Meshes/", 2000);
ParticleGraphicsManager->Build_ParticleTextureArray();
Disable_TextureArrayGeneration();
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.
GraphicsAndPhysicsFrameworkDemo15.zip