Just my 2 cents. I'm mainly talking from the perspective of importing user data into Outerra. Rivers and roads
as shapefile import would be necessary for users who are importing their own data into Outerra since all
terrain data has to be georeffed. Shapefile would be ideal but it might be possible with either a raster to vector converter in Outerra importer or using something like .svg or .ai. Having said that you don't get per vertex z for svg or ai (they can't vary individually), so, unless Outerra will convert and then automatically generate the z values from the underlying terrain surface, they won't be usable. But, considering Outera's use as a simulator and all of the wealth of mapping data out there, and the potential commercial interest from GIS oriented developers, shp is really a no brainer. Once you have that, the world is your Oysterra.
Dxf might be useful too.
I reckon support of shp, and then the addition of an auto creation of z values by Outerra from underlying
terrain would be a great start. Not all river data has z values set. In Global Mapper for eg, you can transfer
z values from the underlying terrain into the shp file. In World Machine terrain generator, there is a "drop to
surface" feature, which drops the vector spline to the underlying terrain surface- essentially doing the same
thing. You can then go on to edit the profile so that you can drop the river just below the terrain to create a
valley or cutting. The profile editor though is difficult for lots of rivers, but the drop to surface is very handy. Another feature World Machine has is to auto interpolate z values between vertices set by the user, so that just by setting the end points, you can get a linear interpolation along the path. That's not always going to produce good results obviously but it's useful to have and trivial to implement.
One thing which might improve World Machine is the ability to effect the surrounding terrain from the river z
values. World Construction Set (which I have a license for) and VNS have things called terraffectors which are
pretty cool. Basically you have total control over the profile of the "terra affector" (road, river, lake ,etc,
I've even seen a glacier done with them) in 3D and depending on what the terraffector type is, the software
procedurally creates the desired transitions around them, including texturing, That sounds very similar
what you're saying Brano.
If you could lower the surrounding terrain from the river z values so that the river was always below the
terrain (or rather never above it) that might be useful. But again, that creates potential problems- but it might solve more than it creates?, hard to say. World Machine does not have the feature to vary vector width
over length though.
I've recently looked into making rivers more realistic in the ME-DEM terrain, I can see how having different
vector primitives for rivers and large rivers would be a good idea. You need to be able to vary the width of
the river over its length for the larger rivers. One you have that, you could procedurally affect the shores
and hinterland from the primitive. I'm using Photoshop to manually alter river widths for the larger ones to
create estuaries, valleys, etc. It's not an ideal way to do it simply because of the scales you're working at-
getting a gradual transition from 1 pixel width to a couple fo hundred over say 30K pixels is
...a bit of
nightmare. Illustrator can vary width over length but I'm not sure that approach is significantly better- it
involves control points. Fiddling with lots of those would probably be more accurate yes, but much less efficient than just painting them as rasters. I've not tried it in Illustrator though- only read about it. I'd be much more inclined to do that sort of thing in Global Mapper and just draw the river area as polygons. All our river estuary coverage goes back into Global Mapper as vectors via raster to vector conversion.
Raster to vector is a very useful tool to have- I've got it in a couple of apps I use (Global Mapper and
WinTopo, and it can be used for creating area polygons for the wider rivers. I don't know what coding something like that would involve though.
I would prefer it if we could vary the river width by entering width values for the end vertices and then just
procedurally interpolate (linear, power curve or whatever functions for variety) the width to create an area
polygon.
monks