[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgis-users
Subject:    [postgis-users] FW:  Old question resurfacing
From:       "Basques, Bob (CI-StPaul)" <bob.basques () ci ! stpaul ! mn ! us>
Date:       2013-12-18 17:06:02
Message-ID: C9CEA89772DA74488B5A5B6EB17DC4810673EF84 () 055-CH1MPN1-003 ! 055d ! mgd ! msft ! net
[Download RAW message or body]

[Attachment #2 (text/plain)]



From: Basques, Bob (CI-StPaul)
Sent: Wednesday, December 18, 2013 11:04 AM
To: 'PostGIS Users Discussion'
Subject: RE: [postgis-users] Old question resurfacing

Rémi,

I've already played around with Cloud Compare, found it a few weeks ago during \
another research cycle.

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)

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.

Bobb



From: postgis-users-bounces@lists.osgeo.org<mailto:postgis-users-bounces@lists.osgeo.org> \
                [mailto:postgis-users-bounces@lists.osgeo.org] On Behalf Of Rémi \
                Cura
Sent: Wednesday, December 18, 2013 10:48 AM
To: PostGIS Users Discussion
Subject: Re: [postgis-users] Old question resurfacing

Hey,
getting something similar to a surface visualization out of points without computing \
explicit surface is actively researched.

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).

What you call average vector is the estimated normal vector of the point.
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).

If it's just for visualization, you can let the GC do the work. It is incredibly \
fast. (various "shaders" do it).

If you need normal for other computing (most algorithm use it), you may want to \
pre-compute. This can become tricky for 3 reasons :
_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 ...) \
_the computing always involve nearest neighbors. Needless to say you *have* to use a \
LOD (for example, compute per patch, on small patch, or use an octree). _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 ...

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 CloudCompare<http://www.danielgm.net/cc/>. It is easy (like drag \
and drop point cloud file) and powerful.

Cheers,
Rémi-C


[Attachment #3 (text/html)]

<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:&quot;Comic Sans \
MS&quot;"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><span \
style="font-size:8.0pt;font-family:&quot;Comic Sans \
MS&quot;"><o:p>&nbsp;</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:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span \
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> \
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>&nbsp;</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>&nbsp;</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>&nbsp;</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.&nbsp; 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.&nbsp;  :c)<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p>&nbsp;</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.&nbsp; 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>&nbsp;</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>&nbsp;</o:p></p> <p class="MsoNormal" \
style="margin-left:.5in"><span style="font-size:8.0pt;font-family:&quot;Comic Sans \
MS&quot;"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal" \
style="margin-left:.5in"><span style="font-size:8.0pt;font-family:&quot;Comic Sans \
MS&quot;"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal" \
style="margin-left:1.0in"><b><span \
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span \
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> <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>&nbsp;</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>&nbsp;</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>&nbsp;</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 &quot;understand&quot; the surface for an \
human eye).<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><o:p>&nbsp;</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 &quot;shaders&quot; 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 \
:&nbsp;<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 ...&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><o:p>&nbsp;</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>&nbsp;</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>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><o:p>&nbsp;</o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in"><o:p>&nbsp;</o:p></p>
</div>
</div>
</body>
</html>



_______________________________________________
postgis-users mailing list
postgis-users@lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
--===============0735805733070675319==--

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic