Coder Social home page Coder Social logo

agav's Introduction

AGAV

Demo here. Built for chrome's latest version OOP Webgl rendering framework for Applied Computer Graphics And Vision
No Documentation? - It's a coursework with a thight deadline and many others. TBF I give a brief overview below
No Unit tests? I gave my best to decouple everything to make it testable, but visual studio makes Javascript unit testing very time consuming.

#Documentation Code is in the Scripts folder
Engine - Generic framework
Scene.js is a good example. How to use the framework. It contains Loading assets, scene creation and rendering.

The Scene.Js is the consumer of the framework and feeds all releavent information into the framework
The Engine/Core folder contains the heart, with the foundation.js file beeing the heart muscle gluing everything into place.

Shader classes know how to communicate with the glShader code. There are currently three types of shaders:
1. Vertex Shader (DrawShader) 2. Color Shader 3. Texture shader
Further expansion will be lighting shaders....

Buffers are the counterpart to the shaders. They know what shader they need, and what model they represent. Ergo they apply them selfs onto the shaders.

The RenderModel represents a 3D model. While a SceneObject wraps around a 3D model and contains model behaviour and world properties. This is a one to many relation.

Shader prorgrams are made from one fragment shader and one Vertex shader. There will be a few of them to swicth between different shaders to apply light, drawing, color and textures.

The renderer will know how to set the right shaderPrograms active. It is a generic way of drawing Scene objects. Additionally it is a commodity in Game engines. E.g. RenderQueues ect.

The IO folder contains a bunch of input output utillity stuff. This would be the asset management, which load them and allow dynamic wiring of objects.
The input class is a generic user input handler. It detects patterns of input, that consumers can subscribe to. E.g. Key combinations with mouse movement. It is important to wire the class up after the creation. MyCanvas.js is a very good exmaple of that. It know all about the canvas DOM object, but very little of key combinations and such.

The MeshGen folder contains Gemotric classes. E.g. Construction of primitives and the 3D model implementations for them.

agav's People

Watchers

James Cloos avatar Martin Kuhn 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.