Jump to content
3DCoat Forums

3D scanning with your camera


Recommended Posts

  • Reputable Contributor

As the video title says... Free! All of them are free and open source software (FOSS).

That's right. I figured the FREE part was the process of you taking photos, rather than pay a scanning service. Wasn't sure if all the apps were free (LW is not :D  )

Link to comment
Share on other sites

  • Contributor

Wow, Phil! Really great tutorial, and extremely useful! Thanks so much for making it!

It's nice to see that there are now some free 3D-scanning options available! Very nice for freelance artists.

I've heard about Autodesk's 123D Catch, Autodesk's "Photo on Recap 360", and Agisoft's Photoscan. 123D Catch seems to be free (but maybe not entirely?), Photo on Recap 360 is $50 per year, and Photoscan is $180 for the Standard Edition.

Any thoughts about those options? Have you tried them out, and/or compared them to your free stuff?

Anyways, thanks again for your videos, videos like these are a wonderful contribution to the community!

Link to comment
Share on other sites

That's right. I figured the FREE part was the process of you taking photos, rather than pay a scanning service. Wasn't sure if all the apps were free (LW is not :D  )

 

Well yeah, LightWave wasn't really part of the scanning process.  Which is why at one point i said "whatever your 3D program is".

 

Wow, Phil! Really great tutorial, and extremely useful! Thanks so much for making it!

It's nice to see that there are now some free 3D-scanning options available! Very nice for freelance artists.

I've heard about Autodesk's 123D Catch, Autodesk's "Photo on Recap 360", and Agisoft's Photoscan. 123D Catch seems to be free (but maybe not entirely?), Photo on Recap 360 is $50 per year, and Photoscan is $180 for the Standard Edition.

Any thoughts about those options? Have you tried them out, and/or compared them to your free stuff?

Anyways, thanks again for your videos, videos like these are a wonderful contribution to the community!

 

Thanks! I have looked at Agisoft briefly but it's way too expensive. It looks kind of complicated too. I think it's aimed more and things like CSI and land surveying, less artistic stuff.  123D Catch I use occasionally but it's very slow and kind of buggy. I like the fact that it has an Android app but you have to upload all the photos to their server so you have to wait until you have WiFi available anyway. Several of my projects never finished. I have 2 in there now from like September that still say "Thinking some more". Some people may also have an issue with the pictures being uploaded instead of keeping them all in house. I think it is free but may have some limitations on it license wise. I don't know anything about Photo on recap 360, this is the first I've heard of it.

  • Like 1
Link to comment
Share on other sites

I suppose it's possible, but I suspect it would be difficult. Video doesn't always stay in focus I think, plus you have to worry about motion blur more I think, as well as video compression.  I also feel like when you're taking still pictures you will probably pay more attention to the framing and making sure you have every angle. Really it is best to use a real camera like a DSLR. That will take better pictures than any phone.

 

When I first started doing this I was using 123D Catch called (Photofly before that) and I was using this video for reference. He has soime good camera tips.

 

  • Like 1
Link to comment
Share on other sites

Here's a question. After I scan the model I bring it into 3DC with the texture. But some of the areas are more low poly than others. Normally this would be a good thing but since 3DC converts the texture image to vertex color it messes up some areas of the texture.  Is there a way to load the image, use LiveClay on the low poly parts, and then load the  texture?

Link to comment
Share on other sites

  • Contributor

My mesh, despite looking fine in MeshLab, comes out garbled when imported to 3D-Coat. Strangely, it looks undamaged when loaded into Import tool (before I apply the import operation).

 

How did you import the texture to sculpt room? I got none even though I imported the file to surface layer.

 

I'm trying to import Collada file now (I tried with Stanford Triangle Format first), but it seems to take forever for 3D-Coat to read the file, and it's only 3M triangles. Strange.

Edited by ajz3d
Link to comment
Share on other sites

Hmm well I haven't tried going directly from Meshlab to 3DC. What format are you using? I usually load it into LightWave and flip it so it's not upside down and apply the UV texture, then I save it out as an LWO. Then I load it into the sculpt room in Voxel mode and set it to "do not voxelize". So far that has been fine.  For some reason I have doing that if import a model to the sculpt room in Surface mode I don't get the texture. If I do it from Voxel mode it works fine. I guess that's a bug I should report.

Link to comment
Share on other sites

  • Contributor

Hmm well I haven't tried going directly from Meshlab to 3DC. What format are you using?

Stanford PLY. Collada took forever to load.

I usually load it into LightWave and flip it so it's not upside down and apply the UV texture, then I save it out as an LWO. Then I load it into the sculpt room in Voxel mode and set it to "do not voxelize". So far that has been fine.  For some reason I have doing that if import a model to the sculpt room in Surface mode I don't get the texture. If I do it from Voxel mode it works fine. I guess that's a bug I should report.

I followed your advice, but the vertex colour still doesn't show up. So I loaded the file in Houdini, just to make sure the file contains colour, and it does, because point colour attributes are there. I don't know what is going on and why 3D-Coat is so stubborn.
Link to comment
Share on other sites

  • Contributor

Finally!

I had some success with Wavefront .obj format, and your method of importing to voxel layer but without voxelization.

Definitely something is buggy with vertex colour import, and also the fact that 3D-Coat can't import vertex colour from .ply files.

Edited by ajz3d
Link to comment
Share on other sites

  • Contributor

Here's a question. After I scan the model I bring it into 3DC with the texture. But some of the areas are more low poly than others. Normally this would be a good thing but since 3DC converts the texture image to vertex color it messes up some areas of the texture.  Is there a way to load the image, use LiveClay on the low poly parts, and then load the  texture?

Hm, you could subdivide and refine the duplicate of your textured mesh and then transfer texture from the original geo to vertex colours of the duplicate. All in MeshLab.

This should work in theory, I think.

Edited by ajz3d
Link to comment
Share on other sites

  • Contributor

I just noticed that 3D-Coat does not read vertex colour attributes. Instead, it looks like it reads the colour from the texture file and applies it to vertices of imported mesh (the geo must have uvs). This might be why I got no colour with .ply, because I exported it without texture coordinates. However, for .ply, texture import doesn't work even if uvs are present...

I need to test it a little bit more.

Link to comment
Share on other sites

Yeah, 3DC loads the UV texture and converts it to vertex colors. That's why I was thinking that maybe there's a way I load the object and then load the image but now that I think about it I guess that wouldn't work because once it's loaded the UV map is gone.

Link to comment
Share on other sites

  • Contributor

(...) That's why I was thinking that maybe there's a way I load the object and then load the image but now that I think about it I guess that wouldn't work because once it's loaded the UV map is gone.

Not after importing the mesh in 3D-Coat. But before this, in MeshLab you can prepare a mesh with almost uniformly sized triangles all over its surface, and then import it to 3D-Coat. You'll have nice and detailed textures in all areas of your model.

 

I can record a video of the process, but it basically boils down to two steps:

1. After Poisson reconstruction and some cleaning-up, subdivide the mesh using a conditional Loop subdivision, so only edges with length greater than a threshold will get subdivided (measure tool comes in handy here). Use Enchance regularity weighting scheme for better result. Give it a healthy amount of iterations to make sure that subdivision of larger edges won't stop before their length reaches the threshold.

2. Use high resolution texture when applying Parametrization+texturing from registered rasters. I think a good rule of thumb is to stick to this formula: texture_width*texture_height >= vertex_count. Of course texture resolution is also limited by camera resolution and how close to the surface you shoot the pictures.

 

This gives very good results (at the cost of higher polycount).

 

Example:

6.451M triangles, 4096 px2 texture (overkill). This side of the rock gets some low-poly patches after Poisson reconstruction. Note that there are none on the image.

 

rock_photogrammetry_test.jpg?dl=1

Edited by ajz3d
  • Like 1
Link to comment
Share on other sites

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...