Skip to content
This repository has been archived by the owner on Nov 11, 2017. It is now read-only.
/ fl3d Public archive

A lightweight 3D engine for Android devices supporting OpenGL 2.0.

License

Notifications You must be signed in to change notification settings

gowithfloat/fl3d

Repository files navigation

FL3D is a lightweight 3D engine for Android devices supporting OpenGL ES 2.0. The focus of this library is to abstract away some of the obscure commands required for OpenGL rendering, without sacrificing performance on low-power devices. This project is designed for Android Studio and uses the standard Gradle build system with some additional functionality in separate modules.

About

FL3D was designed to support simple 3D rendering in custom applications where a complete out-of-the-box solution such as Unity 3D or libGDX might be overkill. The intention is to provide a means to add a small amount of efficient 3D rendering (such as in a single view) to an Android application without having to learn OpenGL.

This was originally intended to be used for a project, but was set aside in favor of another approach. We opted to open-source it in the hopes that it could be useful to others, but we have no long-term maintenance in mind for this project. That said, feel free to open an issue if you notice a glaring issue, or contact this project's developer (Steve Richey) if you have a question.

Goals

  • Simplify the process of setting up an OpenGL context.
  • Classes that define behavior for common OpenGL concepts (textures, shaders, meshes, framebuffers).
  • Runtime safety with exceptions thrown for undefined state (such as when shaders fail to compile).
  • Defining shaders in .glsl files, as opposed to writing code in strings.
  • Use of final where possible to provide safe behavior at runtime.
  • Use of interfaces to allow flexible implementations of core concepts.

Modules

This repository contains several modules, namely:

  • app: A small test application which uses FL3D to render the device camera to an OpenGL texture. If you import this entire repository into Android Studio, this is the module that will be built and deployed.
  • fileio: A single class providing some simple file manipulation tools, primarily intended for saving images to file while handling issues that may arise during I/O operations.
  • fl3d: The core FL3D module. All other modules provide additional functionality that you may find useful, but only this one is required. This module has no dependencies.
  • glcameraview: An implementation of a simple FL3DSurfaceView which receives texture data from the device camera.
  • threadedcamera: Runs the device camera in a dedicated thread, with some optimizations and convenience methods we've developed.

References

License

© 2015 Float. Shared under an MIT license. See license.md for details.

About

A lightweight 3D engine for Android devices supporting OpenGL 2.0.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published