<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=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@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;}
@font-face
        {font-family:"Comic Sans MS";
        panose-1:3 15 7 2 3 3 2 2 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";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Comic Sans MS";
        color:windowtext;
        font-weight:normal;
        font-style:normal;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Comic Sans MS";
        color:windowtext;
        font-weight:normal;
        font-style:normal;}
.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:8.0pt;font-family:"Comic Sans MS""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Comic Sans MS""><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-left:.5in"><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""> Basques, Bob (CI-StPaul)
<br>
<b>Sent:</b> Wednesday, December 18, 2013 11:04 AM<br>
<b>To:</b> 'PostGIS Users Discussion'<br>
<b>Subject:</b> RE: [postgis-users] Old question resurfacing<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">Rémi,<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">I’ve already played around with Cloud Compare, found it a few weeks ago during another research cycle.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">I think the first step is to get a chunk of data into Postgres to test live queries with.  I’ll focus on this in the near term, not going to happen immediately though, lot’s of other paid work in the way I’m afraid. 
 :c)<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">I know there are methods out there for draping “a” image on a surface, but when you try more than one image, then it becomes a problem.  We have all our data sources separated into separate overlays for display,
 being able to re-use these services for end user control of layer visibility will be an important need moving forward for us.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">Bobb<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:8.0pt;font-family:"Comic Sans MS""><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:8.0pt;font-family:"Comic Sans MS""><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in"><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"">
<a href="mailto:postgis-users-bounces@lists.osgeo.org">postgis-users-bounces@lists.osgeo.org</a> [<a href="mailto:postgis-users-bounces@lists.osgeo.org">mailto:postgis-users-bounces@lists.osgeo.org</a>]
<b>On Behalf Of </b>Rémi Cura<br>
<b>Sent:</b> Wednesday, December 18, 2013 10:48 AM<br>
<b>To:</b> PostGIS Users Discussion<br>
<b>Subject:</b> Re: [postgis-users] Old question resurfacing<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in"><o:p> </o:p></p>
<div>
<p class="MsoNormal" style="margin-left:1.0in">Hey,<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-left:1.0in">getting something similar to a surface visualization out of points without computing explicit surface is actively researched.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">Usually it's very easy for a graphic card (GC) to drape a texture over a geometry. It is its main purpose. I wouldn't worry too much about that (already done in WebGL). Of course it would be cool to get some color
 out of raster, maybe with postgis raster (I just began to test it, actually trying to do the inverse : create DEM from points).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">What you call average vector is the estimated normal vector of the point.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">It can be estimated with various methods and is required for almost everything (including display to get shadows or lighting effects very useful to better "understand" the surface for an human eye).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">If it's just for visualization, you can let the GC do the work. It is incredibly fast. (various "shaders" do it).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><br>
If you need normal for other computing (most algorithm use it), you may want to pre-compute.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">This can become tricky for 3 reasons : <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">_it is in fact a local surface interpolation. So, what surface do you choose, and how local is it (plan, sphere, polynom , fixed distance, fixed number of neighbors ...)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">_the computing always involve nearest neighbors. Needless to say you
<b>*have*</b> to use a LOD (for example, compute per patch, on small patch, or use an octree).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">_How to store it? You can do it in pointcloud of course but is is a little boring. A dirty workaround would be to store it as float[3][]. Usually in point cloud software it is stored like X,Y,Z and other attributes,
 something like n_x,n_y ... <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">If you want to play with point cloud and see various option to visualize with normal based lighting, and to compute normal with various parameters, a very good open source software is
<a href="http://www.danielgm.net/cc/">CloudCompare</a>. It is easy (like drag and drop point cloud file) and powerful.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">Cheers,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">Rémi-C<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><o:p> </o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><o:p> </o:p></p>
</div>
</div>
</body>
</html>