[DotNet-OSGeo] RE: 3D display
Harold Dunsford
hadunsford at gmail.com
Wed Jun 1 16:28:18 EDT 2011
Yes. I have also found that trying to make 3D systems behave like
cartographic systems is not very rewarding. Performance wise, it works much
faster with simply defined colored vertices as points, rather than using
textured billboards. If the billboards are allowed to have geographic
scaling, that is they get larger when you zoom in, then performance is
usually ok, but you have 6 vertices for each point. The same texture can be
reused, so mostly you are looking at memory bloat from the additional
vertices. If, on the other hand, you simply want the fancy symbol to remain
about the same pixel size, you are talking about rebuilding the vertex model
each time the user zooms in or out. This is computationally expensive and
impractically slow for larger numbers of points. Completely nonviable for
point clouds. However, you could always use simple vertices until you zoom
into a certain point, and then for a small number use the billboard
strategy.
If you are creating your triangles from a terrain map, then yes, we have
done draping and it works pretty well. The recommendation I have in the
draping case is to give up on the notion that the point symbol should have
about the same pixel size continuously as you zoom in and out. That way,
you only create one texture and then you can zoom in, zoom out, rotate and
everything else using very fast GPU operations. When you zoom in close
enough the texture becomes pixelated, so you might want different models for
different scales like we talked about before. Once you zoom in past a
certain point, you swap out your low-res vertex/texture for a higher
definition model that is only for a small region. Building the model took
some time for us, but only because we were creating it directly from
shapefiles. In reality you would want to pre-construct the models
(vertex/texture pairings) and save them using DirectX formats so that
everything would work quickly while you are running things. In practice,
people want to be able to change the vector content, so you might want to
just stick with simple colored vertex points and lines.
Ted
On Wed, Jun 1, 2011 at 12:28 PM, Michael P. Gerlek <mpg at flaxen.com> wrote:
> > Not that it matters, but wouldn't a point .. presumably painted as a
> small
> square .. always face toward the screen, where
> > two triangles representing a square has 'proper' facing and culling.
>
> Yeah, I looked into that idea too some time ago, when I was trying to use
> WPF/Silverlight directly to render a point cloud. The technique is called
> "billboarding", and it is a horrible way to render points... It bloats
> your
> point budget, and the appearance is really bad at various scales. Using
> the
> GPU's native notion of a point is *much* better.
>
> -mpg
>
>
> _______________________________________________
> DotNet mailing list
> DotNet at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/dotnet
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/dotnet/attachments/20110601/c1b55fa3/attachment.html
More information about the DotNet
mailing list