I am having a difficult time using this program with the attached geometry (and only this geometry).
The problems I receive are:
Camera matrix never exports to camera component
(sometimes) When I click on a point all points are automatically selected. (and if i right click to remove all the selected points there is always 1 point still being projected that is unremovable and not located on the SOP in TD)
(similarly, often) 1 random isolated point is being outputted through my projector but all points are unselected in the CamSchnappr app.
attached is the geometry if anyone would like to see if they can replicate this error. I have no problems using CamSchnapper on anything else from a box to a car but this guy acts funny! any ideas?
interesting problem.
In camschnappr I’m trying to simplify the model by removing points that overlap. When comparing points some had positions where one axis would be 0.0 but on another point at the exact same location the axis would be -0.0.
This is some floating point stuff which apparently is useful for atan2 and others where it actually matters. With this some comparison didn’t work and you ended up with a broken CamSchnappr
If anybody ever encounters this, if you add 0 to a value of -0.0 it will return +0.0
Problem solved, here is a quick fix, I post a full fix tomorrow…
cheers
Markus
Note: The latest CamSchnappr version for can be found here
If anyone else has similar problems to that of my previous post, converting my .dae file to a .obj using the free 3D file converter, MeshLab, solved most of my struggles.
Ps.
Markus,
Thank you for your update you are beyond awesome with your shares and support!
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!
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?
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?
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.
It would be great to have a quick walkthrough on the inner workings
I quickly browsed the network but can’t really figure where the logic and calculations take place so far
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!
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.
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
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.