Code Monkey home page Code Monkey logo

ngin's Introduction

ngin

Requirements

macOS

  • CMake
  • clang (tested on clang-900.0.39.2)

Windows

  • CMake
  • Visual Studio compiler

iOS

  • XCode 9+

Installation

Project works on both Windows and macOS platforms. Use cmake in order to compile and run. macOS version can be opened as xcode project from ngin/example_projects/mac/ngin_mac.xcodeproj as well

20.05.2017 Transparency

16.04.2018 Spot lights shadow mapping with depth linearization

POV in the corner

15.04.2018 Directional lights shadow mapping with PCF

09.04.2018 Orthographic cameara

09.04.2018 Frustum culling

Removes models which aren't visible from point of view of camera from rendering pipeline. I marked using red color vector which describes direction in which camera looks to help you understand how does it work

30.03.2018 Normal mapping

29.03.2018 Current pipeline

29.03.2018 Vignette

24.03.2018 Gaussian blur, Bloom

24.03.2018 HDR + Adaptive tone mapping

20.03.2018 Blinn-Phong specular shading

Another variation of phong lighting model

19.03.2018 Multiple resolutions

It could increase performance if there are many objects placed on the scene. I rendered picture which is placed below in ultra low resolution as an instance

19.03.2018 Light attenuation

In other words it means that amount of light given by source decreases with rising distance

17.03.2018 Gouraud shading

Provides great performance but looks rather awful

16.03.2018 Multiple light sources/renderers integration

In order to generate frame which you can see below I had to combine two rendering techniques - forward and deferred rendering. Moreover I implemented point, directional and spot lights. They can be used simultaneously

15.03.2018 Simple UV Texture mapping

13.03.2018 Assimp materials and models loading

I have integrated project with assimp library. It enables engine to load models, their materials and textures. You can see that there is one additional image comparing to the post from the previous day. It represents specular component of material

12.03.2018 Basics of deferred & forward renderer have been implemented

In the picture below you can see process of rendering. In the first one normal vectors, colors and positions of objects in world coordinates are rendered into three separate textures. Then, in the second pass these textures are used to calculate influence of lights placed on the scene and final color of each pixel

02.03.2018 Development process start

I have created initial version of class diagram for the project. It has been constantly updated since the beginning of development. I want to avoid major changes and in my opinion UML diagrams are the best way of doing it properly

ngin's People

Contributors

mateuszstompor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

steelbim

ngin's Issues

lighting strength

It should be possible to set different strength of lighting for point and spot lights

Plane/Ground reflections

Reflect the camera to the other side of the mirror surface.
Modify the scene model by removing the reflecting surface and other surfaces that block the view of the reflected camera.
Render the reflection image.
Convert the reflection image into a reflection texture map.
Apply a suitable shader to the reflecting surface; this shader uses the reflection texture to simulate the reflections.

Stereo rendering

It should be nice to have this feature even if people no more use this technology

Scene graph

Engine should position objects in scene using some sort of scene graph. It help improve performance, because objects which wouldn't be visible could not be rendered at all

Model bounding boxes

It could help improve performance of rendering because having bounding boxes engine could omit those models which aren't in sight of camera

Point lights

engine should be able to display point light sources

Spot lights

engine should be able to display spot light sources

ambient occlusion

in order to improve shading engine should be able to render objects with occlusion

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.