Archived

This topic is now archived and is closed to further replies.

yanuart

Realtime Hair

Recommended Posts

Have u seen the hair that Raiden has in Metal Gear Solid 2 ?? It''s not those sharp edges hair that ussualy a 3D characters have, but really cool and smooth hair like when u use Maya to make and render hair (do I make any sense here ??) What kind of technique to implement such a cool features ?? Any information will do.. thx !!! ps : Happy New Year !!!

Share this post


Link to post
Share on other sites
I'm a bit more impressed with Rare has done with StarFox Adventures. How the hell did they do that?

That's like 100,000,000 individual hairs? What the heck?!?

EDIT: I guess that image was a little big (640x480), so I'll just provide the link.



Edited by - utwo007 on January 2, 2002 1:56:13 AM

Share this post


Link to post
Share on other sites
quote:
Original post by utwo007
That''s like 100,000,000 individual hairs? What the heck?!?


Which is why I suspect it''s just a few clear triangles (to get depth information so it behaves 3D like) and drawn as a pixel shader effect. I don''t really know though, I''m just guessing.

Is that really an in-game shot - or is it concept art? It looks very 2D - no shadows... no radiousity... uniform lighting...

Magmai Kai Holmlor

"Oh, like you''ve never written buggy code" - Lee

"What I see is a system that _could do anything - but currently does nothing !" - Anonymous CEO

Share this post


Link to post
Share on other sites
It could be possibly alpha displacment or something similiar. Basically using the triangle normal and a channel (or alpha map), you would draw each pixel as an offset or as a line. Kinda like a voxel, but instead using the triangle normal to set an direction to each "hair"...
Well, that''s my two sense?!?!!?!? Maybe someone has an better idea, but check out maya! They use it in their shading networks
Good luck n god bless!

Share this post


Link to post
Share on other sites
ello,
I think I know how it was done and no pixel-shaders are needed. I remember to read a doc about a method which used an approach like this:
1.draw skin (normally)
2.draw a texture with hairs just over skin (like few cm over it or so)
3.draw a texture with hairs on all edges (create quads between edge and edge normal)

As you can see you end up with drawing about 3 times the triangles count but no pixel shaders or anything is needed.
There''s a .pdf somewhere around the net that describes this method, unfortunetly I can''t find it atm. If someone is really interested I can take the time to find it in my mess on hd
ps.it''s not for someone that has learn how to use d3d/ogl few days ago....


With best regards,
Mirek Czerwiñski
http://kris.top.pl/~kherin/

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I think you are talking about this paper: http://research.microsoft.com/~jedl/pdf/fur_I3D2001.pdf btw: I think your second step can speed up by using Volumetextures - which should be supported by the Gamecube, perhaps thats how its done in StarFox Adventures.

Share this post


Link to post
Share on other sites
You'll have to excuse me because I don't know a lick about graphics programming.

I was under the understanding that only the XBox supported pixel or vertex shaders, and I don't remember volumetric textures being on the GameCube's list either. I could be wrong.

Anyway, all these seem like cool ideas, but I don't see how these techniques help the computer avoid making zillions of FP calculations. I mean, even if you could use some polygons and vectors to establish a volume and direction for the hair to be rendered (notice how the hairs have different lengths and directions?), you still have to fill those volumes with zillions of hairs, each of which have their own position in 3D space, angle, size,, and distance from the camera.

I guess I can see how those techniques could be used to make development of the model easier (so the artist only has to create a few polys and vecors and such rather than millions of individually modeled hairs), but I don't see how it helps during the rendering process.

Magmai Kai Holmlor -

Forgot to answer your question
It's realtime. I'm pretty excited to play a game that looks like that. This generation of consoles is going to kick ace.
As far as lighting and shadows are concerned -- and I'm no graphics programmer, remember -- but each character has a realtime shadow cast by a single distant light source. There are some other local light sourcing being done in some areas, I think. The characters don't seem to self-shadow any, I know GameCube games like Rogue Leader feature multiple local lightsources and self-shadowing. Perhaps these features were taken out of StarFox Adventures in order to save FLOPS for the fur shading? I dunno.

Edited by - utwo007 on January 2, 2002 11:43:13 PM

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
goto http://research.microsoft.com/~jedl/ and download the first Demo - its the same effect as in StarFox but it runs on a Pc and looks even better. The Hairs don t really have a volume, they are only some texture layers

-----H----------- layer 7
------HH---------
-------HH--------
--------HH-------
--------HH-------
------HHHHH------
----HHHHHHHH----- layer 1

http://cubemedia.ign.com/media/previews/image/starfoxa/fur3.jpg <-- look at the arm, there you can see what i mean



Share this post


Link to post
Share on other sites
It'd be seven times the number of textures and geometry versus a single flat texture, yes - but this way it _looks_ like each hair has its own geometry. 7 layers of texture involves _many_ fewer polygons than actually modelling each hair.

Edited by - rileyriley on January 4, 2002 12:32:16 AM

Share this post


Link to post
Share on other sites
Well! l see everyone like to do things the hard way, but if you guys noticed? NOT ALL THE HAIRS HAVE DIFFERENT DIRECTIONS! In fact, the hairs seem to face the same direction; but in patches. Now if only there was some implementation that would do this in RT... WAIT A SECOND, TRIANGLES! (SARSCASM) And if the model''s hair seemed kinda "fake" then you could split the triangle to cover the "obvious" patches.
If lm wrong of course, then maybe you can still use voxels with a normal for hair direction but add interpolation from each vertex normal to create a smoother but a bit more costly transtition.

Share this post


Link to post
Share on other sites