My blog about some extreme 3D stuff
by, 12-01-2010 at 01:29 PM (1545 Views)
I thought I would start a blog about some tech stuff that I have mentioned in the past on various posts but I thought it would be better if I brought it all together. I don't expect that this will be relevant to many people but I am forever surprised by the few who do post in some amazing related links to the bizarre stuff that I post sometimes and these make it all the more worthwhile. I think within these posts will be some gems and some of it will seem a little extreme now but in a few months or years will be seen as more mainstream.
So I am into 3D graphics in a pretty big way and do it all as a hobby because I don't happen to have a day job that from day to day requires this sort of stuff but I like to mess about with it and to some extent (probably greater extent) it means I can try out some pretty extreme kinds of play without having some boss down on me telling me how in the heck any of this is going to make any money. Its like my google Friday coding...
So a post was mentioned recently about some 3D stuff and I discovered from that MeshLab which is an open source app for playing with meshes. Meshes are 3D polygonal structures used to make 3D objects which are used in the big rendering apps to show things. The big rendering apps use points called virticees with either mathematical curved surfaces between them or flat faces. Meshes usually refer to collections of points and faces.
So this MeshLab app is all about modifying the points and faces of a mesh. Pretty simple you might think but there are some unbelievably difficult problems in amongst this area of interest and these are still being worked on at the highest levels and theoretical papers are produced each year detailing new algorithms to try and solve them.
One of the most common and difficult of these is to do with creating the faces from an unordered set of points. Now you can go in by hand and select three at a time and say make a face out of them. Then go to the next 3 and so on. This is how it used to be done. This was in a time when a model had a few hundred faces to put together. Now there are automated ways of creating many many points and only sometimes do you get the information to know precisely how to stitch them all up into a mesh. The rest of the time you don't and need a better answer.
To my knowledge this has been beyond those other than who research the topic or have purchased an expensive bit of software to do it. Now when I say expensive, when I first saw this in a company I was doing work for in the late 90's the price tag was of the order of $60,000 for a piece of software which amongst its selection of capabilities had this. And then when we tried the demo it didn't do it right most of the time.
So were 15 years on from that (yes I am an old geezer) and its interesting to see that MeshLab has this capability and its GNU software so it does not have a license restriction from you making models from this process. I will say that MeshLab crashes for a past time and I hate apps crashing but even despite this, given what its doing I will still have to wave its flag.
"Ok great" - I hear you say. "So where do I get all of these points from in the first place ?". Well in a separate thread of development there has been a lot of work going on in the area of photogrammetry which is the area concerned with extracting dimensional properties from photos. Its possible to take several photos of the same scene from different positions and without knowing almost anything about the location, or camera properties, you can extract the 3D information from the photos to build up a 3D set of points. So all you need is a digital camera.
Now as far as I know there is no open source or free app that extracts a dense sampling of these points and exports them but there is an app or maybe more that can give whats known as a sparse sampling of these points and can export them and there are other apps which you can tinker with and force them to give the dense set of points. Its a matter of time before someone releases a free and open version of one which does both at once.
So for now I will, in due posts, show how to take some photos, extract the 3D point set and automatically generate the surface to build a 3D model from it. Sounds exciting but with a sparse set of points at this moment in time, the models are very coarse indeed - but the future in this direction is most exciting.
It opens up the possibility of taking a few photos of some terrain, generating the 3D points, making the 3D model and then importing that into Wilbur or your other favorite 3D terrain app to make a map from. The process could be scripted so that with a few photos and some standardized map shaders, we can generate your own style map from it. And this is all just over the brink of the horizon as far as I can tell so what better time to become familiar with all of this.