<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>For a year now, I have had a dream of making a really slick DirectX-based 3D viewing engine for geo applications. The work I’ve done in the past, and the work you’re doing now, is all stuff that the DirectX “experts” have done a million times and we are just reinventing their wheel. Since I do mostly lidar these days, I’d love to make a solid, canonical open source library for 3D, but I’ve just not had the time/funding for it yet…<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>-mpg<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> dotnet-bounces@lists.osgeo.org [mailto:dotnet-bounces@lists.osgeo.org] <b>On Behalf Of </b>Carsten Troelsgaard<br><b>Sent:</b> Monday, May 30, 2011 1:45 PM<br><b>To:</b> dotnet@lists.osgeo.org<br><b>Subject:</b> [DotNet-OSGeo] RE: 3D display<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> <br>Hi Michael <br>Thanks for the informative response.<br> <br>> 3D, but it really depends on what you need to do. Simple rendering/viewing?<br> <br>Yes, I think that it comes down to this. Making a crude topography appear on the screen is a good start for getting to work on a lot of topics that relates to the topography. I admit that I'm hooked on delicious appearances, But .. as for transferring data through the net, vectors as in a topologic grid, passes a lot of info pr bit compared to bitmap image data. The abillity to interact with it as a viewer (flyby and such) makes the perception of the topological data unsurpasable by other media. <br>As a geologist of education, I have a watchfull eye on the posibillities of displaying subsurface geology, but I would probably run short of proper data to use. (If I should get involved in bitmap-texturing it would be in the context of conveying subsurface geological visual presentations - but it has a low priority for now) <br><br>> Custom display controls? Integration with other geo tools and libraries?<br>> <br>> You have a few options for doing your own 3D display on Windows, and again<br>> it depends on what your needs are:<br>> <br>> * DirectX / D3D<br>> <br>> - DirectX/D3D is great, but is doesn’t have .NET bindings, so you have<br>> to code the engine in C++ and use interop from C#<br><br>I use the Visual Studio Express. It has a C++ IDE. Yes .. I would still miss DirectX3D in that editor. I think that I tried to do an integration of this editor with something referred to as the "Windows SDK". .. it usually leads to a plain new reinstall of the Express tools .. The MSDN library on the Windows SDK has all the stuff about DirectX3D that I spent a little year of learning and would like to stick to becourse of that. Leaving the net-framework may mean that I'll have to learn how to deploy ... so far I've made small tools that produces one single .exe that simply works when copied from the pile of files that the Express IDE produces. <br> <br>> - SlimDX is a really nice open source C# API that sits on top of the<br>> DirectX C++ API, so using SlimDX you can skip the interop and code directly<br>> in C#<br><br>Either way I do it, I'll have to come to terms with the fact, that I won't get anywhere without dependancies .. being it directX3D, Xna or OpenGL. <br> <br>> - if you want to use WPF with DirectX underneath, you can use SlimDX as<br>> well, although it takes some work to get the D3DImage class to behave (my<br>> own SlimDXControl package is one solution for this problem)<br>> <br>> * WPF or Silverlight<br>> <br>> - this would be very appealing, but you can't represent points directly,<br>> only polygons, so if you want to do raw point clouds this isn't an option;<br>> also, if you're trying to do tens of thousands of vertices, it will start to<br>> slow down<br>> <br>> - the latest release of Silverlight has started to add 3D primitives, but<br>> again you can't do points and you often can't scale into thousands of<br>> objects<br>> <br>> * XNA<br>> <br>> - I know the least about this option; XNA is really designed as a game<br>> API, and my quick look a couple years ago made me stay away because I didn't<br>> have either the raw power of using DirectX directly or the flexibility of<br>> actual UI framework like WPF/Silverlight<br>> <br>> * OpenGL<br>> <br>> - powerful and low-level, like DirectX, but also lacking a native C# API<br>> <br>> - there are some C# bindings libraries out there, but I've no experience<br>> with them<br>> <br>> <br>> So, it comes down to these questions:<br>> <br>> - do you want to program in C++, C#, or a mix?<br> <br>I have an idea that I can make a 'lean an mean' C++ form as a basis, but I'm not done on pondering about the slow-down. I can display 700*700 vertices with an annoying slow performance; and 800*800 will not be accepted. I think that I use the 'fixed pipeline' as I cannot make the code for multiple vertex-lists work. The vertices are turned into triangles .. that would be 100.000 triangles .. far less than I anticipated though it's plenty enough to have a decent look. There are different approaches to deal with these issues. <br> <br><a href="http://cid-382e99b169b58267.photos.live.com/self.aspx/Billeder/ng%5E_2.jpg">http://cid-382e99b169b58267.photos.live.com/self.aspx/Billeder/ng%5E_2.jpg</a><br> <br>I'm getting the hang of C#. There's no intelli-sense so I have all the reason I need to be slow. The coding that lies behind the image above uses the parts of DirectX3D that I know .. most of the Xna stuff is one big haystack that hangs together, so it's been difficult to sort the subset out, but it's been much like making a form in C# with a different sort of code in the Paint-event (it IS a C# form). <br><br>> - do you want a low-level library which supports points like<br>> DirectX/OpenGL, or do you want a higher level polygonal framowork like WPF?<br>> - do you want to jus trun on a Windows desktop, or do you want to be able<br>> to port your engine to Windows Phone, Linux, etc?<br><br>There won't be any WPF and I prefer a proper screen for display, so desktop it is. I had some issues with Silverlight, so it's out too.<br> <br>Michael, I don't hope that I have abused your attention.<br> <br>Carsten<o:p></o:p></span></p></div></div></body></html>