Attractors & Quartz Composer

November 11, 2008

I’ve been playing a bit more with NodeBox the other day, trying to render Peter De Jong attractors. Something I already tried in my (unnamed) Editor with Ogre. Here is a video my first real-time experiment with Ogre (30FPS on a 3500+, don’t care about the GPU since the attractors iterations run on the CPU):

Actually I accelerated the video 3x the normal speed.

So, I tried to do it another way with NodeBox and I started from this little code (thanks btw) and made things animated and exported to a movie (things like this go very slow in real-time with this tool):

And then during a right click / Open with … I just remembered I had Quartz Composer. I had no idea how it works but this is actually the kind of tool I was looking for lately πŸ™‚ Here are 2 quick tests I made from my previous B&W video:

A few simple image operators and blending patches and we’re done.



Experimenting NodeBox

June 13, 2008

Heya! I recently discovered NodeBox, amazing software dedicated to computational art / creative & generative programming. I’m not gonna (re-)present anything about it, but here are some videos of my first two attempts with this fantastic tool.

Just changed 1 or 2 things from this little tutorial. If you keep looking at the center point, after watching the video, you’ll see the stopped image rotating in the inverse direction, heh.

The next one is another variation with some colors and cubes, and just a different way to rotate some objects.


CrossProcessing shader

June 11, 2008

Hi ! I’m doing a lot of image processing at work since a few weeks, and there a lots of things I wanna try, from post processes to dynamic geometry, but I would need another life for that. After having watched some (really nice) super cars videos (just check at the first one showing the Corvette to see what I mean), I’ve been talking with Nico about the Cross Processing effect, also called xpro, used in photography, and probably in the Corvette video.

corvette cross processing

corvette cross processing

corvette cross processing

corvette cross processing

After a quick talk (thanks) I made a simple pixel shader that post process a given scene with this nice effect πŸ™‚

I followed this Photoshop tutorial to make it, here are the steps to work with the shader:

  • Make a black-to-white gradient
  • Add a New fill or adjustment layer, select Curves, and set the curves just like in the tutorial

cross processing curves gradient

  • Save the 1D image, it’ll be used in the pixel shader just like a curve modifier
  • Modify the final color of your pixels with this (GLSL) code:

vec3 curvesColor;

curvesColor.r = texture1D(curveTex, pixelColor.r ).r;
curvesColor.g = texture1D(curveTex, pixelColor.g).g;
curvesColor.b = texture1D(curveTex, pixelColor.b).b;

gl_FragColor.rgb = curvesColor;

And voila ! Here are some screenshots I took in Reverse (my end of studies project [team of 6 students]), maybe not the best example for this kind of effect but anyway:

reverse no cross processing shader

reverse no cross processing shader

reverse no cross processing shader

reverse no cross processing shader

reverse no cross processing shader

reverse no cross processing shader

In fact it makes me think about color temperature again, but this time the color is modifyed per channel and is dependent to the color components themselves instead of the luminance component of the pixel.

One more screen with all the effects combined during turbo (dolly zoom, desaturation, radial motion blur):

reverse no cross processing shader

Well, I guess these are the first public screenshots of the final version of the game πŸ™‚

Oh and by the way


Kinda color temperature

May 6, 2008

Hi all, I’m not dead.

I saw an interesting image the other day, that directly made me think about the color temperature concept. It comes from the game Fallen Empire: Legions, upcoming Tribes clone running in a web browser on instantaction.com. It produces another interesting effect, because it seems to use another color palette and still link it to the luminance of the object’s pixels.

legions color temperature

Maybe they’re not doing anything like this to get this particular lighting and they are using multiple lights or even any photoshop treatment, but it could be and that’s the way I interpreted it πŸ™‚



April 1, 2008

san francisco usa flag


random() people

March 19, 2008

Some photos I just added on my Flickr page, shot a few month ago in Paris.

stranger paris 2 bis

stranger paris 2

stranger paris 3

stranger paris 1


“Practical Light and Color” Shader

March 13, 2008

Hi, I’m writting the blog post from my hotel room (which is pretty nice) in Sant Cugat del Valles \o/ near Barcelona. I started to play with OpenGL Shader Language Editor (Mac) at the airport, and I was continuing a bit tonight.

I’ve been working on a GLSL shader that interprets Jeremy Vickery’s vision about light and color, especially the color temperature concept.

color temperature dvd

Practical Light and Color (Gnomon Workshop)

At first, a few notes about this very lightweight tool: it really easy to get your hands on it as there are very fews possibilities, it crashes a lot, the code (text) editor is pretty cool with instant code validation and hightlights AND instant effect on the viewport (like a super fast compilation), there are only sphere/teapot/plane objects and no way to add a mesh, no GLSL samples, finaly an automatic uniform variables binding (I mean you type “uniform float bla;” and an editable variable appears (that you can then modify with sliders or color picker or texture browser).

So, let’s talk about light and color! The basic idea is that the hue component of the color is dependent to the luminance component (illumination of the area/object/pixel), so generally dark areas tend to red, less dark ones to orange then yellow, average ones to white, and then blue for bright things.

I noticed that the visible spectrum of J. Vickery above differs from the standard (real) one that you have in every book, but it gives much nicer results (no green nor purple, and different colors spacing).

Here are some details about my way of getting the final color, actually the differences between each image come from 2 color tone variables I’ve been modifying (from 0.0 to 1.0):

  • one that acts a bit like a desaturation, but in fact it’s something like:
    • (colorTemperature + vec3(colorTone)) / 2.0)
  • and one that is a weight related to the previous one, so the final result is:
    • (colorTemperature + vec3(colorTone)) / (1.o + colorToneWeight)

In facts, this is a way to scale the color temperature (texture) AND to reduce the effect it has on the object’s lighting. By scale I mean, using for example colors from red to white, instead of the full gradient that turns into blue at the end. Visually it’s like setting the time of the day or the kind of weather or environment (for example sunset on a sunny day: mostly orange tint).

Of course that’s not the final equation to get the color, I’m still experimenting on it so maybe I’ll give it later with more interesting results. Anyway here are my results with a white teapot:

color temperature shader

color temperature shader

color temperature shader

color temperature shader

color temperature shader

color temperature shader

color temperature shader

color temperature shader

It would be very interesting to try this shader these kind of scenes (Jeremy Vickery paintings):

color temperature jeremy vickery painting

color temperature jeremy vickery painting

And add some kind of atmosphere attenuation, just like he’s talking about in its DVD and GDC session. I didn’t figure it out the visual nor technical differences between this and usual fog in games but .. yeah soon πŸ™‚


Barcelona D-1

March 11, 2008

Hi! I’ve been quite silent since I got back from the SF’s GDC, so here are some news.

I’ll be flying to Barcelona, Spain tomorrow for a few days trip for Ubisoft where I’ll meet the team responsible for a new project. I really can’t say more about it because the game hasn’t be announced yet. The goal is to learn from a specific technology they’re developing over there which is very exiting (couldn’t tease more I guess), help them on their new game, and see how it could be used in other upcoming projects.

I’ve already done this kind of mission before for another technology made by the Montpellier team, a bit the same genre and older, but still confidential. So I’m glad to renew the experience with another studio, that I don’t know yet. Actually I already worked with the Barcelona team on Driver Parallel Lines for Wii last year, on the Wii-specific controls for the character/camera and vehicle, so I know a few of them.

As usual, I didn’t pack my stuff yet, the last time I did the same for my travel to San Francisco and the result was that I couldn’t find my digital camera battery recharger:/

Beside that, I told you I was making a small game engine and tool on top of Ogre and wxWidgets… Well it only has a few days of work, so the editor has nothing fancy for now (I’m still discovering wxWidgets), but the engine starts to be interesting from a usage point of view. There’s nothing Next-Gen in it but with a bit of work it’s gonna be … “wait for it … LENGEN…”, no, just cool.


In fact, in my end of studies project, as soon as I wanted to make a test with Ogre (or with the physics engine) I added things in my current in-game gamestate or player or camera class, and everytime it was making the code uglier with lots of previous test in the usual Update() methods (I’m summarizing but you can imagine), because I had only ONE game, so with my new project, the goal is to be able to make a new ‘demo’ with a few clicks (like a game on itself). I’ll explain that idea next time (moreover the editor part of this process hasn’t been done yet). Anyway here is a screenshot of it :


It hasn’t any name yet, but I’m working on it πŸ™‚ The only cool thing for now is that the wxAUI and wxPropertyGrid parts of wxWidgets produce controls that look like the .net ones (auto-hide, dockable, drag’n drop, properties, blabla…).


GDC 2008: Hot or not ?

February 26, 2008

So what was cool at the GDC and what wasn’t? The following is just my opinion as a gameplay developer, general game dev fan, and gamer, on the sessions I saw so it may be not representative of the whole event. I’m not gonna summarize the techniques and talks I’ve seen but it’s more like a sum-up of a few lectures so you can check (or not) at the video recordings or powerpoint presentations you’re interested in, if they are online somewhere.

I saw 16 sessions during these 3 days, which are:

  • Storytelling in Bioshock: Empowering Players to Care about Your Stupid Story
  • Rules of Engagement: Blizzard’s Approach to Multiplayer Game Design
  • Star Wars: The Force Unleashed: How LucasArts is Building a Game, a Development Team and a Technology Pipeline… At the Same Time
  • Structure VS. Style (Chris Hecker)
  • Pollinating the Universe: User-generated Content in Spore
  • Uncharted Animation: An In-depth Look at the Character Animation Workflow and Pipeline
  • Uncharted: Drake’s Fortune Post-Mortem: Amazing Feats of Daring
  • Adventures in Data Compilation and Scripting for Uncharted: Drale’s Fortune
  • Beyond Printf: Debugging Graphics Through Tools
  • Prototype: Open World, Open Mind, Next Generation Thinking
  • Truer Impostors
  • Crysis Next Gen Effects
  • Practical Light and Color
  • Interactive Actors That Express Emotion (Ken Perlin)
  • Natural Motion: Runtime Character Animation with Morpheme
  • The Next 20 Years of Gaming (Ray Kurzweil’s keynote)

I was expecting a lot from the programming track, and actually the best sessions were the ones about game design! The programming ones were either too technical and short or not deep enough. I’m sure it’s very difficult to make a good lecture for the right audience, anyway I was a bit disappointed of the ones I attended to.

However, the most interesting (in the programming category) was maybe the one about the Next Gen effects in Crysis, and curiously I wasn’t expecting that much from this one! It was cool because by describing many steps of their effects, they kind of explained ‘why it is beautiful‘, especially by giving their secrets to make the water (procedural animation, caustics, light beams, shore, physics), the frozen things, and the different motion blurs (object motion blur, camera motion blur). I was surprised how their techniques for these motion blurs were simple (using depth and velocity masks). They did lack a little of time to cover everything but the slides (with shader codes) should be available online soon.

A nice surprise was the one called Truer Impostors. It was all about a new student’s technique for rendering lot of detail with a high frame-rate. I won’t explain it in here, his paper is a much better source for that, but just as an apetizer: his demo was a scene with 250 000 animated birds in the sky running at 30 fps on a 7800GT. It was a 20 mins lecture so a bit too short for such a technical subject. There are good chances his technique replaces all the other ways he talked about (parallax mapping, relief mapping, true impostors) in future games.

The most impressive live demos I’ve seen were the ones of Prototype and Star Wars: The Force Unleashed.

Prototype was REALLY spectacular with features like: climbing over all the buildings, cars, dynamic objects, a really huge and detailed city, and globally very cinematic and violent combat scenes (very good camera). After at least 10 minutes of explosive playing, I was asking myself: yeah but what’s gonna be the gameplay? I mean ok you kill everybody, you run away from monsters, you steal tanks and helicopters, you climb over everything and you make crazy jumps from the top of skyscrapers, but then what? The basic gameplay is to recover your memory by stealing the one of others, that’s good for 10 mins but what is it besides that? I hope there’s a deeper (macro) gameplay after that.

SW: The Force Unleashed was cool, because what we saw in the trailers is true and well working. I mean the simulation-based gameplay is not a lie, the combination of standard physics things, (all kind of) realistic breakable objects, and the AI/physics-based character animation (Euphoria technology) is awesome. But nothing new actually. I thought they would explain more technically how did they manage to get these 3 technologies working together, but they talked more about their whole production philosophy (new team, hiring, the name of their engines, ‘yeah it was hard but now it’s working’), beh .. ok then.

storytelling in bioshock

The best lecture I saw was: Storytelling in Bioshock: Empowering Players to Care about Your Stupid Story. I won’t explain anything because it would need a full post for it, but to make it simple, they had awesome game design ideas to make the player like the game for both hardcore story fans and the rest of the world that doesn’t care about the story and wants to finish the game πŸ™‚

I’m starting to get bored of writing all this, but some ideas for the last sessions:

  • Craziest lectures: Structure vs. Style, The next 20 years of gaming.
  • A bit boring: Amazing Feats of Daring: An Uncharted Postmortem, Adventures in Data Compilation and Scripting for Uncharted: Drake’s Fortune.
  • I liked a lot: Interactive Actors That Express Emotion (Perlin), NaturalMotion: Runtime Character Animation with Morpheme, and part of the Practical Light and Color.
  • Momentum vs. Animation was canceled (or delayed of very late), too bad, great title.
  • We should really try morpheme and it’s API, Actor Machine (Perlin), FX Composer 2’s shader debugger.
  • I would have liked to see Uncharted Animation: An In-depth Look at the Character Animation Workflow and Pipeline.

I’m not talking about what I saw in the expo hall, that’s already a big post πŸ™‚

If you’re reading this and were to the GDC, let me know your opinion!


Last day in San Francisco

February 23, 2008

Hey! I did just have my last day at the GDC and in San Francisco, and will fly back to France tomorrow morning. There’s a transfer in New York but it’s a couple of hours to take the second flight, so too bad I won’t be able to visit this city. Anyway these 3 days in here were pretty good! I’m not gonna say ‘awesome’ because some of the (programming) sessions didn’t met my expectations (too technical and fast and not so useful, not technical at all, etc.), and also because 3 days is really short to visit the city, especially when you are all days long in a building.

But I repeat it was great! We went to the Ubisoft’s party at the Fluid Bar (it’s a kind of club more than a bar) for the End War game’s presentation and .. I don’t even remember the initial theme/goal of the party. Anyway we enjoyed the free bar, I came back to hotel with a perlin disturbance in my walk and this morning was really difficult …

Today, after the last session at the Moscone Center, I took a random cable train near the hotel (on Powel St) and stopped at the last station! And in fact I arrived at Fisherman’s Wharf (top north of SF), and it was really nice. I found the cable train really cool, with great sightseeings from the top of some hills.

fisherman's wharf

People here are cool! In half an hour I met 4 different people, I mean I spoke to them between 5 and 20 minutes, in the street, in the cable train, … and this kind of situation never happens (to me at least) in France. Maybe it’s the fact that I’m French and they can hear that or because I was alone (Arnaud took a walk in another part of the city), but I think it’s more a general way of life because they talk to others American people too. Whatever that’s a nice feeling, and they’re also polite and do not seem stressed, it’s totally the opposite of the Parisians behavior.

There was a very strong smell near the Fisherman’s Wharf, because of the bay I guess and all the fish and crab restaurants! So I walked a little, the night was falling, and I reached a pier where I could hear and see some seahorses and have a nice view on Alcatraz, the Golden Gate bridge, a big part of the city all lighted, and other cities around forming tons of lights on some kind of small mountains. It was really nice!

san francisco

I’m totally exhausted and tomorrow is gonna be a looooong day. I’ll try to talk more about what I’ve seen at the GDC and post some photos soon πŸ˜‰