Shadow Graphics

Summer Update

by Johannes on Jun.16, 2009, under Uncategorized

My first year in college is now over and done with.
It was definitely a learning experience, and I was definitely out of my comfort zone sometimes.

However now summer is here and I’m back in Chicago.

Right after the tests were done I finally got to actually trying to learn HTML, CSS and PHP for real and put together a preliminary website and Portfolio.

Thanks to that Portfolio I was able to get a job at a media and advertisement company called ‘Either Way Works’ where I am now working hard on designing parts of their new website.

Specifically I am using the 3D engine ‘Papervision‘ for flash to make the elements of the site that will be in full interactive 3D.

This is very challenging for me, never having done 3D work with flash before, and i’m absolutely loving it.

You can see a preliminary test I finished today of a spinning gear at the top of this post.
You can move around by using the AWSD or arrow keys, and dragging the view with the mouse

I will be adding more interactivity to this soon and many other cool elements, like Augmented reality that uses your webcam.

Among all that Geoffrey and I plan to keep working on our game, more news on that soon as well.

Cheers,

-Johannes

Comments :, more...

Website

by Johannes on May.27, 2009, under Uncategorized

Well, I’ve finally gone and laid the foundation for my website, Jo-shadow.com, which this blog will only be a small part of.

I’ve been working hard to catch up on my HTML, CSS, PHP and javascript, and so far have a working system that reads image gallery data from an xml file via simplexml and some custom-made functions. nothing fancy, but good practice and it works.

The current theme/look is only temporary, i’ll be sure to polish it up in the future, maybe even have switchable CSS styles.

For anyone that is interested in learning, or getting up-to-date on the latest web standards visit www.w3schools.com

Special Thanks to Wolfire’s Jeff Rosen who graciously helped me work out some bugs.

Comments :, , more...

Quick update

by Johannes on Apr.13, 2009, under Endless Skies, Uncategorized

My appologies for not having update in a long time.

Enless Skies is currently on temporary hiatus for a few reasons:
• On the third day of our work week, something very unfortunate came up in in Geoffrey’s family, and he had to leave on very short notice. This made our close one-on-one collaboration that had helped us be so productive before impossible.
• Soon afterwards, Geoffrey’s computer died, and he is currently in the process of getting a new one.
• School has picked up again, so progress can be a bit slow.

I myself have spent a good bit of time on other projects, for example helping work on Wolfire’s new future game Overgrowth. Much of what I learn in my work for them will be of great use later on when we get further with Endless skies.

I will post about some of the stuff I have done there specifically soon.

Happy Easter!
-Johannes

Comments :, , more...

Endless Skies - Spring Break - Day 2

by Johannes on Mar.18, 2009, under Endless Skies

The second day of our spring break development week is over and done with.

New developments:

  • UV Mapping is working fully now.
  • A Skybox (or rather sphere) is implemented now (will have some nice screenshots to show there tomorrow)
  • Getting more aquainted with WorldMachine2 and beginning work on our terrain:


Old Sketch for the Main island


WorldMachine2 Render of the island

Among our to do list for tomorrow:

  • More work on the dragon model
  • Gradient based Skies that can change the time of day.
  • Basic Heigthmaps.
  • Re-writing various Mathematical functions in assembly for more speed.

À demain!

Comments more...

Endless Skies - Spring Break - Day 1

by Johannes on Mar.16, 2009, under Endless Skies

Today was our first day of working on Endless skies during this free week.

With a good 12 hours of work it was quite productive.

Here’s what was accomplished today:

  • The Camera Class was fully implemented and is finally working in both XYZ rotation and translation (though for the time being we won’t use Z rotation much since that rolls the camera. This however will be very useful once we get to flight) Much frustration and fun was had trying to get a monkey’s head to spin properly. Here is a screenshot from Geoffrey’s Computer, with an earlier version of the dragon’s head:

  • Carnot now has a full png loader, capable of loading *.png files of any size that are either: Bitmap/RGB, 8bit/16bit, and interlaced or not, fully according to Portal Network Graphic Specifications (although we did have some issues with the ’save for web’ photoshop png files. Might look into it more, but really the way things are right now is pretty much all we need.
  • UV Texturing is implemented but still buggy.
  • Looked over some possible compression and image storage technologies.
  • Finished the Head of the dragon. I had a version of this before, but today I added the teeth and cleaned it up a bit more:

(Normal Detail Mouth Positions)

(High Detail Head Shots)

Tomorrow I hope to put some work into learning how to use World Machine 2, as well as working more on the model and once Geoffrey gets textures working properly he will implement a sky-box (or probably dome in our case) which I’m hoping will support both panorama textures and gradient textures (used to store the different colors of the sky for different times of the day all in one texture. More on that at a later point.) After that, it will be time to start work on heightmaps. and the actual terrain.

See you tomorrow!

-Johannes

Comments more...

Endless Skies - Spring Break

by Johannes on Mar.16, 2009, under Endless Skies

This week both Geoffrey and I will be working together thanks to our coinciding spring break.

At the moment Geoffrey is furiously coding the camera class (Geoffrey: “GAGH! Segmentation fault again!?!?”) And I am working more on the actual head of our dragon.

Overall Carnot is looking good though: We did a stress test with over a quarter million polygons, yielding a frame-rate of about 100 on a fairly good computer, and that was before adding VBO (vertex buffer objects) which makes it a lot faster. Much optimization will still need to be done and more advanced shaders are yet to be implemented, but all in good time

Here is a tentative To-Do List for the beginning of this week:

  • Finish the Main Dragon model (more on that later)
  • Get a version of Carnot running on mac (we’ll first try to just use X11 like the Gimp)
  • Finish first-person Camera movement
  • Get Image loading working properly
  • Add a Skybox.
  • Settle on some more of the file-formats (after reading its documentation geoffrey has learned to love pngs) and just how we will structure the data for the game.

(Notice how most of these are Geoffrey’s Domain. Not much for a graphics designer to do before Graphics are even implemented.)

Once these basics are out of the way, due to the nature of the game, namely being able to fly over a huge landscape, one of the most important aspect to work on this week will be the terrain, which means effectively managing large volumes of height map data, viewed from a high altitude where culling is useless, while still getting a reasonable frame-rate.

The first step towards that was the implementation of LOD (Levels of Detail) which Geoffrey discussed in the previous post.

I will be looking more into World Machine 2, which seems to have a lot of nice features including weathering simulation, tiling of large textures, and is able to export data like snow-buildup or vegetation density in a realistic manner, all information which we are planning on using in our engine.

We will post daily updates on our progress.

In the meantime, I will leave you with a test Screenshot of Carnot:

-Johannes

Comments more...

The Carnot Game Engine

by Geoffrey on Mar.06, 2009, under Carnot

Discussions about Endless Skies usually go something like this:

Johannes: We need this feature. Can you code this feature??

Me: Well, it’s a bit more complicated than that, but I’ll try. Would this be ok?

Johannes: But it needs to be bigger! Much bigger! And more complex! And more realistic! And sum (-inf, +inf, BIG)!

It took all of three seconds for me to realize that no commercial engine would provide the power Johannes was looking for. I’d have to write one from scratch, specifically tailored to meet his outlandish demands. Thus, the Carnot Game Engine was born (named for the Carnot Heat Engine).

At the moment, I am putting finishing touches on how it handles static objects, and finally have something concrete to talk about. Carnot composes static objects out of a Node and a Mesh. A Node contains meta-data seen by users, and most importantly, a transformation matrix that defines the object’s position. A Mesh contains an object’s geometry. When deciding how to handle objects, I came up with three basic goals:

1) No geometry should be stored in memory more than once, regardless of how many nodes use it (example: rendering a classroom. The chair mesh should only be stored once, even if it is used by twenty chair nodes around the room).

2) In any single rendering pass, geometry should be sent to the GPU at MOST once.

3) Handling different LOD’s (levels of detail) should be automatic, and require no changes to actual geometry.

This lead to the following simplified object structure:

Static Object Diagram

When a Node is loaded from a file, it has a list of LOD’s and corresponding mesh files. Carnot checks whether the mesh is already in memory, and loads it if necessary. Otherwise, it locates it in memory. Thus goal #1 is satisfied.

It then connects the Mesh to the Node for each LOD at which the Node’s geometry is stored in the mesh. The Mesh contains a list of LOD’s, each containing a list of Nodes for which the Mesh is the Node’s geometry at that LOD.

Convoluted? Yes. Memory overhead? Yes, a bit. Fast? Extremely. Let’s consider what happens when rendering a frame. Rendering is done per-mesh, as follows: If the mesh is being stored as a VBO (vertex buffer object) in video memory, it is set as the current vertex array (and how Carnot decides what to store in video memory will probably make a post of its own). Otherwise, its geometry is sent to the GPU. Then, Carnot iterates through every node pointer in the Mesh. If the Node’s current LOD is the same as its LOD in the mesh, then the OpenGL Modelview Matrix is multiplied by the Node’s matrix, and the geometry is rendered. Thus, goals #2 and #3 are is satisfied. All you have to do to change what LOD a Node is rendered at is to change one integer, and assuming that Mesh is in memory, it will automatically start rendering.

So what’s next? A few tweaks to the VBO’s, and ideally a PNG loader for textures. After that it’ll be time to hammer out a good file format, so Johannes will have something to play with, and will hopefully hector me less about my progress :)

~G2

Comments :, , more...

Endless Skies - Introduction

by Johannes on Mar.03, 2009, under Endless Skies

Endless Skies

Disclaimer: the following blog post is lengthy. Grab a snack.

Flying Concept sketch

Flying Concept sketch

A major focus of this blog will be a number of Games and program I am working on, or would like to work on in the future.

One Major such project has been unofficially in the works for about 2 years and is a collaboration between me and Geoffrey, a close friend of mine who will be more properly introduce in a later post.

Said project is a Dragon game, which from now on I will refer to by the working title of  ”Endless Skies”.

(continue reading…)

Comments :, , more...

The End of the Earth - In HD

by Johannes on Feb.27, 2009, under Cool Stuff

picture-161

If you enjoy watching the discovery channel, history channel, etc. you have probably at one point or another seen a documentary or two on asteroid collisions. Sadly most of the times the depiction of what such a collision with earth would actually look like is hardly breathtaking, and you don’t grasp the scope of just how big and powerful of an event this would be.

A few years back I found a video of an asteroid crashing into the earth that did a really nice job of showing, very nicely rendered, just what such a collision would look like, but it was very low quality, and with Japanese naration and subtitles.

However today I found that someone had uploaded the original footage, in HD on youtube, and to top it off, there’s pink floyd’s “the great gig in the sky” playing in the background.

(continue reading…)

Comments :, , more...

Statue of liberty found frozen… In madison?!?

by Johannes on Feb.25, 2009, under Movies

So the lake here in Madison has frozen over and I caught the UW sports society ( which goes by the name ‘Hoofers’ ) putting up a giant head and torch in the ice.

First I assumed it was a reference to the recent ‘the day after tommorrow’ but turns out it’s more meant to referrence the original planet of the apes.

Nonetheless, I just thought this was way cool. See attached photos ( Taken with crappy iPhone camera. ) I wish I had had time to come back later when it was fully set up.

- Johannes

Comments :, more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

Archives

All entries, chronologically...