I'll continue to update this post so that any info I share is not spread out in many different places.
https://www.dropbox.com/s/5xhy1fei4rwia ... -0.2.blendThis is the file to produce a UV mask using Blender (open source, totes free dudes). The Blender interface isn't conventional, but if you do the UI tutorials, it's not that hard to use. But here's some of the basics:
• Tab key on a selected mesh and you can adjust the vertex data. The XYZ for the active point is in the sidebar of the 3D view.
• The 3D cursor is the thing that jumps to the mouse location when you left click in the 3D view. You can snap it to stuff (shift-S) and then use it as the reference point for transformations like scaling, if you set the 3D cursor as the pivot center (hotkey: the alphanumeric pad period key).
How to use this file:
• In the top right you should see a button that says "bake". If you click it, you should see an image render in the bottom right. In that panel, you can save the image to use as a UV mask (I recommend JPG).
• You use edit mode to manipulate the height map mesh. You then have to change back to object mode, so you can select the height map mesh, followed by the projection plane, and then press "bake", so you can save the image.
• Keep your height map Z values between 0 and 1. If for some reason your values are not in that range, you can use the normalize option. This just means the farthest Z distance gets mapped to either 0 or 1, and the projection plane is at 0.5 on Z. I strongly recommend not using normalize.
• I've raised one corner of the height map so you can see a bright corner in the output, and verify that your top and bottom are correct on the projector. I've also marked the bottom of the height map mesh with a green edge (only shows in edit mode).
Caveats:
(1) In CW (or at least the version I'm using), if you change the mask, you have to save it under a new name in order see the changes in CW. CW doesn't release the file memory for writing after it's been opened, unless you quit and reopen CW.
I don't have clear instructions for you on how to get the perfect output. I'm working on figuring out a
method myself. The values of the image don't seem to have a linear relationship to the output UV value, which makes this harder.
The Z position of the projection plane is your 50% spot.
(3) I chose to extrude the edges of the height map mesh so that I would have a margin around the whole map. You can delete this extended border if you want, but I don't recommend it. The margin ensures that you get the expected mask values in the circles near the vat edges.
(4) This would be more useful if the resultant output values could be known prior to applying the mask. I'm working on this problem currently.
This method could be automated by writing a python script which imports all the CSV data and sets the height of the vertices for the user, and triggers the render process and opens the save image dialog. I don't have time to do this task, but if someone would like to take it on, feel free to increment the version and host it on dropbox. If the tool becomes polished enough we could put it on github.