Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • VkCV Framework VkCV Framework
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 28
    • Issues 28
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 6
    • Merge requests 6
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Vulkan2021
  • VkCV FrameworkVkCV Framework
  • Issues
  • #26
Closed
Open
Issue created May 10, 2021 by Trevor Hollmann@thollmannMaintainer

Asset Loading

Der Asset Loader ist in erster Linie ein Modul zum Laden von Szenen-Inhalten (Meshes, Texturen, ...). Dabei setzen wir auf das von Khronos entwickelte Format glTF. Eine glTF-Datei kann, im Gegensatz zu anderen Formaten wie Waveform OBJ, ganze Szenen beschreiben (samt node-graph, Kameras, Animationen und mehr). Das Asset Loader-Modul soll dies später auch weitgehend unterstützen, zunächst (in den ersten Wochen) aber lediglich einzelne Meshes laden können und iterativ erweitert werden.

Durch das feature ganze Szenen laden zu können ergeben sich (noch offene) Fragen bezüglich der Szenendarstellung. In jedem Fall wird eine Form von Szene-Graph benötigt, aber wie simpel dessen Implementierung sein soll hängt von mehreren Faktoren ab:

  • Wollen wir im gesamten Projekt nur einmal eine Form von Szene-Graph implementieren, müsste dieser dann wahrscheinlich vom Asset Loader-Modul implementiert werden
    • Alternativ könnte das Asset Loader-Modul auch via callbacks oder über eine API einen Szene-Graphen nutzen, der von einem anderen Modul implementiert wird
  • Soll das Asset Loader-Modul eine vereinfachte Szenendarstellung implementieren, die zwar die Iteration über alle Knoten in einem Szene-Graph erlaubt, aber keine Sortierung (z.B. basierend auf Distanz zur Kamera für back-to-front rendering) oder sonstige erweiterte features?
  • Soll eine Transformation der Daten (z.B. Vertices, Texturen) nach dem Laden ermöglicht werden?
    • Es geht hier z.B. um das Erzeugen von LOD oder Reduktion der Präzision (32-bit zu 16-bit float bei vertices)
    • Solche Transformationen könnten als Methode einer Mesh-Klasse implementiert werden und hätten damit nicht direkt Einfluss auf die Implementation der Szenendarstellung

Bei unserem Treffen am 9. Mai sind wir damit verblieben, dass wir uns erst mit anderen Gruppen absprechen müssen bevor wir diese Fragen endgültig klären können.

  • Vorschlag zur API der ersten Version des asset-loaders: Trevor
  • Recherche zu frameworks/libs: Mara, Mark
  • Erstellen eines Dreieck-Meshs als glTF-Datei: Susanne
  • Cube mit Texturen: Susanne
  • Implementation von load_mesh(): Mara, Susanne
  • Fix der ausstehenden Kommentare im merge request !19 (merged) (Trevor)
  • Entscheidung bzgl. pointer in vertexGroup struct, siehe Diskussion in !19 (merged) (Trevor, Alex)
Edited Jun 01, 2021 by Trevor Hollmann
Assignee
Assign to
Time tracking