Difference between revisions of "XB PointStream"

From CDOT Wiki
Jump to: navigation, search
(Parser Interface)
Line 33: Line 33:
 
===Parser Interface===
 
===Parser Interface===
 
<pre>
 
<pre>
/*
+
/*
"onstart"
 
"onparse"
 
"onfinish"
 
   
 
 
@param {String} eventName
 
@param {String} eventName
@param {Function} func
+
can be "onstart", "onparse" or "onfinish"
 +
 
 +
@param {Function} func - the function to call when the event occurs
 
*/
 
*/
 
addEventListener(eventName, func)
 
addEventListener(eventName, func)
Line 58: Line 56:
  
 
/*
 
/*
 +
  @returns {Number} the number of points parsed so far by the parser
 
*/
 
*/
 
getNumParsedPoints()
 
getNumParsedPoints()
  
 
/*
 
/*
 +
  @returns {Number} the total number of points in the resource or -1 if unknown
 
*/
 
*/
 
getNumTotalPoints()
 
getNumTotalPoints()
Line 71: Line 71:
  
 
/*
 
/*
 +
  @returns {Number} the number of bytes of the resource
 
*/
 
*/
 
getFileSize()
 
getFileSize()

Revision as of 16:24, 23 November 2010

Releases

A cross-browser JavaScript tool which will emulate Arius3D's PointStream viewer. It will be able to quickly render a large amount of point cloud data to the <canvas> tag using WebGL.
XBPS 0.1
XBPS 0.2
XBPS 0.3
XBPS 0.4
XBPS 0.4.5 [Only Lib | Full]

XB PointStream Dev Links

3D Image Gallery
Blogs
Specifications
LightHouse
Github
Twitter
YouTube Videos

Development Resources

GPU Gems
GPU Gems 2

WebGL Specification
WebGL Cheat Sheet
OpenGLES 2.0 man pages

Occlusion Culling Algorithms


Parser Interface

/*  
@param {String} eventName
can be "onstart", "onparse" or "onfinish"

@param {Function} func - the function to call when the event occurs
*/
addEventListener(eventName, func)


/*
  @param {String} Path to resource
*/
load(path)


/*
  Returns the version of this parser
 
  @returns {String} parser version
*/
getVersion()

/*
  @returns {Number} the number of points parsed so far by the parser
*/
getNumParsedPoints()

/*
  @returns {Number} the total number of points in the resource or -1 if unknown
*/
getNumTotalPoints()

/*
  @returns {Number} value from 0 to 1
*/
getProgress()

/*
  @returns {Number} the number of bytes of the resource
*/
getFileSize()

Performance Issue Ideas

  • Spatially partition point cloud into Bounding volume hierarchy and do bounding volume frustum culling
  • Do static rendering
  • Render low LOD when rotating point cloud
  • Push as much as we can to CPU and GPU
  • Use progressive "mesh" optimization to render objects if they are far from the camera
  • Allow user to control LOD
  • Stream point cloud, dynamically create and merge bounding volumes
  • Pre-create Bounding volume hierarchy