February 12, 2013

Be Gentle.

Just a quick update with a screen cap. Of code.



Actual shots coming this week ;-)

February 5, 2013

AGE 3 part 2

Hey again,

I'd like to tell something about the engine, current state and it's purpose of existence.

AGE, as you might know, is acronym of Autumn Graphics Engine and it is written in C++ on top of OpenGL and some other APIs. It is designed to become a close-to-edge engine with all the 'basic' features of current-gen engines - deferred rendering, shader-based pipeline and accompanied with "factory" shaders for HDR, tonemapping, bloom, normal mapping, shadow mapping, sub surface scattering, SSAO and others. I'm aiming on designing the shaders so, that I just enable features for an object and then automatically choose correct one to use. On the otherhand I could also write few super-shaders that have everything packed into them.

At this moment, I'm rewriting it's basic structure for the millionth time. Probably the only thing that hasn't changed is the math functions, such as vector, matrixe and euler classes. I have also the basic pipeline laid out so I can hopefully make quick iterations and extend the engine as freely as I want.

Why do this? Why not just use available engines and extend them or use Unity (or other package) to make games or learn stuff?

Welll... Mainly because I want to know how engines work. I'm like that. Give me a pen and it's in pieces after few seconds. Then I reassemble it. Repeat. Usually when I play games I'm constantly thinking how this and that was achieved. Without having working platform, I haven't been able to recreate them like I want to. Using existing engines or packages will limit what I can do and requires a certain learning curve to use. Luckily I learn things quickly, so I usually make prototypes and brainstorm using Unity.

So I'm making a graphics engine to be used for my personal experiements because I want to learn new things.

Next post will (hopefully) have screenshots too. Of spheres.

Wutata out.

January 31, 2013

AGE 3

I noticed I hadn't ever experiemented with different rendering methods.. I guess I always thought forward rendering was the only feasible one. Oh well.

For those who don't know what I'm talking about - forward rendering is a pipeline that works per object-basis, while deferred rendering makes all shading in screen space - thus eliminating multiple writes per pixel. This allows more lights and effects to be put on scene, but has othter limitations, like no support for transparent objects and high GPU bandwidth requirement.

For a quick overview about these two, check this link out: Forward or Deferred?

I'm currently working on a bit more dynamic engine - it will have both forward and deferred rendering modes and I will include few kinds of shadow mapping methods. Most likely they'll be PCF , PSSM  and PCSS + I'll try to make clear with SSSS - which will come handy with deferred rendering.

Other thing is that I'll be utilizing a lot what I've learned while I was working, so this version has very different structure - mainly to make it faster and even more extendable.

Of course the basic stuff will be there - LUA scripting, support for most mesh files, freeimage, glew, shaders, PAK, blender exporter...

So far I have established the basic structure and set footing for the new rendering pipeline. I'll also try to make the engine work with most GL versions via fallback system, but I'm still working on how to best make it.

I try to minimize copypasta so that I won't be depending on old architechture and can concentrate on the new one.

I'll keep ya posted.