088: Map an object with CamSchnappr

Is this broken in builds 10xxx? Using build 10320 and the wireframe is always off (usually inverted, translated, and no points overlap on the digital and physical model). And the projection matrix doesnt update for the camera. No problem when im using a 7000 build. Can anyone verify so I can debug if its my setup or the new build? Thanks!

Yes, sorry, there are some issues with it right now, we are waiting on an update.

Thanks for the info looking forward to an update

I have a question about the tdu.calibrateCamera method at the heart of camSchnppr.

I know that Mapamok had a couple options for wide lens scenarios. Is the ‘fov’ argument in calibrateCamera something that would affect the matrix information coming out in a useful way? I noticed it is default at 80.

I am dealing with some wide throw projectors that definitely have distortion, but I’m not sure CamSchnappr/Mapamok are really able to deal with true lens distortion yet yeah?

Thank you Markus!

-P

Hi Peter,

unfortunately I haven’t been testing any wide throw projectors so can’t tell you how much calibrateCamera can adjust for them. You would have to try to test with various fov ranges. I guess in general you would need access to
CV_CALIB_FIX_K1, CV_CALIB_FIX_K2 and CV_CALIB_FIX_K3?

cheers
Markus

The Version posted here will only work with TouchDesigner 088 build 10420 or newer

This is a fix concerning some issues that came up with the latest official TouchDesigner builds. Mainly dealing with exporting and some channel renaming.

Enjoy
Markus

Latest Version of CamSchnappr can be found here

Thanks a lot for this great tool!

It would be great to have a quick walkthrough on the inner workings :wink:

I quickly browsed the network but can’t really figure where the logic and calculations take place so far :frowning:

One of the things I still find confusing about Touch and visual programming environments is it’s a bit harder to understand what’s going on in a complex network than with straight programming!

Thanks a lot
Vincent

Hi Vincent,

I’ll try to get to this, this is a really good point.
Generally I find that in especially complex networks you are gaining a bit a look into somebodies thought process and that might not always be straight forward.

cheers
Markus

does anyone have any tips on getting a virtual scenario going like the one that Archo-p was talking about?

I have been trying to combine camschnappr and the perspective pre-viz tutorial from the mutek meetup without much luck…

would be really cool to be able to test this out without a projector ect…

thanks!

Anybody else been having an issue where every point suddenly becomes selected when clicking around?

I’m fixing it by throwing in a deselect all button and a lock selection button but I figured I’d report the issue anyways.

Same. I’ve had this issue for a lot of builds. My solution has been to use a delete SOP on my model to select the 6 or so calibration points then deselect the few points individually when CamSchnappr funk’d out

Hey Markus, how would we go about enabling these wide angle fixes?

Is there a script within CamSchnappr that I can run to reset all points?

Currently I just cut the text out of the Geometry SOP area, push enter, and paste it back in.

I’ve tried scripting this but for some reason it doesn’t work. I’ve also tried executing the script attached to the field (after removing it from the DAT Execute) and it seems to have no effect.

Here’s the script:

One thing I don’t quite understand is why “.val” is used when changing parameters. I was under the impression that this was not needed.

To deselect all points for the full selection issue put this script in your CamSchnappr component.

selectedPoints = op(‘pointDisplayPicking/selectedPoints’)
for i in range(selectedPoints.numRows):
selectedPoints[i,1] = 0

Is anybody getting conversion from string to float errors with camschnappr in build 20560?

EDIT:

I think theres a rounding issue with the latest build still…I know that Rob changed something recently and that may have broken CamSchnappr, I’ve changed the rounding in pointDisplayPicking/table[3-4] to 5 from 10 and it seems to now not return null values. This has seemingly fixed solver in that it’s not erroring although fillProjMat has a division by zero error.

EDIT AGAIN:

It’s weird but removing the comments from the DATs has removed any division by zero errors…I guess this is just a DAT error refresh thing.

So yeah…set 10 to 5 in those DATs and it’ll work splendidly again.

Scripts errors stay persistent on DATs now, allowing you to see if a DAT has errored sometime in the past (since it’s hard to know with scripts running every frame). Editing the DAT will clear the errors. So the script error is still there, it just doesn’t happen every time the script executes it seems.

It’s just happening when I have less than six points selected…so the only major error was that rounding issue. CamSchnappr is working perfectly since I changed that.

Hm, maybe a good approach would be to use a facet SOP and consolidate the points before passing the geometry on to CamSchnappr. An alternative approach could be to add a parameter that let’s you control the rounding factor.
Alternatively you could also scale the geometry.

Ahh that’s exactly whats happening, I’ve passed the wrong node in.

I am having the same problem

I’m noticing this issue even after changing 10 to 5 in the two DATS.