How louisforestier/opengles2learningproject works
This Android OpenGL ES 2 learning app lets a user navigate a 3D scene with on-screen multitouch controls, then renders its objects with materials, lighting, and a directional-light shadow pass. The scene uses a Unity-inspired GameObject/component model; geometry comes from procedural meshes or imported OBJ models. The map follows the README and sampled lifecycle, scene, mesh, and shader code. Some render-pass wiring is omitted where excerpts do not establish the caller.
Main entry points: GameObject.java Game Objects · Scene.java Scene · Mesh.java Mesh Data · MyGLRenderer.java GL Renderer
Components 19
App and Controls
- MainActivity
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/MainActivity.java - GL Surface
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/MyGLSurfaceView.java - GL Renderer
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/MyGLRenderer.java
Scene and Objects
- Scene
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/Scene.java - Game Objects
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/gameobject/GameObject.java - Transforms
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/gameobject/Transform.java - Components
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/gameobject/Component.java
Geometry and Materials
- Mesh Filter
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/mesh/MeshFilter.java - Mesh Renderer
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/mesh/MeshRenderer.java - Mesh Data
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/mesh/Mesh.java - Primitive Meshes
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/mesh - Materials
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/mesh/Material.java - OBJ Importer
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/objimporter/OBJImporter.java
Rendering and Shaders
- Light Component
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/shaders/Light.java - Shader Manager
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/shaders/ShaderManager.java - Lighting Shaders
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/shaders/MultipleLightingShaders.java - Shader Families
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/shaders - Depth and Shadows
app/src/main/java/fr/univ_poitiers/dptinfo/algo3d/shaders/ShadowShaders.java
Other components
- User
Connections 26
- User → GL Surface: touches
- MainActivity → Scene: creates
- MainActivity → GL Surface: hosts
- GL Surface → GL Renderer: renders with
- GL Surface → Scene: forwards controls
- GL Renderer → Scene: initializes
- GL Renderer → Shader Manager: registers shaders
- GL Renderer → Depth and Shadows: sets shadow pass
- Scene → Game Objects: updates
- Game Objects → Components: updates
- Game Objects → Transforms: uses
- Game Objects → Mesh Filter: attaches
- Game Objects → Mesh Renderer: attaches
- Game Objects → Light Component: attaches
- Scene → OBJ Importer: imports models
- OBJ Importer → Mesh Data: builds
- Scene → Primitive Meshes: creates geometry
- Primitive Meshes → Mesh Data: produces
- Mesh Filter → Mesh Data: holds
- Mesh Renderer → Materials: uses
- Mesh Data → Lighting Shaders: draws with
- Mesh Data → Depth and Shadows: draws depth with
- Shader Manager → Lighting Shaders: stores
- Shader Manager → Depth and Shadows: stores depth shader
- Lighting Shaders → Light Component: sets light uniforms
- Shader Families → Lighting Shaders: includes