• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

3D Grass

Messages
33
If this belongs in a different section then by all means, transfer it there.

Hi guys, I'm very interested in creating 3D grass with dynamic lighting and shadows for FSX. I've never done any development work before so I don't know where to even begin but I don't expect to finish this over night. I have found some impressive work done in this regard that works incredibly well with very user friendly frame rates with incredible details shown so I know it's possible. I'm not sure about whether it's possible to integrate such a thing into FSX though, because as I said, I've not done any development work before and integrating 3rd party addons into a program such as FSX is a complete mystery to me. We all know that FSX is very CPU intensive, so that means that there is a logical improvement left in the way of beefing up its demand on GPU and what better way to do this than by creating some ridiculously awesome looking grass and then later, perhaps trees.

The fact that I don't know where to begin, means that I don't even know if a question such as... what programs would I need? is moot or not. Obviously I will need some sort of image processing program such as photoshop? or something similar. But before we get into any of this... I need to understand how this would actually be implemented, what sort of files i'm looking at creating and working with i.e. formats etc etc... basically there's a lot of unknowns here.

http://www.kevinboulanger.net/grass.html

That website shows what can be done. I've read a few of his papers that outline exactly how to do it. Although I don't understand a lot of the very heavy jargon e.g. anti-aliasing i.e. how it works exactly for example. I know its effects but how it works is a bit of a mystery.

Anyway, the fact of the matter is that I want to make this happen and the question is how? I know it's a difficult task so I'm going to need a lot of help, but I think if I get this thing off the ground, the effect of replacing the Image Based Rendering with these 3D objects would quite obviously be mindblowing and definitely worth it.

Forgot to mention that I'm definitely going to use LOD for all of this as Kevin has done in his work.
 
Last edited:
Hi,

That looks impressive indeed, although I am not sure if you should get that close to the grass with your cockpit :).

I don't think it is possible to integrate this kind of techniques into FSX, since that would require you to change parts of the scenery engine itself and we do not have access to that.

So with the techniques available through the FSX SDK I doubt you get further than making polygons to represent the grass with a nice texture.
 
Hmm... that's very dishartening to say the least :(. I'm guessing making 3D trees is out of the question for the same reason? How exactly does the SDK prevent us from doing something similar to what I proposed? Also, how does REX seem to make such changes in graphics with these limitations in place?

EDIT: Also, is it perhaps possible to do what I propse in an inefficient way? i.e. the fact that the standard FSX environment is flat, is it possible to create an external graphics engine and render on top of the standard FSX ground scenery? I've seen an flight simulator community member create a tool that enables you to select the density of autogen not only for both houses and trees but also to differentiate the two i.e. you could set the trees to dense and the houses to sparse or example. So I'm thinking, maybe its possible to use this to get rid of the standard FSX trees and then chuck in the improved 3D ones? Or something along these lines.
 
Last edited:
You could certainly do a lot to improve the autogen trees, in fact there is plenty of info in the SDK on creating your own autogen. Part of the problem with the grass is that FSX just doesn't really have the proper rendering options which are used in other applications. For instance, you can use bump-maps, but the effect is quite simple compared to other renderers. You couldn't even get a realistically bump-mapped grass, because FSX only really uses a subset of the required lighting techniques -- the best you'd get is a plastic-looking grass.

There was talk about 3D trees in the early days of FSX development, and I recall seeing a demo showing trees which waved in the wind. There's no reason why you couldn't do that, but bear in mind that there's a reason why the default trees are very basic planes -- and it is all to do with performance. Just as a matter of interest, I've had a look at a demo 3D low-poly tree model available on the web, and it is 378 polys. A default autogen tree might be 8 at the most, which would mean about 50 times the rendering power for 3D trees. Considering the number of trees in some areas, even with LODs this would be a major performance drain. I'm not saying it couldn't be done, but 'normal' systems wouldn't get the benefit.

The addons you mention tend to make major changes to the default textures, but how those textures are implemented remains the same. Larger, more photographic textures will always give better results, but again with a drain on performance.
 
The rendering you saw in the link that I provided, was done on an nVidia 7800GTS I believe. I'm sure that the current video cards can do what FSX demands and what what I propose, without too much of a problem, but quite obviously this isn't aimed at an average computer. I know FSX doesn't take advantage of SLI, but would it be possible to somehow make it work?

What about the last idea that I mentioned, of creating an externally run graphics engine and create some sort of external autogen placement tool or something like that?

EDIT: And by plastic do you mean something along the lines of the plant seen on the left?

http://gallery.techarena.in/data/1/Far_Cry.jpg
 
Last edited:
I think to make sense of this discussion we need to understand what techniques you're link is talking about depends on the rendering machine. Compare that to the rendering capability of fsx. Leave it there.

Then, within the ability of fsx to render, give it your best. You'll know right away if performance pernalty is prohibitive.

I suspect the discussion is moot, as I suspect the rendering you are hoping for will be unsupported, but I'd love to be wrong.

Bob
 
As an exercise, I've just added the 378-poly tree model I found to FSX. I used LODs of 300 and 200, 200 being a crossed plane. I added 20 trees, but because of the LODs probably only 10 were full 3D trees at any one time. This certainly cut my FPS by a significant amount.
However by being a bit tougher with LODs, it could be possible to have a handful of trees in 3D.

And by plastic do you mean something along the lines of the plant seen on the left?

Yes, but imagine it a lot flatter, and applied to EVERY plant, not just the shiny ones...
EDIT: I actually find the Far Cry screenshot a bit too arcadey for FS.
 
I'm on a completely different level to you guys, so I'm going to go and read up on rendering and see exactly what it is. The main thing I don't quite understand is how FSX basic trees can look more or less correct, whilst what I want to do will look ridiculous?

But for now, let me get this straight, with the close up geomteric rendering, we will be using 3D 378 polygon type (or other polygon count) trees? If so, I can't say that the parallax effect on these trees is fantastic. (what video card are you using for your test?) Also is volume rendering what FSX uses currently? And yes I agree, the Far Cry screenshot is way too arcady.

How many polygons do you think the trees are in the video from the link that I posted and how come quite a few trees are being rendered with very decent frame rates? Or is this more dependent on the actual rendering technique?

But I'm starting to realise that if it could have been done, it would have been done.

P.S. As I said, I'm going to have to read up on the rendering types and try to figure out exactly why the best outcome possible for what I'm trying to do in FSX is not going to happen.
 
Last edited:
I must admit I'd certainly like you to succeed here, but you will need to work within the feature-set of FSX.

The main difference between FSX and the rendered video your link pointed to, is that the scene-rendering in the video is custom-built to do just one job. FSX is built to be first and foremost a flight simulator, so most of the processing power goes into simulating a huge number of systems -- aircraft, aeronautics, weather, scenery etc -- and there isn't really enough left to add processor-intensive features.

Plus FSX uses only a tiny sub-set of today's graphic rendering techniques. It is very much stuck with 10-year-old technology to maintain compatibility. Your question about the video card is irrelevant really, as FSX is very processor-dependent, and certainly doesn't benefit from many of the features of modern graphics cards.

I've been thinking about your 3D grass, but only in the confines of what FSX can do now. Locally, it could work, in that you could probably allow a few thousand polygons in the immediate vicinity of your aircraft, but I can't really think of any way to make this effect global, or even at a larger scale than a small airfield. The only way I can think of it working is by using LODs, but these can really only be done using scenery objects. A smooth transition to realistic flat textures may be possible, but nothing like the effect in the video. The LOD-popping which happen is first-person shooters such as Far Cry just isn't really acceptable in FS. Sure, it can add to the tension in a FPS -- it can get quite stressful figuring out whether the object which has just appeared in front on you is an enemy or just a late LOD:) -- but FS folk like nice stable scenery.

I'm always very wary of comparing FS with FPS, in that no matter how large the map appears to be in the FPS it is always tiny compared to FS, which models the whole world. FPS always use tricks to limit rendering distance, so the mountains in the distance are normally painted on -- in FS all the mountains you see in the distance are there because they are being rendered as 3D terrain.

It is really a matter of scale -- improvements in the FS engine and computer systems mean that we can model smaller and smaller elements, but I don't think we'll get to render stuff as small as a blade of grass for a while:)
 
I read about the rendering techniques and I've got a better grasp on this whole topic and now sort of see how the graphics engine is limiting in this regard.

I don't think that the video that I linked, of 3D grass and trees has a global 3D environment, it depends purely on the distance from the camera i.e. uses LOD (perhaps you are already aware of this and were talking about something else entirely, in which case, disregard). As with AI aircraft that are far away, I understand that there is no point rendering the 1000 polygon object if it's only 2 pixels in size. For the same reason, I want to get as close to being able to create high polygon count trees and grass, to optimal efficiency i.e. without wasting processing power on rendering high polygon count objects that are tiny but at the same time, ensuring that maximum detail is achieved (with 20fps being the absolute minimum in highly demanding environments) at close distances (perhaps not even grass as it's pretty small from the cockpit, so maybe just use volumetric rendering for grass close ups and concentrate on trees as that is the main area that in my opinion kills the quality of the scenery)
 
As I said earlier, the facility is there to add your own 'autogen', and I guess it would be simple enough to edit all the default texture autogen to replace the trees. I don't know if custom autogen allows LODs, but that's something you can easily figure out.
(with 20fps being the absolute minimum in highly demanding environments)

I can't get FSX at medium-high settings to work faster than 15FPS at the moment, so I don't think I'll be able to use your 3D trees:)
 
My FSX is currently lucky to get UP to 15 fps :P but a computer upgrade is imminent, just waiting on new generation parts to come out so I can get a mean machine under a poor mans budget!

I'll keep looking into this topic. First things first, I need to install the SDK package and have a poke around, but I'm definitely gaining a much better picture of how all this stuff works and how it's implemented in FSX.
 
toprob: Custom Autogen LOD switching works like a charm, at least in FS9. I've done it with some rocks, with 3 LODs... the closest one had ~400 polys, and it would kick in at around 20 meters, and the farthest one had not more than 10 polys.

You've mentioned in one of the above replies something about bump-mapping - I understood from it that you're able to apply bump mapping to GROUND SCENERY TILES... is that correct? I know you can use bump maps on 3D model textures, but can you use them on ground textures?

Atomic Sheep: I am not sure if you took a good look at the trees in FSX... you mentioned in one of the posts that they look quite good... If you take a closer look, they actually look awful... They are simply 2 polys, crossed in a + shape (from above). That is quite adequate for FlightSim, where you'd see them mostly from head on, but you're right, a nice, high poly tree for a very localised scenery (say, a small airfield) would be great to have.

I've actually thought of trying a different approach to the + configuration: Instead, a round texture in an fx effect, in a "cluster" that would make up a tree shape... sort of like a mmolecule, or a cluster of grapes. The round texture in an fx can be configured to always face you, so that it would always look as if it had a volume (a sphere). With some carefully painted textures, it would be possible to create a believable tree.

Misho
 
Last edited:
MIsho, I thought coding objects to always face you in fsx had been broken. We used to do that in fs9, but not in fsx, to my memory.

Bob
 
Possibly - but I am talking about something very different: an EFFECT, as in myeffect.fx, in the Effects folder. I know for a fact that a 2-d texture can be made to always face you. You can design a trunk, and then attach a whole bunch of sprites that are coded to face you. I've done it before, for street lighting - 3D pole with a glow effect where the bulb is that always faces you.

Misho
 
I will experiment on it, but it should be fairly straight forward. Here's an attachement of what I am thinking. Remember, those "clumps" in the illustration can be arranged in 3D, in a cone-shaped cluster (or whatever shape you want) AND they can be scaled. You can throw in a few variations of the clump in the same texture map, for variety, and presto - a nice tree.
 

Attachments

  • 3DFXTree.jpg
    3DFXTree.jpg
    97.4 KB · Views: 801
Last edited:
Hi,

You've mentioned in one of the above replies something about bump-mapping - I understood from it that you're able to apply bump mapping to GROUND SCENERY TILES... is that correct? I know you can use bump maps on 3D model textures, but can you use them on ground textures?

Not really. The default BGLComp XML aprons and taxiways use bumpmaps and you can use them on objects made with the FSX gamepack. But since you can not make proper ground polygons with that, it means no bumpmaps on custom ground polygons.
 
As a matter of interest, how do the ground-plane objects work in FSX, such as the helipads? They can just be added as scenery objects, and they have a library which looks like all the others. What makes them sit on the ground without flickering? There's also the 'GEN_Chalk_Line', and a few other objects which behave this way. Obviously they are FSX materials, as they are bump-mapped.
 
Thanks Arno. I was kind of hoping that the files in the Scenery/World/Texture ("031b2su8.bmp" variety) would be able to use them if bump maps were supplied. They are DXT1 type, while DDS textures are DXT5 type... Am I totally off the rocker if I try to save the 031b2su8.bmp as a DXT5 type, and supply a bump version for it? No chance? :o
 
Back
Top