| Volumes Of Fun http://www.volumesoffun.com/phpBB3/ |
|
| 3D surface reconstruction for volumetric voxel data http://www.volumesoffun.com/phpBB3/viewtopic.php?f=2&t=11 |
Page 7 of 7 |
| Author: | David Williams [ Sun Mar 22, 2009 11:18 pm ] |
| Post subject: | Re: 3D surface reconstruction for volumetric voxel data |
Are you sure about this? In my OpenGL example (and also in Thermite) world space and volume space are the same thing. The volume never moves - it also always goes from (0,0,0) to (256,256,256) or however big the volume is. When rendering, the GL_MODELVIEW_MATRIX is set so that the volume appears in the center of the window, but I haven't actually changed the position of any vertices. Hence it should still be possible to perform collision detection against the world space / volume space positions. |
|
| Author: | Gajananan [ Mon Mar 23, 2009 5:28 pm ] |
| Post subject: | Re: 3D surface reconstruction for volumetric voxel data |
Quote: Are you sure about this? In my OpenGL example (and also in Thermite) world space and volume space are the same thing. The volume never moves - it also always goes from (0,0,0) to (256,256,256) Yes . you are correct :The volume never moves. Quote: or however bight eh volume is. I don't understand what you mentioned here! Quote: When rendering, the GL_MODELVIEW_MATRIX is set so that the volume appears in the center of the window, but I haven't actually changed the position of any vertices. Hence it should still be possible to perform collision detection against the world space / volume space positions. Yeah it possible to do the collision , we should use matrix from GL_MODELVIEW_MATRIX.! |
|
| Author: | David Williams [ Mon Mar 23, 2009 6:51 pm ] |
| Post subject: | Re: 3D surface reconstruction for volumetric voxel data |
Gajananan wrote: Quote: or however bight eh volume is. I don't understand what you mentioned here! Sorry, I was typing too fast Gajananan wrote: Quote: When rendering, the GL_MODELVIEW_MATRIX is set so that the volume appears in the center of the window, but I haven't actually changed the position of any vertices. Hence it should still be possible to perform collision detection against the world space / volume space positions. Yeah it possible to do the collision , we should use matrix from GL_MODELVIEW_MATRIX.! But if your volume never moves then why do you have to use this matrix? The volume is already in world space and this should be where you are doing your collision detection. The GL_MODELVIEW_MATRIX is only used for rendering and shouldn't be related to collision detection. It's great you have a solution that works, but I'm just wondering if you are doing things in a more complex way than necessary. As for your email question, well unfortunatly there is no real way to convert density values into stiffness. I think the best you can do is to use the density value to convert into a particular material and then use a known stiffness for that material. For example, you recieve a density value of 500HU. You know this corresponds to bone, so you use some other reference table (which you will have to create) which tells you what the stiffness of bone is. |
|
| Author: | Gajananan [ Tue Mar 24, 2009 11:57 am ] |
| Post subject: | Re: 3D surface reconstruction for volumetric voxel data |
Quote: But if your volume never moves then why do you have to use this matrix? The volume is already in world space and this should be where you are doing your collision detection. The GL_MODELVIEW_MATRIX is only used for rendering and shouldn't be related to collision detection. I don't move volumes but I am transforming using rotation and translation to align the model at the origin and vertical. Actually I am using this with Haptic device - represented by a moving virtual tool, if I transform the model I have to use the matrix to multiply the coordinates that represent the virtual tool .. this is how collision works. When I compute the force , this is done in model space.. should be transform back to world space ,here I need to use "ALONE" rotation matrix .. no need to use translation matrix.. Quote: but I'm just wondering if you are doing things in a more complex way than necessary. Yeah Quote: As for your email question, well unfortunatly there is no real way to convert density values into stiffness. I have read papers which say density is proportional to stiffness but I don't have equation to convert that .... Quote: For example, you recieve a density value of 500HU. You know this corresponds to bone, so you use some other reference table (which you will have to create) which tells you what the stiffness of bone is. I think I need to consult some domain expert to find this information! thanks for your reply anyway!~ I have one more question : is it possible to keep track of voxel in Polyvox? say I want to assign voxel an ID when I store it,. later I should be able to get ID back when I get back the voxel. |
|
| Author: | David Williams [ Tue Mar 24, 2009 9:59 pm ] |
| Post subject: | Re: 3D surface reconstruction for volumetric voxel data |
Gajananan wrote: Quote: As for your email question, well unfortunatly there is no real way to convert density values into stiffness. I have read papers which say density is proportional to stiffness but I don't have equation to convert that .... I'm not so sure. For example, water is more dense than wood, and yet wood is clearly more stiff. It's a silly example of course, but you see my point Gajananan wrote: I have one more question : is it possible to keep track of voxel in Polyvox? say I want to assign voxel an ID when I store it,. later I should be able to get ID back when I get back the voxel. Currently I think the easiest way you could do this would be to create two copies of the PolyVox volume and only modify one of them. The you could look at the other when you wanted to know what the original value was. Beyond that PolyVox has no support for this. Not sure if/how that will change in the future... |
|
| Author: | Gajananan [ Wed May 06, 2009 11:36 am ] |
| Post subject: | Re: 3D surface reconstruction for volumetric voxel data |
Hi, I came across two problems when modifying the 3d model 1. Left overs - After I completely destroyed the 3d model , still there are left overs remains - see the figure 1- I am not sure why this happened Attachment: LeftOver.JPG [ 4.47 KiB | Viewed 2987 times ] 2. While modifying the 3D model, some artifacts appears , hear artifacts mean something like black square...but it disappear when i try to modify the same area. Attachment: Artifacts1.JPG [ 7.13 KiB | Viewed 2986 times ] after some artifacts disappeared Attachment: Artififactsremoved.JPG [ 6.76 KiB | Viewed 2986 times ] Do you have any idea what is going on? Best Gajan |
|
| Author: | David Williams [ Thu May 07, 2009 7:06 pm ] |
| Post subject: | Re: 3D surface reconstruction for volumetric voxel data |
Well, I don't have a direct answer but we can do some investigation. In both cases we need to determine whether it is the volume data which is incorrect, or whether there is a bug in the marching cubes algorithm. Well, I know for sure there are bugs in the Marching Cubes, it's something I've been working on for the past couple of weeks. For the first problem, I think it is likely that some regions are not having their meshes regenerated after they have been modified. Try writing a loop which regenerates the meshes for all regions. Do the remaining polygons dissapear? Actually, you should do the same for the second problem, but I'm not sure it will help. It could well be a bug in the algorithm... Are you able to upgrade to the latest version of PolyVox? Be aware that a lot of class and function names have changed, and there is no longer an example with GLUT (the new example uses Qt). You can still use GLUT yourself, of course. But all the principles are the same, so it shouldn't take you long to work it out. |
|
| Page 7 of 7 | All times are UTC |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|