How would one approach creating a morphable 3D model? [closed] - opengl

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
A Morphable Model for the Synthesis of 3D Faces
The above video is over 12 years old. How was the software done?
I need something way simpler but basically the same: a morphable model (thorax) that can be altered after being pre-morphed using a picture.
Any links that might provide useful information are appreciated.
Are there any open source projects that might have helpful code that could be studied?

The details are all in their paper:
www.mpi-inf.mpg.de/~blanz/html/data/morphmod2.pdf
In short, you need:
A collection of complete 3D scans of samples of the object class you want to characterize
A way of performing 'non-rigid registration' to align a reference template to each sample
Standard statistical analysis (principal components) of the aligned samples
Note that their choice of the name 'Morphable Model' is misleading. They are referring to something much more specific than a set of difference morphs or morph targets.

What you need is called Morph target animation. Blender implements this, but the feature is called Shape Keys.
You can see an example of morphing at NeHe Productions.
This process works by creating a base vector of points, such as a face and a set of change vectors that contain the differences to various morph targets. A possible morph target would be smile and it would contain the offset values that added to the original face would result in a smiling face.
You can do linear combinations of morph targets and you can even create caricatures, by exaggerating the factors (original + 2*smile).

Related

C++ library to obtain regular meshes from a 3D file format such as STL [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
It seems there are some libraries including CGAL to generate meshes from a 2D or 3D model.
Question: In C++ environment, what is the best way to obtain a set of regular nodes to represent an object that is given by a 3d file format such as the STL?
To explain the question, let me provide an example. In a 2D case, a square can be represented by the set of '1's and the empty space can be by the set of '0's.
Is there any C++ library that can deal with this task?
00000000000000
00000111000000
00000111000000
00000111000000
00000000000000
Thank you in advance.
CGAL it self is already a very good option, if you can match the licenses (many modules are GPL or must pay a fee for proprietary use). This answer shows an example of use.
Another complete library is the Point Clouds Library (PCL) (license compatible with commercial). If your input data is ordered (like the one shown in the question) you can use the pcl::OrganizedFastMesh class.
If your data is un-ordered,
then a pcl::GreedyProjectionTriangulation may be better.
Finally, if using PCL, you can save your triangle mesh to STL using [pcl::io::savePolygonFileSTL](http://docs.pointclouds.org/1.7.0/group__io.html#ga3223bdca3003262efbd8c475d4ab7cc6].
As a final note, better than trying to find a library that exactly matches your input format, find a library that can generate the result you want and then accommodate your input and output to it through convertors. Of course, if your input doesn't provide the required data, such as normals, then you must either compute it previously or search for another method ;).

Heat Conduction 2D Fourier libmesh / deal.II [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
are there any examples of solving heat conduction problems in 2D with fourier's law as main equation with finite elements and using either libmesh or deal.II libraries?
The 2D heat equation is the only way to solve heat conduction problems. Lots of examples using finite difference, finite element, and boundary element methods. All require meshes of some kind. Which one do you want to apply?
OK, so now we know you want to solve 2D heat conduction problems using FEA. It's a three step process:
Pre-process (create the mesh for your geometry, apply material properties, boundary conditions, and initial conditions (if transient or non-linear).
Perform the analysis (formulate and solve the matrix equations for node and element unknowns).
Post-process (graphical display of results is best, since pictures are worth thousands of words).
Which solver do you wish to use? Is your objective to write one or just use one? Do you want open source? Must it be written in C++? (Not likely. FORTRAN is by far the most common language for such programs.)
Is yours a large problem? I'm guessing no, but massive parallelization might be of interest to you:
http://www.cas.usf.edu/~cconnor/parallel/2dheat/2dheat.html
FEMHub likes Python, probably because of the nice libraries NumPy and SciPy.
Here's a site that lists open source libraries for Java.

Searching library for a 3D fft based convolution [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I have a large 3D matrix and a small 3D matrix which I want to use 3D fft based convolution to find the best match for my small 3D matrix in the larger matrix. Do you have any code in C++ that can do it?
Stackoverflow is no community where one can request a code then gets it done by us, yet we can help you find the necessary resources and information so you are able to do so for yourself (usually questions on how to use libraries and help on specific topics are ok).
Let's come to your question: you already mentioned that you want to use FFT which is by far the best approach - a suitable library would be FFTW, so please take a look at it and keep the following things in mind:
To improve performace try to pad to powers of two which will speed up the process a lot!
Using real FFT and not complex will simplify and speed up this, too.
Usually single precision should be enough to achieve the desired results.

Is there a raycasting library in C++ that is simple and open source? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I'm looking for a library that will let me cast a ray into a scene model (it happens to be a terrain model in our case) and return the point of intersection in the scene. It does not have to be super-efficient (although I'd rather it not be super-inefficient). Ideally it would not have dependencies on other libraries (like OpenGL). I'm really looking for something that has just the functionality I need and no more.
Does anyone have any suggestions?
Unless there are other requirements you haven't revealed, use CGAL's AABB tree's support for ray intersections (example).
(Please, don't even think about using this if you're actually trying to do terrain rendering though... there are far more efficient algorithms for ray-casting height fields for the purpose of producing images e.g so-called voxel algorithms).

3D modeling using camera [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I'm looking for a sample code.
It's 3D modeling using camera.
like this: http://mi.eng.cam.ac.uk/~qp202/my_papers/BMVC09/
Hopefully, I want to use c or c++.
Thanks.
openCv is probably the easiest place to start.
There are a few chapters about creatign scenes from stereo pairs (which is a bit easier) in the opencv book otherwise 3d models from image understanding is still possible - but a lot harder mathematically.
You may want to check out OpenCV for computer vision functionality and OpenGL for 3D graphics. Both are widely used APIs with plenty of online documentation and examples, both official and third-party.
You could try contacting the author of the paper to see if he's willing to release his source code to you. It looks like he used CGAL (for the Delauny Tetrahedralisation) so if you go that route, you'll need to get a copy of that.