This post is really an announcement for an updated version of my videoprojectiontool + a new handy cornerpin keystone application.
But first some lines about another program, vvvv:
The last few months I have spent some time working with vvvv, which is a graphical programming language similar to max and pd, but with a few distinct differences.
First of all, it is windows only (It is based on directx instead of opengl), which is the main reason why I haven´t used it before.
The vvvv developer´s attitude is that it is better to make the program as good as possible on one platform rather than trying to make everybody happy.
Second, it has a clearer focus on 3D than max/jitter.
The main reason I have looked at vvvv is because the developers seem to be quite interested in making it a practical tool for real-life projects, to make it easier for the users to focus on content rather than trying to solve programming problems all the time.
Especially for people like me, who work with projectors, multi-screen setups, mapping etc, it was a relief to see dedicated modules for multiscreen blending, cornerpin keystone, and a projector module to make it easier to combine virtual models with physical environments. Also, there are easy-to-find modules and examples for how to interface vvvv with different hardware.
I had an interesting exchange with one of the jitter developers in the cycling74 forum a little while ago, where I was complaining about how such a useful thing as cornerpin keystoning is not available in jitter. I have attempted several times to make this in max/jitter without luck. It took the developer fifteen minutes to make it, but I would have never found this solution myself.
I guess my point is that I wish there was a set of useful abstractions and instructions, especially when working with 3D, instead of always being referred to the “red book” (the opengl reference book). Something like auv-i was for earlier versions of max/jitter for working with video.
And now, to the announcements: cornerpin keystone + v2.5 of videoprojectiontools
I have made a simple application, based on the above-mentioned exchange in the cycling74 forum, for a very simple but effective cornerpin keystoning. So, instead of tweaking the projector settings to get the projection to fit your projection surface, you can now just click in the corners on your desired projection surface, and the image will fit. The source code for the cornerpin keystoning is available on the cycling74 forums.
Videoprojectiontool v2.5 is now available, for mac osx and windows!
The new features are corner pin distortion of the individual layers, + enhanced functionality for drawing directly on the projected output for advanced masking. Please watch the video tutorials to learn more.
If you are working with mapping image content onto physical objects or surfaces, there are two main approaches: Creating a virtual 3D model which matches the physical environment, and then project that 3D model back onto the physical environment. This is not an easy task which involves a lot of calibration, as everything has to match exactly. For this I think vvvv is by far the best tool, check out their tutorial.
The second approach consists of positioning and masking individual layers in the physical environment. I think my videoprojectiontool is a good starting point with this approach. It involves no projector calibration, and you can get some great results in a very short time. By combining 3d placement of layers with advanced masking, and a sequencer for storing presets and creating transitions it has become a quite powerful tool.
Go to the resourcepage for the videoprojectiontool for the links to the new applications and several new video tutorials related to the update.