PDA

View Full Version : Glow, silhouettes, cube lighting, fresnel reflection, ...



SeskaPeel
11-25-2003, 07:54 AM
All I could learn from this forum in 20 screenshots here : http://dev.succubus.fr/3D/Gallery.htm
This post is here to discuss features so feel free to comment / flame all you see.

Still missing hatching and shadows ... coming soon ...

The game should be signed to a publisher soon, thanks for your help all,

SeskaPeel.

[This message has been edited by SeskaPeel (edited 11-25-2003).]

Humus
11-25-2003, 09:31 AM
Nice http://www.opengl.org/discussion_boards/ubb/smile.gif
A little cartoonish, but I suppose that's intentional?

dorbie
11-25-2003, 07:57 PM
The cartoonishness is intentional. If you look there's an NPR silhouette on all scene objects.

Nice work, well done.

davepermen
11-25-2003, 11:30 PM
very stylish cartoony.. first you don't note it.. then you feel it looks somehow surreal, painted..

looks cool

SeskaPeel
11-26-2003, 03:48 AM
Cartoonish is certainly not what I intended to do, but "painterly" fits well. Actually, this feeling comes from the fact that the textures are painted, and from silhouettes. Still working on hatching (per pixel hatching is a pain in the ass as ARL function is not effective in fragment programs). Still working on pre computed radiance transfer too.

There's a nice work done on silhouettes : they are lit by a fragment program instead of being simply rendered black.

I'm a bit disapointed that you didn't talk about the sky. Of course screenshots don't reflect it, but the sky is changing dynamically, smoothly blending from one cube map to another. I render to texture those cube maps so that they can be correctly relfected on the sea. I also render to texture the associated cube map for directional lighting, so that the scene is correctly lit each time of the day (the lighting cube map can be considered as a blurred lowfrequency low resolution of the skybox). This method can give any effect you want (cel shading, ...), at artist wishes.

The second stuff I particularly like is the "glow" effect, that is a superb obfuscation of the classical algorithms. There's no alpha channel to encode radiance, neither any high dynamic range effect. Only a full screen grab, blur and blend.

Other feedbacks, or ideas of what could be done to add even more painterly rendering style ?

SeskaPeel.

Ostsol
11-26-2003, 04:40 AM
I agree, it looks pretty cool! It has a softer feel that's quite unlike what's seen in most games. Quite refreshing. . . http://www.opengl.org/discussion_boards/ubb/smile.gif

knackered
11-26-2003, 07:20 AM
Good stuff, especially the sky http://www.opengl.org/discussion_boards/ubb/wink.gif
(you really need it to be a cubemap?)

You should take a look at the Prince of Persia game on the xbox to see a fine example of this kind of image-space effect (blurring/glowing etc).

dorbie
11-26-2003, 07:32 AM
I was just gonna mention Prince of Persia as I was catching up on the thread, but you beat me to it.

P of P has a nice pastel effect with some post processing to soften it up a bit & help with the light bloom.

SeskaPeel
11-26-2003, 07:38 AM
Knackered : I don't understand the "do you need it to be a cubemap ?" ...

What are other alternatives ? Having 6 different textures ? We first did it this way, and we simply finf it easier using a cube map and tweaking the matrix texture to have the sky rotate with the sun.

Actually, our sun position is computed using ephemerids, you give longitude, latitude, year, month, day, hour, minute and seconds, and it outputs the correct position of the sun.
So that at sunset we can have a red/pink skybox, looking nice, with colored distant clouds too, we needed it to be artist generated. Now we had to make the skybox "track" the sun position, so that when the sun rotates, the skybox rotates with it too. This way, the artist only needs to draw skyboxes where the sun doesn't rotate, only the altitude is changing. I'm not sure how clear my explanations are ...

And finally, I wanted to avoid overdraw, so the sky is rendered after opaque geometry, and before translucent geometry. In a previous thread, I asked how I could do this, and I don't remember who answered me, but the method was cool (the concept was to tesselate a plane ortho to the screen, at the correct depth, so that polygons that are hidden by geometry are be culled efficiently). Each vertex texture coordinate is computed at startup and compiled in a display list. We only tweak texture matrix (and only a rotation over the Y axis).

SeskaPeel.

[This message has been edited by SeskaPeel (edited 11-26-2003).]

dorbie
11-26-2003, 10:44 AM
You keep saying "we". Are you working alone or is there a team?

SeskaPeel
11-26-2003, 11:26 AM
We are a team of 7 developers.

I suppose the question was even more that what it seemed so I'll answer before it being asked :

1 working on texture loading and all Win32 API related stuff (audio, input, window creation and PFD, ActiveX, ...) (21 years old)
1 (very new) working on state engine and soon on biped physics (33 years old, former Ubi Soft R&D team)
1 working on GUI (28 years old)
1 working on exporter (25 years old)
1 researcher (silhouette detection, stripifier, collision detection, morphing and skinning ...) (23 years old)
1 working on aerial stuff (clouds, skyboxes, ephemerids, sun) and animation controllers (24 years old)
and your humble servitor working on all cited above (state of the art survey, conception, lead, human resources, coffee maker) + quite all development on graphical aspect (mostly OpenGL related) (26 years old).

I'm slowly passing all the implementation work to my colleagues because managing my company is a huge time consumer. Even the lead will go to someone else (leading the leader from the shadows is better than being insulted).

All the team is new to CG (1 year experience starting from scratch or from college level), except I with 4 years. We are only 2 on 7 that worked in a company before.

In french you literally call this a "broken arm team". But the result begins to show up, I hope. This forum is an invaluable resource, along with NVidia website.

This is it,
SeskaPeel.

SeskaPeel
11-26-2003, 11:31 AM
Dorbie and knackered : we inspired from P&P Sands of time for this effect. I still didn't see what it looked like real time animated.

SeskePeel.

knackered
11-26-2003, 11:23 PM
Prince of Persia is not only one of the best looking games I've ever seen (at a very high frame rate), but it is also one of the most enjoyable games I've played in years. It gets my stamp of approval, for sure. You should all take a look at it. We're so up to date aren't we dorbie? http://www.opengl.org/discussion_boards/ubb/wink.gif Unlike these ignorant 26 year olds... http://www.opengl.org/discussion_boards/ubb/smile.gif

I suppose with a flying game you *should* put this much effort into rendering the sky (cubemaps etc.) - it's just that in ground based games I've never seen the point in putting much effort into the sky.
BTW, is this game going to be something like Pilotwings64?

SeskaPeel
11-27-2003, 04:24 AM
Knackered : yes, kind of.

V-man
11-27-2003, 09:24 AM
Originally posted by knackered:
Good stuff, especially the sky http://www.opengl.org/discussion_boards/ubb/wink.gif
(you really need it to be a cubemap?)


You could tell it's a cubemap just by looking at the pics?

The graphics looks pretty good if you are going for that painted look. Specially the rocks. I wouldn't mind beta testing this!

The water needs a fix :
Here it looks nice http://dev.succubus.fr/3D/Shot%2006.jpg

and the others, not as good.

SeskaPeel
12-01-2003, 03:08 AM
V-Man,

for the water, we have a problem involving mip mapping of the bump map, and the mesh (a basic plane) for the water is not as large as it should be. Actually it should be infinite, but I don't know how to do this correctly. We tried a huge mesh, but frame rate dropped down drastically ...

We could offset the skybox a bit down so that we won't have a seam problem at the horizon, but we missed time to do that.

And now we are rather working on trees (it was a pain in the ass for the artist to position those 1000 trees, and we need 10 thousands of them), and on the shadows (shadows under the trees - lightmap ? - , and shadows under the plane - stencil ? -)

For the beta test, you'll have to wait one year at least. I'll sure post an annoucement in here (not out of topic : test of the OGL rendering engine).

SeskaPeel.

Tom Nuydens
12-01-2003, 03:45 AM
Originally posted by SeskaPeel:
the mesh (a basic plane) for the water is not as large as it should be. Actually it should be infinite, but I don't know how to do this correctly. We tried a huge mesh, but frame rate dropped down drastically ...

You could use vertices with W=0, although I'm not sure how you'd texture a mesh that has a few of those in it (use texcoords with Q=0, I guess). The easiest solution is probably to use a finite mesh and to cover up the edges with fog instead.

-- Tom

Madoc
12-01-2003, 04:10 AM
I would certainly intersect the plane with the view frustum. You'd need to make up some kind of horizon for an infinite projection though.

SeskaPeel
12-01-2003, 04:18 AM
Madoc, actually, intersecting with the view frustum would give some bad results, as the plane won't be infinite.

It won't be if I used an infinite projection matrix, but going this way, there's no need ot intersect with the view frustum.

SeskaPeel.

chrispy
12-01-2003, 06:25 AM
Talking about skies, it is worth taking a look at www.1000skies.com (http://www.1000skies.com)

(It's a pity that there are no high dynamic range ones)

Chrispy

Madoc
12-01-2003, 08:44 AM
Originally posted by SeskaPeel:
Madoc, actually, intersecting with the view frustum would give some bad results, as the plane won't be infinite.

It won't be if I used an infinite projection matrix, but going this way, there's no need ot intersect with the view frustum.

SeskaPeel.

I'm not following you there. It would _look_ infinite. Problem is more that you don't want it to look infinite as the earth isn't flat, so you need some kind of horizon.

What do you mean by there's no need to intersect the view frustum? How else would you make it cover the entire view? I can't say I can actually think of any other solution. Unless what Tom suggested with w and q = 0 would work.

V-man
12-02-2003, 10:31 AM
>>>for the water, we have a problem involving mip mapping of the bump map, and the mesh (a basic plane) for the water is not as large as it should be. Actually it should be infinite, but I don't know how to do this correctly. We tried a huge mesh, but frame rate dropped down drastically ...<<<

You arent using automatic mipmaping for normal maps are you? I'm assuming you mean normal maps here.

If you aren't animating the surface and it just flat, then you dont need many polys and no need to transform it.

Hint: the nearer regions can have more smaller polys and the farther ones larger ones. kind of Geo-mipmapping.

I would do some vertex displacement in a VP to animate the near polys. It would look better than bumpmaps.

SeskaPeel
12-03-2003, 09:11 AM
V-Man, I read the nvidia "robust" paper about normal map mipmapping, and I simply didn't understand. So yes, I am using automatic mip map generation.

Is that it ?

SeskaPeel.

DarkWIng
12-03-2003, 11:26 AM
Originally posted by V-man:
for the water, we have a problem
I would do some vertex displacement in a VP to animate the near polys.

Can you give any examples how to actualy do this? I've searched a few forums but I haven't found a VP perlin noise that actualy worked (There is one that almost works, but only for small input values)

Tom Nuydens
12-04-2003, 01:49 AM
Originally posted by SeskaPeel:
V-Man, I read the nvidia "robust" paper about normal map mipmapping, and I simply didn't understand.

Which paper is that?

-- Tom

SeskaPeel
12-04-2003, 03:41 AM
Tom : http://developer.nvidia.com/object/Practical_Bumpmapping_Tech.html

SeskaPeel.

Tom Nuydens
12-04-2003, 04:48 AM
Ah, thanks. So what exactly is your issue with the mipmapping of the water bumpmap, and which part of the paper did you have trouble with?

-- Tom

SeskaPeel
12-05-2003, 04:38 AM
Tom : chapter 5.3

SeskaPeel.

SeskaPeel
12-11-2003, 07:09 AM
Tom any hint ? I'm still a bit lost ...

SeskaPeel.