vitrivr / cineast

Cineast is a multi-feature content-based mulitmedia retrieval engine. It is capable of retrieving images, audio- and video sequences as well as 3d models based on edge or color sketches, textual descriptions and example objects.
MIT License
57 stars 50 forks source link

Cross modal Retrevial of 3D models in vitrivr #369

Closed net-cscience-raphael closed 1 year ago

net-cscience-raphael commented 1 year ago

Overview

This pull request incorporates the code from the bachelor thesis titled "Cross-modal Retrieval of 3D Models in vitrivr." (See. Thesis)

The primary contributions of this thesis involve extracting feature vectors using visual-text co-embedding. For that reason the renderer implementation, which previously relied on the Java binding for the OpenGL API (JOGL), has been replaced with a new renderer based on the Lightweight Java Game Library (LWJGL).

While the original JOGL renderer remains in the project, its interface is annotated as Deprecated. The new LWJGL renderer is located in the package org/vitrivr/cineast/core/render/lwjgl, with shader programs found in resources/renderer/lwjgl/shaders.

The renderer package is organized into the following sub-packages:

Additionally, a new generic 3D model implementation is introduced in the package org/vitrivr/cineast/core/data/m3d/texturemodel. The Assimp library was utilized to load the 3d models.

The previous "Mesh" model is retained in the project for now. In subsequent steps, it is planned to migrate the functionality of the previous "Mesh" model to the new generic 3D model.

The package 'org/vitrivr/cineast/core/util/texturemodel' contains methods for determining the optimal viewpoint / camera position.

The new LWJGL renderer is implemented in the following classes:

lucaro commented 1 year ago

Thanks for this extensive work. I'll try to review this PR until the end of the week.

net-cscience-raphael commented 1 year ago

@lucaro Thank you for your review. I will resolve and comment on the conversations in the next few days.