[DotNet-OSGeo] 3D display (was RE: ... 2011 Sol Katz Award: Call
for Nominations)
Michael P. Gerlek
mpg at flaxen.com
Mon May 30 12:40:05 EDT 2011
Carsten:
I know this problem well... There are some applications out there that do
3D, but it really depends on what you need to do. Simple rendering/viewing?
Custom display controls? Integration with other geo tools and libraries?
You have a few options for doing your own 3D display on Windows, and again
it depends on what your needs are:
* DirectX / D3D
- DirectX/D3D is great, but is doesnt have .NET bindings, so you have
to code the engine in C++ and use interop from C#
- SlimDX is a really nice open source C# API that sits on top of the
DirectX C++ API, so using SlimDX you can skip the interop and code directly
in C#
- if you want to use WPF with DirectX underneath, you can use SlimDX as
well, although it takes some work to get the D3DImage class to behave (my
own SlimDXControl package is one solution for this problem)
* WPF or Silverlight
- this would be very appealing, but you can't represent points directly,
only polygons, so if you want to do raw point clouds this isn't an option;
also, if you're trying to do tens of thousands of vertices, it will start to
slow down
- the latest release of Silverlight has started to add 3D primitives, but
again you can't do points and you often can't scale into thousands of
objects
* XNA
- I know the least about this option; XNA is really designed as a game
API, and my quick look a couple years ago made me stay away because I didn't
have either the raw power of using DirectX directly or the flexibility of
actual UI framework like WPF/Silverlight
* OpenGL
- powerful and low-level, like DirectX, but also lacking a native C# API
- there are some C# bindings libraries out there, but I've no experience
with them
So, it comes down to these questions:
- do you want to program in C++, C#, or a mix?
- do you want a low-level library which supports points like
DirectX/OpenGL, or do you want a higher level polygonal framowork like WPF?
- do you want to jus trun on a Windows desktop, or do you want to be able
to port your engine to Windows Phone, Linux, etc?
-mpg
From: dotnet-bounces at lists.osgeo.org [mailto:dotnet-bounces at lists.osgeo.org]
On Behalf Of Carsten Troelsgaard
Sent: Monday, May 30, 2011 6:04 AM
To: dotnet at lists.osgeo.org
Subject: [DotNet-OSGeo] RE: [OSGeo-Discuss] 2011 Sol Katz Award: Call for
Nominations
Hi All
I joined the group a good month ago .. wondering how a tif-image could be
opened.
Mission accomplished.
My 3D effords has been set back with with advent of my new labtop, win7 &
64bit. The DirectX3D library I used to use, vanished. And the closest I
could get to DirectX3D was via the Microsoft Xna Framework. Is that the only
way, or am I missing something?
Anyway, I've managed to make a C# window that can juggle the 3D data that
has become available to me (aster dem distributed in the tif-format). It
took some time to make my own custom-vertex-format work (position, color,
normal), but it allows me to present 3D data as a 'model' of the reality not
to confuse with a graphic representation that aims at displaying data as it
might look (according to old geografic-book-coloring).
I downloaded uDig and had a look. My approach to this group is somewhat
along the lines of my first impression of uDig: 'yes, it is something like
that I want to make'. Except that geographic data should be looked at in 3D.
So, however impertinent of me not to look through all your projects for
myself ... does any of the projects use 3D?
Kindly Carsten Troelsgaard
I'm a bit hessitant in vounteering to localize your projects to Danish - I
havn't got much clue of how many lines we talk about, and expect some need
of understanding the projects themselves (to ie discern project
code-keywords that should not be translated etc). Pop me some info or a link
to where you work on the projects.
More information about the DotNet
mailing list