Voxel_FastConverter is absent in OCC 7.4

EugeneZ's picture

Hello Team,
It looks like FastConverter for Voxels is not distributed with version 7.4 of OCC.
What library I could use for generating voxels from shapes ? I found some vtkVoxel library. Is that what I am searching for ?

Thanks.
With respects, Eugene.

EugeneZ's picture

Starting from version 7.0

Starting from version 7.0 TKVoxel library is dropped.

From release note of Open CASCADE 7.0 :

"Summary: Drop TKVoxel toolkit.
All functionality related to voxels and provided by TKVoxel toolkit has been removed as
obsolete by design and data structure definitions. A similar functionality can be provided
by the algorithms based on Volume Rendering."

What is exact library name of "Volume Rendering" ?

kgv's picture

Volume Renderer is a

Volume Renderer is a component for rendering CT scans and similar voxel data:
https://www.opencascade.com/content/volume-rendering-3d-vizualization-ma...

EugeneZ's picture

Okey, thank you. But for

Okey, thank you. But for programming this infirmation is useless, sorry.

kgv's picture

I didn't meant to answer the

Well, I didn't meant to answer the whole question - only the part related to "What is exact library name of "Volume Rendering" ;).

I'm not familiar to vtkVoxel, so cannot say how to use it.

Making voxels from shapes (basically - from triangulation) is a one question, but more important question is what you will do with these voxels? This question would define what kind of voxelization you need - binary voxels, SDF (signed distance field), mapping some quantities to voxels (FEA/FEM), etc.

Concerning removed component from OCCT - it was focused on visualization of voxel data using a legacy (not very fast and flexible) approach, and in addition to this it defined some data structures as well as a voxelization of triangulated shapes. You still can take this component from previous version of OCCT and use it in the project, if you like - although I don't know if it is of any use for your particular task.

EugeneZ's picture

Thanks a lot for an

Thanks a lot for an answer.
My target is to reduce geometry weight. Of course, first approach is simplify the triangulation, but the second approach is to substitute set of very small geometry pieces of geometry by, for example, plane. I see the way to achieve it - the voxelisation. Reduce "resolution" of geometry.

kgv's picture

Do you mean you would like to

Do you mean you would like to voxelize a geometry and then reconstruct it back to triangles using algorithms like Marching Cubes, or you can use voxels directly somehow?

EugeneZ's picture

Reconstructing somehow to get

Reconstructing somehow to get union triangulation or approximation of union.
I will not use voxelisation result as final.

Thanks a lot.

With respects, Eugene.

kgv's picture

I'm curious, which types of

I'm curious, which types of mesh simplifications you have already tried.
In VTK there are vtkDecimatePro, vtkQuadricDecimation and vtkQuadricClustering.
The latter one is, by the way, does clustering, which has an effect close to voxelization.

EugeneZ's picture

Hello, sorry, I do not know

Hello, sorry, I do not know your name.
Thank you for your help.

I will try to explain my why do I condsider the Voxelisation.

You proposed me vtkQuadricClustering, but I see from description - it makes only remesh. So, it cannot unite separate shapes, but can only remesh every shape from set of shapes. My way is not simply remeshing, but unite small geometries to some big an less detailed geometry.

With respects, Eugene.

EugeneZ's picture

Hello Team, Lets close the

Hello Team,
Lets close the topic.
I tried to use voxelisation from VTK library, but as for this library is designed in a strange way.
So I implemented my own voxelisation library.

Thank to all, who answered me here!

With respects, Eugene.

www.opencascade.com

Copyright 2011-2019
OPEN CASCADE SAS
Contact us