How to analyse the source code of Blender - blender

I am a beginner of Blender, my professor asked me to read the source code of Blender 2.6 and study how blender implements the material and texture block. After i have downloaded the source code, i find it is impossible for me to read whole source code, especially without detailed comment and professional manual. Is there anybody can give me some advice or offer me some learning material? For example, i am confused by how multiple layers of texture are compounded by using different blend type, like mix, add, subtract or overlay. How does blender implement these functionality?

Take a look at the code layout diagram here.

I'd suggest you to get the source code and import the code into an IDE like QtCreator (import make file project). From there on, you can easily browse for the details.What you are looking for is a DNA entry.So look in the file DNA_MAterial_Types.h You can find the declarations for all the material types.

Related

Pointcloud to Model with CGAL complete beginner, Tutourial? Guide or tips?

I've stumbled upon CGAL and it seems amazing.
Anyone know of any simple ways I can test some of it's magic out without knowing any prior C++ or programming? Or a really thorough guide?
Just to get you an understanding of my general tech level(unrelated to CGAL) I know printf.. prints.. stuff.. but I have no idea how to put that into practice. And I've managed to install npm modules by slamming commands into cmd and run a module afterwards.
If there's no easy beginning to get a taste of this, other tips is also welcome if I have to take a longer route to understanding this.
What I want to achive is my input is pointcloud data scans -> magic/CGAL/ -> 3D models is my output
You can try the 3D polyhedron demo that contains most of the functionalities of CGAL.
You can compile it yourself by compiling the code in demo/Polyhedron from a release or use the pre-compiled windows demo available: demo + dlls to be extracted in the directory of the demo.
Also here is a WIP version of a tutorial that should be integrated in the official documentation soon.

Create kinect skeleton for comparison

I'm going build an application where the user is supposed to try to mimic a static pose of a person on a picture. So I'm thinking that a Kinect is the most suitable way to get the information about the users pose.
I have found answers here on Stackoverflow suggesting that the comparison of the two skeletons (the skeleton defining the pose on the picture and the skeleton of the user) is best done by comparing the joint angles etc. I was thinking that there already would be some functionality for comparing poses of skeletons in the SDK but haven't found any information saying otherwise.
One thing makes me very unsure:
Is it possible to manually define a skeleton so I can make the static pose from the picture somehow? Or do I need to record it with help of Kinect Studio? I would really prefer some tool for creating the poses by hand...
If you are looking for users to pose and get recognized for the correct pose made by the user. Then you can follow these few steps to have it implemented in c#.
You can refer to the sample project Controls Basics-WPF provided by microsoft in the SDK Browser v2.0( Kinect for Windows)
Steps:
Record in Kinect studio 2 the position you want the pose to be.
open up Visual gesture builder to train your clips( selection of the clip that is correct)
build the vgbsln in the visual gesture builder to produce a gbd file( this will be imported into your project as the file that the gesturedetector.cs will read and implement into your project.
code out your own logic on what will happen when user have matching poses in the gestureresultview.cs.
Start off with one and slowly make the files into an array to loop when you have multiple poses.
I would prefer this way instead of coding out the exact skeleton joints of the poses.
Cheers!

plotting robot path

I am writing code for rrt(rapidly exploring random trees) which is a sampling based motion planning algorithm.I wrote the code in MATLAB but now i am writing it in c++.
I want to know how can we plot the robot path in real time with all the obstacles.
What I want is this: I want to see my robot traversing the space.So basically it's about the graphics.I am trying to use sfml but I am having problems with it.Some people suggested using opencv or opengl but I think they are not easy to use.I am looking for a simple to use library.
If opencv or opengl is the answer then please tell me what specifically i need to use in these libraries.I am working on linux(ubuntu 11.10)
You might want too look into using the internal matlab compiler for generating a standalone application directly from your M-code. That way you don't have to rewrite everything form scratch.
I have used the following link a couple of times just to refresh my memory
http://technologyinterface.nmsu.edu/5_1/5_1f/5_1f.html
Eg if you have made an M function with the following content(Example from link):
function y=PolyValue(poly,x)
poly=[1 2 -1 4 -5];
x=[5, 6];
y=polyval(poly, x)
you could use the command
mcc -m PolyValue
to compile the program.
This command would then give you the files necessary for implementation in a larger c++ program.
It should even support Gui elements and graphs.
Something like http://www.ros.org/news/2011/01/open-motion-planning-library-ompl-released.html
may be what you are looking for.
I've worked in both OpenCV for some image recognition projects and OpenGL for rendering displays and whether you go with a library like above or render it yourself is really up to how complex the display needs to be. Ask yourself some questions about how many different obstacle scenarios you are looking at. Are there a large multitude of possible shapes for the obstacles and the robot? Is the problem deterministic (in terms of both the robot's movement and the environment)?
In terms of OpenGL and OpenCV being not easy to use for those new to them, this is very much the case, but choosing to work in C++ makes the problem more difficult for beginners. As another user has mentioned, wrapping your Matlab code instead of throwing it away may be a viable option. Even running the matlab engine in the background to run your scripts through C++ may be viable, if speed is not a critical factor. See http://au.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html for more information.

Create PDF Annotations in iOS

I've been working on a pdf viewer with support for annotations and I need to be able to save new annotations that the user has created. I've seen tons of examples on how to draw text/lines/images, but that's only flattened content, I need to create actual annotation objects
I've found no documentation or examples about it, so if anyone could point me in the right direction I would be extremely grateful
Cheers!
Edit: After several months of work we could release the v1 of this. We ended up using an open source c++ library, and went through a huge pain to make it compile for iOS. The one in charge of that isn't working in the company any more so we can't publish how we managed to do it
Well, there are several paid/free source codes which are available which includes pspdfkit, fastpdfkit etc. Find the links below:
Well maintaining, support, and features but very expensive:
http://pspdfkit.com/
Looks nice, but not maintaining/support:
http://fastpdfkit.com/
https://github.com/vfr/Reader/
Other StackOverflow Threads:
add annotation to pdf
Add an annotation on a pdf
Annotation (notes, comments) using Quartz 2d in ios
Blogs:
http://codecanyon.net/item/html-pdf-viewer-ios-xcode-project/154673
http://www.binpress.com/app/pdftouch-sdk-for-ios/859
For free/open-source app you can check at
http://poppler.freedesktop.org/
Please read the issues before using this framework, this developer is no longer maintaining and it has some serious issues.
I created an open source framework for PDF annotation in IOS in GitHub. It supports both iPhone and iPad. Please check it out here.

3d files in vb.net

I know this will be a difficult question, so I am not necessarily looking for a direct answer but maybe a tutorial or a point in the right direction.
What I am doing is programing a robot that will be controlled by a remote operator. We have a 3D rendering of the robot in SolidWorks. What I am looking to do is get the 3D file into VB (probably using DX9) and be able to manipulate it using code so that the remote operator will have a better idea of what the robot is doing. The operator will also have live video to look at, but that doesn't really matter for this question.
Any help would be greatly appreciated. Thanks!
Sounds like a tough idea to implement. Well, for VB you are stuck with MDX 1.1(Comes with DirectX SDK) or SlimDX (or other 3rd party Managed DirectX wrapper). The latest XNA (replacement for MDX 1.1/2.0b) is only available for C# coder. You can try some workaround but it's not recommended and you won't get much community support. These are the least you need to get your VB to display some 3d stuffs.
If you want to save some trouble, you could use ready made game engine to simplified you job. Try Ogre, and it's managed wrapper MOgre. It was one of the candidate for my project. But I ended up with SlimDX due to Ogre not supporting video very well. But since video is not your requirement, you can really consider it. Most sample would be in C# also, so you need to convert to VB.Net to use. It won't be hard.
Here comes the harder part, you need to export your model exported from SolidWorks to DirectX Format (*.x). I did a quick search in google and only found a few paid tools to do that. You might need to spend a bit on that or spend more time looking for free converter tools.
That's about it. If you have more question, post again. Good Luck
I'm not sure what the real question is but what I suspect that you are trying to do is to be able to manipulate a SW model of a robot with some sort of a manual input. Assuming that this is the correct question, there are two aspects that need to be dwelt with:
1) The Solidworks module: Once the model of the robot is working properly in SW, a program can be written in VB.Net that can manipulate the positional mates for each of the joints. Also using VB, a window can be programmed with slide bars etc. that will allow the operator to be able to "remotely" control the robot. Once this is done, there is a great opportunity to setup a table that could store the sequencial steps. When completed, the VB program could be further developed to allow the robot to "cycle" through a sequence of moves. If any obstacles are also added to the model, this would be a great tool for collission detection and training off line.
2) If the question also includes the incorporation of a physical operator pendent there are a number of potential solutions for this. It would be hoped that the robot software would provide a VB library for communicating and commanding the Robot programatically. If this is the case, then the VB code could then be developed with a "run" mode where the SW robot is controlled by the operator pendent, instead of the controls in the VB window, (as mentioned above). This would then allow the opertor to work "offline" with a virtual robot.
Hope this helps.