Thursday, June 9, 2011

Reflection Shader

Just posting an image of the final of the 3 shaders I have for this quarters work. This one is a reflection shader. It takes in a reference for the environment it needs to reflect. There's also options for diffuse intensity and how reflective the surface is.


BMP to Jpeg Compression

This simple windows application takes an bmp file and converts it into a jpeg.

Particle System and Rigid Body Image Update

Saturday, June 4, 2011

Particle Rigid Body Project Update

My particle system is finally complete. I added in walls for all of the sides and also there are controls for moving the camera through the environment using the arrow keys and mouse. I'll post some screenshots when I get a chance to grab the master file from my other computer

Oscar Time

Oscar Time is a flash game I got the idea for from a game I saw on a podcast from Harvard. It's a simple catching game that involves catching the trash in the trash can and dodging the recyclables.




Thursday, May 5, 2011

Cell/Outline Shader

This shader is pretty much complete. The only thing I think I'd like to add to it is an option for making the outline thicker or thinner. This should be a pretty simple addition. Here's a screenshot:

Particle Systems and Collisions: Next On The Menu

So for my particle system I've decided to go ahead and draw a back wall for them to bounce off of. I've already started digging around in some code I have and I think there's a better way for me to handle drawing floors and walls. Here's some sample code:


void DrawWalls()
{
LPDIRECT3DVERTEXBUFFER9 pWallVB = NULL, pFloorVB = NULL;
VOID* pData;

g_App->CreateVertexBuffer(sizeof(aWall),D3DUSAGE_WRITEONLY,
                                                                D3DFVF_CUSTOMVERTEX,D3DPOOL_MANAGED,
                                                                  &pWallVB,NULL);

pWallVB->Lock(0,sizeof(pData),(void**)&pData,0);
memcpy(pData,aWall,sizeof(aWall));
pWallVB->Unlock();


pFloorVB->Lock(0,sizeof(pData),(void**)&pData,0);
memcpy(pData,aFloor,sizeof(aFloor));
pFloorVB->Unlock();


g_App.GetDevice()->SetStreamSource(0,pWallVB,0,sizeof(D3DVERTEX));
g_App.GetDevice()->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,4);
}




Right now my code for drawing the floor isn't inside of a function so this is an area where I'll be doing some clean up. Not only will this clean up how the code looks but it will make it easier to compartmentalize later.






Tuesday, May 3, 2011

Shaders

So far I'm pretty happy with the first shader I have. I think next I'm going to start working on improving my edge detect shader. Here's a shot of what it might look like.




I'm really liking the fact that in that first shader I was able to get some movement. I think for this one if it comes together quickly enough I might try to emulate some "jiggle" in the lines kind of like the way that cartoon Ed, Ed, and Eddie looks.

Particle System Rigid Body Update

I swapped out the texture on the floor and on the particles. I'm thinking once everything is working I might add in a menu option for user generated textures. I also made the floor a bit bigger so the particles didn't look like they were floating out in space. Here's a screenshot.


Thursday, April 28, 2011

Shaders: Grow and Shrinking Glow Effect

This is a variation on the shader I linked a few weeks ago. It's a glow effect that has an animated pulse. It has variables exposed so you can tweak things like the speed of the pulse, the color, how big the pulse is, and how thin the edge is.

Particle System and Rigid Body: Update

Still using the example class I found but I cleaned up my directx rendering code a bit using #pragma regions just to make everything sectioned off in an easier to read way. I also swapped out the floor texture for something simple. I think I'm going to swap out the texture I'm using for my particle as well just so the backgrounds match.

Tuesday, April 26, 2011

We have particles and collisions!

So I've been digging through an example class for particle systems and found something that suits my purpose perfectly. So far I have an implementation of that class and am able to draw my own particles on screen. Here's a screen shot.


Next on the list is to further delve into how the example class was created so I can fully understand it. Also, when I have time I want to continue to look for ways to compartmentalize the windows code and directx initialization. 

Thursday, April 21, 2011

Particle Systems and Rigid Body

After some fighting with DirectX I've got a floor being drawn to give a reference point for the particles to emit from. I'm following some example code I found out there floating on the internet.. I still think I could do a lot to compartmentalize everything but for now I'm just going to focus on getting it to work. Next I'm going to start working on figuring out a particle system class so I can finally start drawing some particles on the screen.
Here's a screenshot of what I have so far:

Tuesday, April 19, 2011

Getting the window up and running with directx initialized

I've been trying to find a way to make the process of getting a window with direct3d going a bit more object oriented. All of the examples you tend to see don't really do that. So I've written a class that does this and hopefully allows me to reuse this code for other projects. It's my first time so there's probably going to be some changes along the way as I get more familiar with how I want to set it all up.

Here's a screenshot of my window with directx initialized. So far I just told the render frame function to draw a black background. As I flesh out my particle system class this image will get a lot more interesting.

Monday, April 18, 2011

Particle Systems and Rigid Body

I've been doing some research on how I can implement this part of the project and have found some things that will be a ton of help. First is a project I did in game algorithms class that involved a particle system and detecting collisions between walls and objects. This will serve as a base for me to draw from to create my application.
Also I found a youtube video that illustrates what I'm going to try and achieve. 


My next post will have the code for setting up a window and getting directx initialized. 

Tuesday, April 12, 2011

Shaders!

It's time for me to dive back into writing shaders. I'm going to continue to use HLSL and probably fx composer from nvidia just to make the process faster. The nvidia shader library is a great place to get sources of inspiration. I've narrowed what I want to try down to a few choices.

The line draw looks interesting to me. I've done a toon shader before that involved edge detection but the edges in this one look a lot better what I was able to accomplish before so I think it'd be cool to try and get that line drawing look.
This next one creates a transparent bubble around an existing model. It looks like it would be useful for making things look like they're wrapped in some kind of plastic balloon or some sort of glowy shell encasing.

A few other ideas involve doing a cool looking water shader and some fire effects. Both of these are ones that I haven't tried yet and the water one in particular might allow for some experimentation with geometry shaders.

Interface Design - Guitar Samurai

For my interface design class I decided to iterate on an idea I've had for a 2D style game.
In this game you play as Des the guitar samurai who is out for revenge.
Mechanics: 
The core of the idea centers around a 2D beat em up style game with an element puzzle platforming involved. One of Des's key abilities is to weild the deadly sonic arts using his guitar. So the player can bring up a radial style menu and "scrub" a slider across it to combine different guitar licks to create attacks and puzzle solving ablities. 
I'm pretty happy with the way these composited mock ups came out so here's a few! 




UDK 2D Platformer Levels

Here's a couple levels I built in UDK. The camera and player controller is done with unreal script but pretty much everything else I did inside the editor with kismet.
The first one was done in my spare time for fun and uses pretty much assets that come with UDK. The second one has quite a bit more complexity and was done for a level design class I was taking at the time. Pretty much all of its assets were built by me.