Collada Camera FOV and Positioning

Shift Studio

Well-known member
Hi All.

It seems that when exporting to .dae, the camera's FOV info isn't stored in the file.
When I import back into C3D, the camera's X parameter is rotated by 90 degrees.
Can anyone confirm?
This seems to be a bug - right?

Thanks, Shift Studio.
 

Swizl

Well-known member
I'm not sure if it's a bug with the Collada format or not? I've never been able to get a camera from another app to import correctly. I've camera matched in Modo and not only do the cameras not import correctly, even when I manually try to match the camera settings they don't match.

Although this may have to do with Field of View versus Angle of View. Some people think the two terms are the same thing, but they aren't. So maybe the conversion isn't happening when opening a file with an exported camera? Just a guess, but something isn't coming across correctly from one app to another.
https://shuttermuse.com/angle-of-view-vs-field-of-view-fov-aov/
 

Shift Studio

Well-known member
Whoa - just briefly read the linked article - seems Field of View is a distance, not an angle!

The FOV parameter in C3D goes from 0 to 180 - and if your render aspect ratio is 1:1, and you look from top or side, the number corresponds to an angle displayed as part of the camera object.
I checked Blender too - it's camera has an FOV parameter, but in the help document they call it the 'Field of View Angle'.
Anyway, if I export to Collada from Blender, and import in another application (HDR Light Studio - which I am evaluating) the FOV angle and Camera position are correctly recognized as expected... The reason this is important is that HDR Light Studio doesn't let you change camera parameters - in that app you are doing your lighting based on an exact position of the camera - which is necessary for placing reflections.

So I think this is a problem with C3D's Collada import and export. Export seems to lose the angle in question, while Import rotates the camera and just has default FOV angle of 40.

Hopefully it can be addressed.
@Swizl - thanks for the info.

--shift studio.
 

Swizl

Well-known member
Whoa - just briefly read the linked article - seems Field of View is a distance, not an angle!

The FOV parameter in C3D goes from 0 to 180 - and if your render aspect ratio is 1:1, and you look from top or side, the number corresponds to an angle displayed as part of the camera object.
I checked Blender too - it's camera has an FOV parameter, but in the help document they call it the 'Field of View Angle'.
Anyway, if I export to Collada from Blender, and import in another application (HDR Light Studio - which I am evaluating) the FOV angle and Camera position are correctly recognized as expected... The reason this is important is that HDR Light Studio doesn't let you change camera parameters - in that app you are doing your lighting based on an exact position of the camera - which is necessary for placing reflections.

So I think this is a problem with C3D's Collada import and export. Export seems to lose the angle in question, while Import rotates the camera and just has default FOV angle of 40.

Hopefully it can be addressed.
@Swizl - thanks for the info.

--shift studio.

I know I was shocked when I saw that too. But it makes a lot more sense to me now, especially with the diagram that was shown.

I've off and on tried to figure out what the problem is for a few years. That's the first article that gave me some idea that those two different ways of describing a camera were actually totally different things. I've never studied that scientific aspect of cameras and lenses. I did take a black and white photography course at the Royal College of Art in London, but it was all just about walking around London and taking pictures. Then we would develop them in the dark room. All the classroom discussion were from an artistic viewpoint and not a technical one. We did one classroom session on studio shots, but the lights and reflectors were already set up for us.

I know Martin is busy with a million things for C3d, but maybe the camera could get a little bit of extra attention sometime soon.
 

Shift Studio

Well-known member
@Swizl - I haven't really studied the mechanics of cameras and lenses - well I did take a engineering physics course entitled waves and optics - but that was a long time ago. The photography course - looking at the art side of it sounds like an enriching experience. I bet you're happy to have done it.

Yes, I'm sure import/export, camera issues aren't the most pressing items for Martin's development of C3D.
--shift studio.
 

filip c

Active member
Hi guys,

sorry to hijack this tread, but I've also been trying to figure out how to match cameras between Cheetah and Blender. I thought I figured out the math, untill I discovered that the cheetah's field of view, although it goes from zero till 180, does not corresond to real angles... and is not what i thought was the angle of view..
for example with a value of 90, I would expect a straight angle (in top view), but its far from it...

anybody any ideas how I can find the actual angle?

Kindest regards,
Filip
 

MonkeyT

Well-known member
My first thought is that this guy's strategy seems appropriate: Build a stage with markers every 10 degrees and see what you see.

 

filip c

Active member
I tried to make sence of it, but I fear I'm not smart enough... (FOV = 90 but the angle is not)
Schermafbeelding 2021-11-27 om 19.16.11.png
 

ZooHead

Well-known member
Hi guys,

sorry to hijack this tread, but I've also been trying to figure out how to match cameras between Cheetah and Blender. I thought I figured out the math, untill I discovered that the cheetah's field of view, although it goes from zero till 180, does not corresond to real angles... and is not what i thought was the angle of view..
for example with a value of 90, I would expect a straight angle (in top view), but its far from it...

anybody any ideas how I can find the actual angle?

Kindest regards,
Filip
With a 1:1 aspect ratio, a field of view of x = x degrees.

600 x 600, FOV 90= 90 degrees

FOV Degrees.jpg
 

filip c

Active member
@filip c If you hadn't asked, and @MonkeyT had not suggested a method, ... (y)
indeed thanks guys...



so if i'm correct (will test some more), for square camera's...
the Focal length in Blender = (sensor size in blender/2) / tan(field of view from Cheetah/2)


Camera's from imported DAE files (grouped in a folder and export scale 0,01) out of Cheetah into blender...
keep the sensor size at 36, adjust resolution, set Focal Length to: 18/tan(field of view from cheetah/2)
... and it should match (correct me if i'm wrong 😬)

now i'm going to try to make this work for non-square camera's


thanks so much guys!
 

filip c

Active member
Please don't ask how I got to this, my math skills are horrible, but it seems to work partially... for now...
(pending decent testing, my head is about to explode and this stuff is way out of my league, so please have mercy ;) )

Focal length (Blender) = sensor size (Blender,36 as standard?) / 2tan (tan−1 (tan (Field Of View (Cheetah)/2) * (resolutionX/resolutionY) ) )

feel free to polish this monstrosity into something more elegant...

I hope other people can confirm this and even more that @Martin makes the adjustments to the importer and exporter soon ;)
 
Last edited:

filip c

Active member
I made an excel file to help converting the camera's/ calculate the corresponding focal length in Blender...
still not sure if I'm on the right track and I still have a lot of experimenting to do...
 

Attachments

  • cheetahtoblender.zip
    5.7 KB · Views: 58

Shift Studio

Well-known member
I made an excel file to help converting the camera's/ calculate the corresponding focal length in Blender...
still not sure if I'm on the right track and I still have a lot of experimenting to do...
that may come in handy someday for me too. Thanks for sharing!
--Shift Studio.
 

filip c

Active member
Finally succeeded at something I wanted to try for so long...

Animate and render in cheetah, export as DAE to Blender, match camera, export as composite shot from Blender to Hitfilm and add effects. (quick test, don't mind the esthetics)


Scene

 

Attachments

  • io_export_hitfilm.py.zip
    6.9 KB · Views: 47
Top