Skip to content

taraya0/Gltf_python_loader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gltf python loader

Introducción

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.

Texto

Características principales

  • 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

Requisitos previos

  • Python 3.7 o superior

  • Conda

  • Assimp

Instalación de Assimp en Windows

  1. Descarga las bibliotecas precompiladas de Assimp desde assimp releases
  2. Extrae el ZIP en una ubicación permanente (ej. C:\assimp)
  3. Añade a las variables de entorno del sistema:
    • Presiona Win + R, escribe sysdm.cpl y abre "Variables de entorno"
    • En "Variables del sistema", edita PATH
    • Agrega la ruta a la carpeta bin de Assimp (ej. C:\assimp\bin)
    • Guarda los cambios

Instalación de Assimp en Linux (Ubuntu/Debian y derivados)

Dependencias esenciales:

sudo apt-get update
sudo apt-get install -y \
    libassimp-dev \
    python3-dev \
    build-essential

Instalación via pip:

pip install pyassimp

Instalación del repositorio

Clona el repositorio:

git clone https://github.com/taraya0/Gltf_python_loader.git
cd Gltf_python_loader

Configuración con Conda

conda env create -f environment.yml
conda activate gltf_loader

Estructura del proyecto


.
├── 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

Uso de viewer.py

Uso básico

Ejecuta el visor con los parámetros deseados:

python viewer.py [OPCIONES]

Opciones disponibles:

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

Modelos disponibles:

  • crouching_boy

  • bird

  • guitar

  • trash

  • victreebel

Loaders disponibles:

  • op: open3d

  • gl: pygltf (por defecto)

  • tr: trimesh

  • as: assimp

Ejemplos de uso

Visualizar el modelo "bird" con texturas usando pygltf:

python viewer.py --model bird

Visualizar el modelo "guitar" en modo simple usando assimp:

python viewer.py --model guitar --simple --loader as

Visualizar el modelo "victreebel" con texturas usando trimesh:

python viewer.py --model victreebel --loader tr

Controles de la cámara

  • W: Mover hacia adelante

  • S: Mover hacia atrás

  • A: Mover a la izquierda

  • D: Mover a la derecha

  • Q: Subir

  • E: Bajar

Uso de benchmark.py

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.

Screenshots

Texto

Texto

Texto

Texto

Notas

Algunos loaders pueden tener mejor soporte para ciertas características que otros

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors