how to render Palms like in farcry ?

Started by
51 comments, last by Zemedelec 17 years, 9 months ago
I've been looking at the trees in SpeedTree demos and Oblivion, they both seem to have just a stock of common sprite images.

Open one of the speed tree textures, you will see them. I dont know, maybe it has this capability, but I dont think Oblivion uses it. Because most trees all seem to use one or two sprites per tree type. Open a speed tree demo level, fly the camera up high above the forest, you can see when the transition happens, the trees are just using a basic sprites, not a special imposter render.

IN any case, why would using this imposter system be needed? In most cases the transition wont happen until the trees are reasonably far away, and your sprite just has to be a general render form a decent angle, and is usually not noticeable.

I'm not sure how instancing relates to imposters... imposters are still going to be seperate renderings for each tree depending on position and angle, etc. Walk around in Oblivion, you can see that each tree type has just one sprite image attached to it.
Advertisement
What do you mean by, "one sprite image attached to it"? Oblivion uses Speedtree for its tree rendering. If you go into the developer's mode, you'll see that in fact the imposters are updated based on changing camera angle.

The reason the imposter system is needed is because no computer can render more than a few thousand trees consisting of 3,000-8,000 polygons at a reasonable speed whatsoever. Even a batch of 200 trees would cause a problem.
Author Freeworld3Dhttp://www.freeworld3d.org
Quote:
Even 30 degree interval billboards are a waste of memory.


Your right, what I mean to say is update the imposter in 30 degree intervals.

Quote:
I've been looking at the trees in SpeedTree demos and Oblivion, they both seem to have just a stock of common sprite images.


Speedtree and oblivion use a single generic texture for far away trees. It is not updated on the fly for the rotation, and is simply blended into a group of billboards at closer distances. I run oblivion on low settings and they definately do not render the trees as imposters (in the true sense). Set the tree distance close and run around the tree, nothing will update at any angle. Maybe on high settings it does render imposters, who knows because I cant run it on those settings.
Quote:Original post by Anonymous Poster
Quote:
Even 30 degree interval billboards are a waste of memory.


Your right, what I mean to say is update the imposter in 30 degree intervals.

Quote:
I've been looking at the trees in SpeedTree demos and Oblivion, they both seem to have just a stock of common sprite images.


Speedtree and oblivion use a single generic texture for far away trees. It is not updated on the fly for the rotation, and is simply blended into a group of billboards at closer distances. I run oblivion on low settings and they definately do not render the trees as imposters (in the true sense). Set the tree distance close and run around the tree, nothing will update at any angle. Maybe on high settings it does render imposters, who knows because I cant run it on those settings.


@AP - Oblivion USES SpeedTree. soconne is correct, if you go to the developer mode you can see it happening.

"Those who would give up essential liberty to purchase a little temporary safety deserve neither liberty nor safety." --Benjamin Franklin

hmm .. yes Oblivion uses SpeedTree and so am I. The problem is that the generated billboard and 360 billboards don't look good. You can see the transition from a real rendered tree to the pregenerated billboard very good in our game. That's because of the lighting conditions. When the billboards are generated, they don't have the same lighting settings as we have in the game. For the SpeedTree demo's they especially generated the billboard to look good for their scene, but they don't have any dynamic lighting or rotation on the trees. And the billboards in Oblivion are plain ugly!

Most of the time you only render at max 6 different trees models. Every model has a few variations, and per instance parameters to make them more unique, such as a little bit of color, size and perhaps rotation (you can than geometry instance the trees of the same variation). So you would only need to generate 6 imposters every few frames and share them between all your trees which have the same base model. Like this the imposters take the correct shading from the game and would look much more realistic. The problem is that all the trees share the same imposter and the angle between a tree on the left of the screen and on the right, can be more than 30 degrees so it would be visible that they are not using a correct BB. The solution to this is generate a single 360 BB for every tree model. Is uses a bit more video memory, but we're talking about billboards so they don't have to be to big. 128 x 128 might already be enough. If we render upto 6 billboard for the 360 billboards, we would be "wasting" 1,7 MB of video memory. For billboards of 256 x 256 this would be: 6,75 MB. These are still acceptable, and you don't have to update this imposters a lot. Only when the lighting changes, but you don't have to care about viewing angles anymore.

At least this seems the best solution to me,

Regards,
Kenzo
Quote:
Oblivion USES SpeedTree. soconne is correct, if you go to the developer mode you can see it happening.


I know it uses speedtree, why do you think people are making the comparison between the two? I can tell you one of the first things i did in oblivion was run around the tree in a circle to see how the imposters changed (my tree distance was set close, and my settings on low). I can tell you for a fact that the tree billboard never changed as I ran around it. It simply rotated with the camera with no changes. Your just gonna have to live with knowing that on low settings, speedtree/oblivion doesnt use imposters. Maybe youve never ran these on low settings before?

Im sure that on higher settings they would use imposters, since they have GPU to spare. So If your didnt catch it.. here it is again: Your both right - depending on what quality settings you use.

I would venture to say use non-imposter representations if possible. It will be obviously faster and gamers probably wont even notice if you blend between stages properly. You will also avoid the: "this game runs like a slideshow" because you do something that is barely noticable to the user and it will be easier to impliment. Also note, that this might be harder to do with palm trees, because they are often bent in a certain direction, while other trees are more symmetric and dont necessarily need the imposter approach, imo.
You gotta hand it to the guys at Crytek. They really did take the rendering of foliage to the next level. The only problem I really had with their vegetation is that it's too "clean" all the time :)

In any case, it's too bad that there isn't any access to their ideas. Something like a behind the scenes or something.

Of course, by the time we reach their level of work, they'll be far ahead hehe. They already made huge progress in realism with Crysis.
-----------------------------He moves in space with minimum waste and maximum joyGalactic Conflict demo reel -http://www.youtube.com/watch?v=hh8z5jdpfXY
Quote:Original post by voguemaster
You gotta hand it to the guys at Crytek. They really did take the rendering of foliage to the next level. The only problem I really had with their vegetation is that it's too "clean" all the time :)

In any case, it's too bad that there isn't any access to their ideas. Something like a behind the scenes or something.

Of course, by the time we reach their level of work, they'll be far ahead hehe. They already made huge progress in realism with Crysis.


Actually this Gamasutra article explains the method perfectly.
http://www.gamasutra.com/features/20060105/davis_01.shtml
Author Freeworld3Dhttp://www.freeworld3d.org
Quote:Original post by Anonymous Poster
Quote:
Even 30 degree interval billboards are a waste of memory.


Your right, what I mean to say is update the imposter in 30 degree intervals.

Quote:
I've been looking at the trees in SpeedTree demos and Oblivion, they both seem to have just a stock of common sprite images.


Speedtree and oblivion use a single generic texture for far away trees. It is not updated on the fly for the rotation, and is simply blended into a group of billboards at closer distances. I run oblivion on low settings and they definately do not render the trees as imposters (in the true sense). Set the tree distance close and run around the tree, nothing will update at any angle. Maybe on high settings it does render imposters, who knows because I cant run it on those settings.


Yes this is what I've been saying. I dont care about developers mode and whatever, Oblivon DOESNT render imposters, it just fades to a generic sprite for each tree type.

Try it. load Oblivion up and turn tree fade on lowest setting. You can see the sprite is the same for each tree type, and is never updated or changed.
Quote:Original post by Matt Aufderheide
Quote:Original post by Anonymous Poster
Quote:
Even 30 degree interval billboards are a waste of memory.


Your right, what I mean to say is update the imposter in 30 degree intervals.

Quote:
I've been looking at the trees in SpeedTree demos and Oblivion, they both seem to have just a stock of common sprite images.


Speedtree and oblivion use a single generic texture for far away trees. It is not updated on the fly for the rotation, and is simply blended into a group of billboards at closer distances. I run oblivion on low settings and they definately do not render the trees as imposters (in the true sense). Set the tree distance close and run around the tree, nothing will update at any angle. Maybe on high settings it does render imposters, who knows because I cant run it on those settings.


Yes this is what I've been saying. I dont care about developers mode and whatever, Oblivon DOESNT render imposters, it just fades to a generic sprite for each tree type.

Try it. load Oblivion up and turn tree fade on lowest setting. You can see the sprite is the same for each tree type, and is never updated or changed.


Well of COURSE it may not render actualy imposters on the LOWEST SETTING!!! Put it on normal or high and it will.

This topic is closed to new replies.

Advertisement