Jump to content
  • Advertisement
Sign in to follow this  
SilverSurfer

Can i voxelize 3d set of points without reconstructing surface first?

This topic is 608 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have huge point cloud data I want to render them at interactive frame frate. Process I know is 1.point cloud data 2.triangulate it using delnauy or other triangulation algo 3.surface voxelization for mesh 4.volume tracing ti render

But triangulation process is very very slow. Can I somehow voxelize my point cloud directly ?? I am newbie to voxelization.

Share this post


Link to post
Share on other sites
Advertisement
Why don't you render your points directly? Splatting points is very fast.
(You should be able to beat the graphics pipeline by implementing the splatting in a compute shader using atomics. http://media.lolrus.mediamolecule.com/AlexEvans_SIGGRAPH-2015-sml.pdf)

You need to create a tree from your points so you can use less points at the distance.
Creating such a tree is also very fast - much faster than voxelization and traceing the result.
https://devblogs.nvidia.com/parallelforall/thinking-parallel-part-iii-tree-construction-gpu/

Share this post


Link to post
Share on other sites
Splatting means just rasterizing points instead of triangles (e.g. using OpenGLs GL_POINTS).
The points are distributed densely over the surface and each has it's own color to avaid the need for textures.

There are many projects out there if you look for it (Open Source, Browser based etc.)

Probably the main issue is aliasing: Rotating the model will show front/back popping points because they need to overlap to make a closed surface - triangles don't have this issue.
But TAA might fix it enough to make it useable for games.


I'm not sure if it's good for your usecase. You'd need to tell us more of what you want to achieve.
Voxels always appear attractive because they are easy to implement, but they take more memory, bandwith and cycles.
Using a volume to encode just the surface of something means using 3D data for a case where 2D data would suffice.

Share this post


Link to post
Share on other sites
But triangulation process is very very slow. Can I somehow voxelize my point cloud directly ?? I am newbie to voxelization.

 

Considering that a voxel is a single point in space with a attached vector, then your point cloud is already voxels.

What you are describing is displaying voxels as a mesh, drawing triangles is the fastest.

 

A other way would be to draw a cube at each voxel point, the down side is, that this way the cubes won't be properly connected. However it will allow you to use instancing instead of batches/ chunks to render the cubes.

Edit:

I think JoeJ means you should do this:

https://threejs.org/examples/webgl_buffergeometry_points.html

It can take some time to load.

Edited by Scouting Ninja

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!