Showing posts with label deferred rendering. Show all posts
Showing posts with label deferred rendering. Show all posts

Friday, January 22, 2010

Foof Engine - Cheese Kung Fu, Grapes of Wrath, and cel shading!


All sorts of things going on in this update... first of all, I decide to try to give the cheese some melee moves. Yup.. MELEE MOVES! He can punch and kick and smack up a few 'nanners and... newcomers! A grape enemy that if in pursuit of Mr. Cheese will throw a grape grenade every few seconds. He also emits some grapes that go squishy when you kill him.

Also put in a rudimentary cel shading technique. Very rudimentary, first of all it clamps all lighting in bands and sort of checks for contrast in depth or normals to decide what an edge is. I sort of hacked it together independently, I'm sure there are better filters out there to find edges, but whatever! For now it works!

Also very interesting is my improved animation system... support for multiple tracks in my foof 3D format! Smooth blending between animations! Having separate bones play separate animations! Hoorah! Still needs LOADS of work.

Killer Pineapples! Foof Engine turret ish functionality...


It's been a few days since I've updated hasn't it? Well, here are a few tasty new updates: Yes, you see right. That's a killer pineapple!

So what's new here? Well, I added some functionality for one object ot be able to track another. And what else can be more perfect to test than than pineapple turrets? NOTHING!

I also made it so the little meaty gibs leave a bloodstain on the ground when they hit it. Nothing major, no new functionality there engine-wise, just kind of cool.

VIDEO HERE : http://www.youtube.com/watch?v=WRvHW3LsDZ0

Saturday, January 16, 2010

By the Broccoli in my hand...


Yes you see right. That is a flying saucer fighting a giant broccoli.

Video here : http://www.youtube.com/watch?v=FsAVcQAfC3s

What's new? Well I finally figured out what was wrong with my directional shadowmapping... embarrassing, really. I didn't realize that in orthogonal projection the z is already clamped between 0 and 1, I kept trying to divide it further by Z far... oops!

The decals are painted using a way I kind of theorized on my own, still needs work. Basically, a billboard quad is rendered and then we figure out the distance to the pixel behind it to figure out the tex coords and all that jazz. I will explain it more coherently when I have it perfected.

The bonus of this is no monkeying around with copying geometry, finding tex coords, etc. nonsense... this gives us seamless decals across all static geometry. FUN!

Thursday, January 14, 2010

Foof Engine - Flying Saucers, Env Mapping, also pew pew


UFOs hate bananas

Well, I decided to work on this thing more. First of all, I changed my skybox. First it was just a cube with a sky texture being drawn before everything else. Now it's sampling a cubemap based on the eye vector, it looks much smoother, the cube distorts funny. There is also a sun that correlates to a Sun Direction variable, so it will always appear correctly in the sky and can move around dynamically. I'll show that when I have a good directional shadowmapping implementation.

Since I already have a cubemap for the sky, I can just sample it on other things to give a reflection effect. Didn't take long to implement that.

Also showing collisions between spheres and terrain (the fireballs). This is probably the first "AI" I ever actually created, if it counts... the bananas just kind of run around in circles until you shoot them and they blow up into chunks of bologna. There is no physics, they just start out flying forward in a random direction and pitch continuously downward until they disappear, I think it works well enough.

Just the pyramids and the skybox: http://www.youtube.com/watch?v=xPR0gZpDNsw&feature=related

Pew pew, banana shoot out: http://www.youtube.com/watch?v=pwTYsc8uSUg

Saturday, January 9, 2010

Foof Engine: But what about bullet holes!?!?!?!?

Ok I know what you're thinking. Foofles, your game is awesome but the world is completely devoid of anything.

So I created a 3D map format and the export plugin for it for 3DS Max. And with my ultimate skill, I make a very basic map and show collision with the fireballs (and consequently anything else) with the map. It boils down to a sphere vs triangle check, but the faces and parts of the map are seperated into a tree (not really an octree... but something like it) to quickly discard things. It's not perfect yet but so far so good.

The bullet holes right now are a quad that gets placed where the collision took place, and sort of orients itself in the direction of the surface. Again, not perfect. Working on a better decal system.
VIDEO: http://www.youtube.com/watch?v=9y4038vAAs8

Foof Engine: EXPLOSION! FIREBALLS! Bananas Blowing up YEAH!!


Like I said, I promised AWESOMENESS and it shall be delivered. Here we have all sorts of things going on... animated "fireball" ish thing projectiles being shot out of the camera. Cool! They hit things and it blows up! COOLER! GIBS?!?! AWESOME!.. Yes gaze in AWE as each animated character explodes in a brilliant display of BOLOGNA CHUNKS.

Video here: http://www.youtube.com/watch?v=cWCvGxz1GaU

I know, this is the dumbest gib implementation ever. But whatever! IT works! Collision is really basic. We're talking sphere-sphere, sphere-cylinder.

Foof Engine: Mounting / Child objects

In Foof Engine, every physical object in the scene can have children. These children can be bound to specific bones in the parent, so this can enable things like mounting weapons to hands and what not. The bone-bound children get their positions updated when the parent is animated.

Physical objects include all meshes, billboards, lights, cameras, etc.

LInk to video here: http://www.youtube.com/watch?v=CplWtqgdig0

Spotlights and shadows in Foof Engine


I also have working spotlights and shadows, and alpha clipped objects cast shadows correctly! check it out! This is pretty basic stuff, video : http://www.youtube.com/watch?v=4tu2PL4u474

Codename Foof Engine - My 3D engine.

So, I figured I'd start work on my own little 3D game engine. I'll detail my progress and all the gritty little details so that you might implement it in your own projects.

Let me start with a simple gameplay video of a cheese character collecting coins in a forest. Naturally, I promised you awesomeness and awesomeness I devliver.

http://www.youtube.com/watch?v=5WZbveP7WeI

- WARNING - BORING GEEK STUFF AHEAD - WARNING -
My 3D engine is based on a deferred rendering architecture. That means that the lighting, fog, etc. is all computed post process. The rendering is split up into multiple parts. It takes up some more memory, but it makes it a lot more robust and open ended. My other videos will show more advantages of this.

I am using a model format that I created myself, it supports skeletal animation.