GithubHelp home page GithubHelp logo

billclock / emerald-engine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lragnarsson/emerald-engine

0.0 0.0 0.0 339.65 MB

3D graphics engine using OpenGL

License: MIT License

Makefile 1.17% C++ 76.80% GLSL 16.19% Shell 1.55% MATLAB 4.29%

emerald-engine's Introduction

Emerald Engine

3D graphics engine written in C++ using OpenGL. This project was first created as part of a course in computer graphics at Linköping University. Grass, shadows, bloom and more was added in a later course.

Many parts of this project have been based on tutorials and examples found online, learnopengl.com in particular has been a good source of inspiration. The grass was inspired by this blog post.

Project members:

  • Hans-Filip Elo
  • Lage Ragnarsson
  • Isak Wiberg

A video showcasing the procedural grass: https://www.youtube.com/watch?v=xNea72F_aws

An older video: https://www.youtube.com/watch?v=Tt9o01yyQiw

FEATURES

  • Deferred shading
  • Screen Space Ambient Occlusion
  • Shadow maps
  • Procedural grass with LOD
  • Grass animation based on wind and collisions
  • Bloom
  • Scene loader
  • Terrain generation
  • Catmull-Rom splines for object and camera animation
  • Frustum culling for meshes and lights
  • Normal- and specular maps
  • Shader precompiler
  • Day-night cycle
  • Switch between different rendering paths during runtime:
    1. Forward
    2. Deferred
    3. Positions
    4. Normals
    5. Albedo
    6. Specular intensity
    7. SSAO buffer
    8. Shadow map
  • Keyboard and mouse control
  • Bounding sphere generation and visualization
  • Normal vector visualization
  • Light sources attached to models

INSTALLATION

Debian / Ubuntu

Install dependencies with apt-get:

sudo apt-get install build-essential libgl1-mesa-dev libsdl2-dev libglew-dev libglm-dev libsdl2-image-dev libassimp-dev

Go to the AntTweakBar download page and download the zip file. Extract the folder and move inside its src/ folder. Run make. Move the contents of /include to /usr/local/include and the contents of lib to /usr/local/lib. run

sudo ldconfig

Run make

MAC OS X

Install dependencies with brew:

brew install glm assimp sdl2 sdl2_image anttweakbar

Run make

emerald-engine's People

Contributors

hansfilipelo avatar lragnarsson avatar isakwiberg avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.