Este proyecto contiene un visor de modelos 3D en formato GLTF que permite visualizar tanto la geometría básica (vértices e índices) como modelos completos con texturas. Ofrece múltiples opciones de visualización y soporta diferentes librerías para cargar los modelos. También cuenta con un programa para comparar el rendimiento de carga de cada una de las librerías.
-
Soporte para visualización simple (solo malla) o con texturas completas
-
Cuatro implementaciones de carga diferentes:
-
pygltf
-
trimesh
-
assimp
-
open3d
-
-
Navegación interactiva con la cámara
-
Soporte para múltiples modelos incluidos
-
Medición de rendimiento
-
Python 3.7 o superior
-
Conda
-
Assimp
- Descarga las bibliotecas precompiladas de Assimp desde assimp releases
- Extrae el ZIP en una ubicación permanente (ej.
C:\assimp) - Añade a las variables de entorno del sistema:
- Presiona
Win + R, escribesysdm.cply abre "Variables de entorno" - En "Variables del sistema", edita
PATH - Agrega la ruta a la carpeta
binde Assimp (ej.C:\assimp\bin) - Guarda los cambios
- Presiona
Dependencias esenciales:
sudo apt-get update
sudo apt-get install -y \
libassimp-dev \
python3-dev \
build-essentialInstalación via pip:
pip install pyassimpClona el repositorio:
git clone https://github.com/taraya0/Gltf_python_loader.git
cd Gltf_python_loaderConfiguración con Conda
conda env create -f environment.yml
conda activate gltf_loader
.
├── classes/ # Clases que almacenan datos cargados
├── images/ # Screenshots
├── models/ # Modelos 3D en formato GLTF
├── results/ # Resultados de medicion de eficiencia
├── shaders/ # Shaders para los diferentes modos
│ ├── simple/ # Shaders para el modo simple
│ └── texture/ # Shaders para el modo con texturas
├── loaders/ # Implementaciones de carga
│ ├── simple/ # Loaders para modo simple
│ └── texture/ # Loaders para modo con texturas
├── utils/ # Utilidades auxiliares
├── environment.txt # Dependencias necesarias para el virtual env de python
├── viewer.py # Script visualizador
├── benchmark.py # Script de calculo de eficiencia de cargadores
└── README.md # Este archivo
Ejecuta el visor con los parámetros deseados:
python viewer.py [OPCIONES]| Parámetro | Valores | Descripción | Por defecto |
|---|---|---|---|
| --model | Nombre del modelo | Modelo a cargar (ver lista abajo) | trash |
| --simple | Flag (sin valor) | Modo simple (sin texturas) | Modo textura |
| --texture | Flag (sin valor) | Modo con texturas | Activado |
| --loader | op, gl, tr, as | Loader a usar (ver lista abajo) | gl |
-
crouching_boy
-
bird
-
guitar
-
trash
-
victreebel
-
op: open3d
-
gl: pygltf (por defecto)
-
tr: trimesh
-
as: assimp
Visualizar el modelo "bird" con texturas usando pygltf:
python viewer.py --model birdVisualizar el modelo "guitar" en modo simple usando assimp:
python viewer.py --model guitar --simple --loader asVisualizar el modelo "victreebel" con texturas usando trimesh:
python viewer.py --model victreebel --loader tr-
W: Mover hacia adelante
-
S: Mover hacia atrás
-
A: Mover a la izquierda
-
D: Mover a la derecha
-
Q: Subir
-
E: Bajar
El script benchmark.py permite comparar el rendimiento de los diferentes loaders:
python benchmark.py [OPCIONES]Los dos modos que existen son --simple y --texture, donde la primera mide el rendimiento de la carga de vértices y aristas, mientras que el segundo el de un modelo con texturas.
Tras la ejecución se muestra un gráfico que compara el tiempo de carga promedio de los modelos utilizando cada una de las librerias. Además, se guarda en /results un archivo de texto con información más detallada del tiempo de carga y uso de memoria de cada modelo.
Algunos loaders pueden tener mejor soporte para ciertas características que otros




