Skip to main content

Un motor 3D para Python creado utilizando FrameDirect.

Project description

FD3DE (FrameDirect 3D Engine)

FD3DE es un motor 3D programado en Python3 que utiliza FrameDirect para el renderizado en framebuffer.
La librería permite renderizar figuras 3D creadas por el usuario.

Este paquete no incluye modelos 3D predefinidos.
Los modelos de ejemplo pueden encontrarse en el repositorio oficial:

https://github.com/gneval9/FD3DE


Requisitos

  • Linux con framebuffer habilitado y acceso a /dev/fb0
  • FrameDirect instalado y actualizado

Instalación

pip install fd3de

Uso básico

import fd3de

cubo = fd3de.load("Modelos/cubo.fd3de")  # Cargar modelo 3D

fd3de.move("x", -170, cubo)                 # Mover el modelo -170 unidades en el eje X

while True:
    fd3de.rotate("y", 2, cubo)              # Rotar el modelo 2 grados en el eje Y

    fd3de.render(cubo, fd3de.YELLOW)     # Renderizar el modelo de color amarillo
    fd3de.update()                       # Actualizar el framebuffer

    fd3de.clear_object(cubo)             # Borrar el modelo (redibujando por encima suyo)

Funciones

load(path)

Sirve para cargar un modelo. Se asigna a una variable como se muestra a continuación.

path (str) → Ruta del archivo del modelo.

cubo = fd3de.load("Modelos/cubo.fd3de")

render(obj, color, scale=1)

Se encarga de renderizar el objeto guardado en una variable en la pantalla.

obj (dict) → Objeto cargado con load().
color (str) → Color en formato ARGB (en hexadecimal).
scale (int) → Número por el que se multiplicará la escala del objeto (por defecto equivale a 1).

fd3de.render(cubo, fd3de.RED, 2)

move(axis, dist, obj)

Mueve el objeto un número determinado de píxeles.

axis (str) → Eje en el que se moverá (opciones válidas: "x", "y" y "z").
dist (int) → Número de píxeles que el objeto se desplazará.
obj (dict) → Objeto a mover.

fd3de.move("x", 50, cubo)

rotate(axis, angle, obj)

Rota el objeto un número determinado de grados.

axis (str) → Eje en el que se rotará (opciones válidas: "x", "y" y "z").
angle (int) → Número de grados que el objeto rotará.
obj (dict) → Objeto a rotar.

fd3de.rotate("y", 35, cubo)

clear_object(obj)

Redibuja el objeto sobre sí mismo en color negro para borrarlo (es más eficiente que pintar toda la pantalla de negro).

obj (dict) → Objeto a borrar.

fd3de.clear_object(cubo)

update()

Actualiza el framebuffer, mostrando todo lo que se haya renderizado con la función render().

fd3de.update()

¿Cómo crear modelos para FD3DE?

Un modelo 3D de FD3DE se compone de una lista en la que se especifica la posición de cada punto en sus tres ejes y los vértices a los que se tiene que unir mediante líneas.

[
    [100, -100, -100, 1, 4],  # 0
    [-100, -100, -100, 2, 5], # 1
    [-100, -100, 100, 3, 6],  # 2
    [100, -100, 100, 0, 7],   # 3
    [100, 100, -100, 5],      # 4
    [-100, 100, -100, 6],     # 5
    [-100, 100, 100, 7],      # 6
    [100, 100, 100, 4]        # 7
]

Como se puede ver, no es más que una lista con más listas, donde los tres primeros parámetros son las coordenadas 3D y los siguientes son los vértices con los que este punto se tiene que unir.

Formato:

[x, y, z, v1, v2...]

El archivo se deberá guardar con la extensión .fd3de y se cargará utilizando la función load(), pasando como parámetro la ruta del archivo.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fd3de-0.1.2.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fd3de-0.1.2-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file fd3de-0.1.2.tar.gz.

File metadata

  • Download URL: fd3de-0.1.2.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for fd3de-0.1.2.tar.gz
Algorithm Hash digest
SHA256 7fc6233fc9d01110f1ffdc187f9ed8cb4d2b601e29ca08537b03fbb11c3a0ddf
MD5 e5c8c3085615a259580a83b9ed9e7bd0
BLAKE2b-256 6b4fe54ae6cd193be459e8c82b6c99e684041bedebfc01fab5641d32fdd2b815

See more details on using hashes here.

File details

Details for the file fd3de-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: fd3de-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for fd3de-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ae9997fd28f762a2efd3bff2f75e94c8ef6e8d29cff2534dfabe6f2a25c3d859
MD5 38859fab029ee4b1dce7af0363be4c48
BLAKE2b-256 067b42368934aac89b79421080d90c1a08b04434a0130f782923eb3e282820af

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page