<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.&nbsp; The work I&#8217;ve done in the past, and the work you&#8217;re doing now, is all stuff that the DirectX &#8220;experts&#8221; have done a million times and we are just reinventing their wheel.&nbsp; Since I do mostly lidar these days, I&#8217;d love to make a solid, canonical open source library for 3D, but I&#8217;ve just not had the time/funding for it yet&#8230;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</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>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</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>&nbsp;</o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;<br>Hi Michael <br>Thanks for the informative response.<br>&nbsp;<br>&gt; 3D, but it really depends on what you need to do. Simple rendering/viewing?<br>&nbsp;<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&nbsp;compared to bitmap image data. The abillity to interact with it as a viewer (flyby and such) makes the perception of&nbsp;the&nbsp;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&nbsp;would be in the context of conveying subsurface geological visual&nbsp;presentations - but it has a low priority for now)&nbsp;&nbsp;&nbsp;<br><br>&gt; Custom display controls? Integration with other geo tools and libraries?<br>&gt; <br>&gt; You have a few options for doing your own 3D display on Windows, and again<br>&gt; it depends on what your needs are:<br>&gt; <br>&gt; * DirectX / D3D<br>&gt; <br>&gt; - DirectX/D3D is great, but is doesn&#8217;t have .NET bindings, so you have<br>&gt; 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&nbsp;something referred to as the &quot;Windows SDK&quot;. .. 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&nbsp;I've made&nbsp;small tools that produces one single .exe that simply works when copied from the pile of files that the Express IDE produces. <br>&nbsp;<br>&gt; - SlimDX is a really nice open source C# API that sits on top of the<br>&gt; DirectX C++ API, so using SlimDX you can skip the interop and code directly<br>&gt; 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>&nbsp;<br>&gt; - if you want to use WPF with DirectX underneath, you can use SlimDX as<br>&gt; well, although it takes some work to get the D3DImage class to behave (my<br>&gt; own SlimDXControl package is one solution for this problem)<br>&gt; <br>&gt; * WPF or Silverlight<br>&gt; <br>&gt; - this would be very appealing, but you can't represent points directly,<br>&gt; only polygons, so if you want to do raw point clouds this isn't an option;<br>&gt; also, if you're trying to do tens of thousands of vertices, it will start to<br>&gt; slow down<br>&gt; <br>&gt; - the latest release of Silverlight has started to add 3D primitives, but<br>&gt; again you can't do points and you often can't scale into thousands of<br>&gt; objects<br>&gt; <br>&gt; * XNA<br>&gt; <br>&gt; - I know the least about this option; XNA is really designed as a game<br>&gt; API, and my quick look a couple years ago made me stay away because I didn't<br>&gt; have either the raw power of using DirectX directly or the flexibility of<br>&gt; actual UI framework like WPF/Silverlight<br>&gt; <br>&gt; * OpenGL<br>&gt; <br>&gt; - powerful and low-level, like DirectX, but also lacking a native C# API<br>&gt; <br>&gt; - there are some C# bindings libraries out there, but I've no experience<br>&gt; with them<br>&gt; <br>&gt; <br>&gt; So, it comes down to these questions:<br>&gt; <br>&gt; - do you want to program in C++, C#, or a mix?<br>&nbsp;<br>I have an idea that I can make a 'lean an mean' C++ form&nbsp;as a basis, but&nbsp;I'm not done on pondering about the slow-down. I can display 700*700 vertices with an annoying slow performance; and 800*800&nbsp;will not be accepted. I think that I use the 'fixed pipeline' as I cannot make the code for multiple vertex-lists work.&nbsp;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>&nbsp;<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>&nbsp;<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&nbsp;the subset&nbsp;out, but it's been much like making a form in C# with a different&nbsp;sort of code in the Paint-event&nbsp;(it IS a C# form).&nbsp;&nbsp;&nbsp;<br><br>&gt; - do you want a low-level library which supports points like<br>&gt; DirectX/OpenGL, or do you want a higher level polygonal framowork like WPF?<br>&gt; - do you want to jus trun on a Windows desktop, or do you want to be able<br>&gt; 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>&nbsp;<br>Michael, I don't hope that I have abused your attention.<br>&nbsp;<br>Carsten<o:p></o:p></span></p></div></div></body></html>