Geomerics: 1 Year

July 2nd, 2008

So, one year ago today, I started my first day at Geomerics. This warrants some delicious Portal cake:


Mmm, tastes of some delicious, chocolaty neurotoxin.

I’ve done a lot of things this year. Writing blog entries has not been one of them. I shall resolve to talk a bit more about my experiences over the last year, and how my thoughts on computer graphics (specifically related to computer games) has changed because of them.

In fact, that reminds me: in a few days, I should write up some of the wisdom bestowed upon us by the total legend Jeremy Vickary - a previous lead lighting artist from Pixar - who came to visit us for a few days.

Oops!

June 6th, 2008

For those of you who have visited before, you may notice that my old website is… gone. Frankly, I broke it like a dork. At least I managed to keep all the gibberish posts. This will have to do for now, until I am able to get Version 2.0 done.

Enlighten @ GDC 2008 (More)

February 19th, 2008

We have just released two more videos! HD versions will shortly be available here.

Enlighten @ GDC 2008

January 29th, 2008

I’ve been meaning to post for a while now, but any posts I would have made would probably have been inconsequential drivel (see all other posts). But not this time!

We at Geomerics have been working rather hard*, and we’ve produced a small teaser video of our work in preparation for GDC 2008. We have more than this teaser, but we’re saving that for the event itself. The video is a capture of our lead technical artist, Ivan Pedersen, demonstrating (at x4 speed) the capabilities of our technology. It’ll hopefully put to rest some of the rumours that it’s all just a fake. (Such rumours kill fairies.)

Find the high-definition version here!

Also, here are some details to answer some other questions that I get frequently asked:

  • It is dynamic: you can move lights and geometry, change the materials, et cetera, and the radiosity will change accordingly.
  • Dynamic shadows do affect the radiosity.
  • It can do larger levels/maps/geometry than shown here. We’re saving that for GDC.
  • It is more efficient when using a precompute step for static geometry. Dynamic geometry does not need this step.**
  • It uses two solutions for static and deformable geometry, just for efficiency’s sake. In theory you could mark everything as a deformable object…
  • It runs fast enough for use in computer games, or we’d all be out of a job. )
  • There is an SPU version for PS3. It is fully threadable for Windows and Xbox 360.

I confess I’m being deliberately vague about performance here, and you have my sincerest apologies. This isn’t because I’m a filthy liar, but with the extensive work going on here in the office at the moment, I’m not going to commit to any numbers. Also, that’s a job for the marketing types, so I’m not going to tread on anyone’s toes. If anyone does have any questions, however, you can email Geomerics directly from the website.

By the way, I love this website!

* Between the parties and the hookers.
** For the radiosity precomputation only, this took around 3-5 minutes.

Motion Blur

August 27th, 2007

I’ve finally got around to uploading the fixed motion blur in the GLSL demo, which can be found here. I’d fixed it a few days after my last post, but I’ve been neglecting this site a little bit lately. Today I modified it so that there is more blur on the outer edges of the screen, and less in the centre. This was to avoid what I like to call “Bourne Film Sickness”.

The reason that I’ve not posted in a while is that I’ve actually left University and got myself a job at a rather amazing games R&D company based in Cambridge. It’s brilliant, and I’m so glad that I did it. I was running out of money, fast, and this job opportunity was too amazing to be missed.

I’m still doing my Masters in my spare time, though. Rather than doing something graphical for my final thesis, I’ve decided to write a small scripting language. I’ve always wanted to write one, and I spend 8 hours a day doing graphics at work, so I figured that I might overdose. )

As I say, do check out the improved motion blur.

Edit: Gosh! My work has been referenced on the Blender Artists forums last month! Thanks guys! )

Edit, again: Some shots of the blur. I’ve just realised that it’s not framerate independent, so on slow cards you’ll get loads of blur, but on a GeForce 8800 you’ll get a nicer blur (because that’s what I’ve tweaked it to). Sorry about that.



Some excessive blurring to show it off. High forward velocity.


A gentle sideways movement.

The Cave Troll; Photorealism on the GPU; “Cali”

May 4th, 2007

I haven’t posted in a while, so my current work is shrouded in mystery.

First off, a quick update on last term: I’ve produced a procedural city/garden generator in Houdini, but I don’t have screenshots here. I will post some up the next time I’m at Uni. Also, there was the infamous GLSL demo, which I’m moderately pleased with and has inspired me with regards to my major project this year. More on that in a moment. If you have a GeForce 6800 or above, please do check that out! It’s quite basic compared to a lot of stuff out there right now, but I’m still pleased with it as I managed to cobble it together in five or six weeks.

Last term also saw the end of the Cave Troll. Now, while I’m pleased with a lot of the features that were incorporated into the project, it seems that fate conspired against us to ensure that everything that could go wrong went wrong. However, I was responsible for the lighting and Maya to RenderMan pipeline, and both of those things worked out a treat. You can see a copy of the presentation slides for details on how the median cut algorithm works, and also details on the RIB exporter. There is a dodgy video showing how the ambient light maps onto a sphere. I may write a new page on these tools soon.

The reason I’m so annoyed with the project is that the mocap data that we were so proud of was completely unusable. Malcolm, our only animator, used XSI to hand-animate the troll using the mocap video as a reference, but then we couldn’t get our animation from XSI to Maya. Given the remaining time, Malc had to learn Maya in two weeks and animate from scratch. He deserves a medal for that, to be honest.

The muscle system was developed by Johannes, but unfortunately he was stuck in Germany when it came to actually applying the muscles to the troll. I had to botch the job in the last week and wasn’t able to tweak it, so if you want a laugh watch the belly of the troll very carefully as he runs…

The main topic I wanted to cover in this entry is photorealistic rendering using a graphics card. As John Carmack said in his 2004 Quakecon speech, it won’t be long until we start seeing low budget visual effects studios switching to a more affordable and faster method for rendering C.G. scenes. With games companies producing stuff like Gears of War, that day is getting closer and closer. This is currently what I’m looking to investigate, and I’m planning to write a RenderMan compliant GPU-based renderer (codenamed “Calistos”, or just “Cali”) over the coming months.

However, there are a number of things that clearly make offline rendering superior to rendering on a GPU, and these need to be resolved somehow in order to produce better results. The first thing that I notice every time I look at games is the terrible, terrible aliasing. Frankly the antialiasing on current hardware is dire, and that really need to be improved. Even at 8x, it still looks pretty bad. I’m looking forward to the day when hardware has in-built 16x anti-aliasing at decent rates.

Another thing I don’t like is the texture filtering. It can be fine in a lot of cases, and mipmapping certainly helps to reduce aliasing on distant textures. However, the closer you get the more a texture looks bad, and the only way to solve this is to use a very high resolution texture. In an offline renderer you can have a texture any size you like, but on a GPU you’re limited to 128MB or less in most cases. For the cave troll, we had a 32-bit floating point displacement map that was 4096 pixels square and took up 100MB of disk space. That’s certainly not going to be viable on a GPU in any circumstances.

There are some things that the GPU does as well as offline rendering or better. For example its a hell of a lot faster to rasterise than to raytrace or even use a REYES algorithm. Fragment shaders are pretty damn good at doing most of the post-process effects that are used in offline rendering, and doing them better in a lot of cases. There are still times when precision becomes a problem, but unclamped floating point pixelbuffers make this a non-issue most of the time. Finally, with the advent of GLSL, Shader Model 3 and OpenGL 2.0, things are becoming a lot more flexible. I don’t know what the instruction limit is for shaders these days, and I make a point of not looking. However, I’ve written some pretty nasty shaders over the last few weeks and the card has just done its job with no complaints.

I shall report back in a few weeks with news on Cali’s development, and hopefully some screenshots.

New Server; Preview

March 2nd, 2007

Hello everyone. A short post today due to limited time. So much work…

Switched to a new server at DreamHost.com, who rock. Like, a lot.

Coming soon: my implementation of Debevec’s median cut algorithm, and some cave troll previews. Watch this space!

Cave Troll: Mocap Session

February 9th, 2007

Thanks to Andy Cousins at Access Mocap for the use of his motion capture facilities!

Cave Troll: Principle Photography

February 4th, 2007

A group of us (Malcolm Childs, João Montenegro, Johannes Saam, Djamalkhan “Jamal” Ahmedov, Richie Moore and myself) have come together to try and produce a short C.G. creature animation of a cave troll. Yesterday was the only day of principle photography, and here are some photos of our crazy excursion. I will post up some more details and photos soon.

Photos and more photos!

Website Update

January 10th, 2007

I’ve discovered the joys of CSS lately, so the site has been revamped slightly. I can’t seem be able to think of any kind of colour-scheme except ones that consist of varying shades of blue. Any tips would be gladly taken on board.

Going back to Bournemouth on Sunday after a long and relaxing holiday. This is probably the first time I haven’t done any work since my A-levels (ha!). I’ve forced myself to have a proper holiday so I can go back to University and regurgitate all my pent-up code onto a keyboard.

In the meantime I have been writing a small story, which isn’t so small any more. If any of you are interested in fantasy fiction (I hate that expression, but I can’t think of any other phrase to describe it) then check out the Prologue. Please ignore the disgusting and blatant use of CSS hacks, but do check out my HTML formatter script. I’m rather pleased with it.

I hope you all had a nice holiday!

  • View Peter J. B. Lewis's profile on LinkedIn
  • Journal Categories

  • Meta