Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Pierre Terdiman, posted on September 17, 2000

Image Description, by Pierre Terdiman

Here are some (mostly old) screenshots from my development framework called ICE. It includes some rendering facilities as well as miscellaneous private libs (from collision detection to rigid body and cloth simulation).

From left to right and top to bottom:
  • Butterfly subdivision surfaces on a Lara-like model
  • cellular noise-based terrain interacting with water
  • spectral synthesis and texture generation
  • radiosity test scene #1
  • radiosity test scene #2 (Hi Klaus :)
  • the classic 2D water effect rendered as a 3D mesh
  • a complex scene made of more than one thousand objects (this is the french "Pyramide du Louvre")
  • cube-mapped reflections...
  • ...on a Q2 character as a bonus
  • Of course, everything is exported from MAX by Flexporter :) (



    Image of the Day Gallery


    Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
    Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

    September 17, 2000, 04:42 AM

    Ooh, lots of neat stuff there. That's some damned nice radiosity there. What kinds of framerates are you getting on those things (especially on the 1000-object object and the 2D water effect)?

    Isaack Rasmussen

    September 17, 2000, 07:28 AM

    Wow-wow-wow! Pierre, when are you gonna release a demo?

    The water looks even better than the last time I saw it, it is cool to see that your engine can do other things than terrain and water.

    But are you having realtime ripples in the water? Can you say anything about how you are doing it...

    Very impressive,


    Florian Hoenig

    September 17, 2000, 08:04 AM

    I think we are reaching a level, where "everybody" can achive the visual quality limits of polygon rendering. I mean, those pics look great!!!
    I think you can (technically) do better than that. The only thing left is speed.
    What to do in the near future??? What techniques are left to make things still better? How to achive a new unique look and feel ? Everything looks like your very graphics adapter's rendering style :)

    I would consider Voxel-Texturing :)


    September 17, 2000, 08:06 AM

    These are some nice shots, that water effect is so effective, the shadows and lighting look realistic, and the landsape shot is so landscape like. Good job.


    September 17, 2000, 08:18 AM

    great work! no more to say...
    just waiting for demo to see, i'm on P3/ASUS GeForce 256 SDR (slowest one possible)

    Florian: what this voxel texturing means, i've heard a lot of different meanings... it must be patternized.


    September 17, 2000, 11:17 AM

    wow! nice shots!


    September 17, 2000, 11:29 AM

    looks awesome. i remember experimenting with oscillator based 3d water a few years ago, and i ran into a problem where the system would get unstable, i.e., instead of settling completely after a while the water would start doing random oscillations indefinitely. and, if i upped the dampening factor, which took care of that, the water ended up "feeling" like molasses :). how are you handling that?

    oh, and is there a launch date for



    September 17, 2000, 11:48 AM



    September 17, 2000, 11:58 AM

    That is absoultely amazing. That water effect is totally awesome.


    September 17, 2000, 03:01 PM

    I really like that!!!
    especially the water pic ...

    Phil Carlisle

    September 17, 2000, 03:13 PM

    Weird how most people are impressed with probably the simplest peice of code there.. hehehe..



    September 17, 2000, 05:14 PM

    Amazing! I 'd like to know how you did the water effect, can you enlighten us with some theory about it?
    (or perhaps some code? ;)

    Please? :)


    September 17, 2000, 05:36 PM

    the theory behind it is pretty simple. you define a two dimensional array of oscillators, defined as an upper bound and a lower bound. each frame, any given value switches between the lower and the higher bound. the oscillators are blended using a gaussian filter, then a surface is constructed using the oscillator positions as the vertices. it's actually a special case of genetic algorithms, there's a fair bit of info on the web.



    September 17, 2000, 05:53 PM

    Do you know some links? :)

    zed zeek

    September 17, 2000, 06:32 PM

    very very nice.
    im not moaning but just wondering is it possible we could have to IOTD at a larger resolution than 640x480. like the above shot does not have a link elsewhere to better quality pictures so we're forced to strain our eyes to see the detail in the above 9 shots.
    a couple of issues
    1/the ppl with smaller screens will just have to use those scrollbars :)
    2/the page will take longer to load in , dont think anyone would mind
    3/ppl will just start sending in 20 screenshots instead of 9, well thats life

    Marko Dokic

    September 17, 2000, 06:35 PM

    check this link for a tute on 2d water:

    Pierre Terdiman

    September 17, 2000, 07:23 PM

    Hello Flipcoders,

    First my apologies! I wrote the image description in a misleading way: pics 4 & 5 are scenes used by a friend of mine to test his radiosity renderer, and that's why I unconsciously refer to them as the "radiosity test scenes". But in the shots they're using standard texturing. Actually both are very old scenes from the DOS days. Pheew, truth is back :) ...sorry...


    The framerates are pretty correct... not because of my code, because of the GeForce :) IIRC the water ran as 60Hz without much troubles (after all this is just a single mesh!... and Phil is right, that's the easiest part by far). The 1000 objects scene also runs well, this time because I carefully designed the engine so that it can handle lots of objects. BTW 1000 is not "a lot", but that's another topic.

    Isaack and the others,

    I'm puzzled like Phil... The water is a just the same old, very old 2D water effect first seen in an Iguana demo years ago. Rediscovered in a Game Developer issue (probably by Jeff Lander) years after. Just take the 2D pic as a heightfield and render it, this is pretty dumb! Of course you get the ripples. You can also make it bounce on the coastlines by using an extra bitmask telling you where you should do the computation. Here are the original pictures:

    The terrain is the same as for a previous IOTD:

    There's a awful lot of faces in them! ~100.000 each time.

    See ya,



    September 17, 2000, 10:52 PM

    Pierre: Well, I figured that it was standard texturemapping, but the generation of the radiosity maps is quite nice (which is what I was referring to).

    I am well aware of the fact that the water mesh is the simplest effect (I myself have coded many things like that), but the way the lighting is setup it looks VERY nice. And yeah, 1000 objects is not "a lot" but when you have several of those objects, then it gets to be quite a lot. I mean, only ten of those would choke any non-hardware-T&L card just from the sheer amoutn of matrix loading which has to go on...

    Oh, and the Iguana demo is called "Heartquake." :) They actually released the source to the water part (it's somewhere on, assuming the code section still exists - search on Actually, the computations in doing cloth meshes isn't too far removed from water, you're just doing it in three axes instead of one and it takes a bit more work to determine the acceleration between the points. :)


    September 18, 2000, 01:18 AM

    I didn't knew that water effect are so simple, thanks for the links!

    This thread contains 19 messages.
    Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.