Notifications
Clear all

[Closed] 3D auto stereoscopic camera script

I went to Siggraph last week and had a private conference with autodesk and Lightspeed. If you guys are serious about Stereoscopic, also check out www.DepthQ.com they create projectors for polarized stereoscopic. Same type of cameras used for Beowulf 3d, U2 3D, etc. Could work well with this script!

@MartinB

Yes, we use shifted camera cones. This technique helps to avoid vertical disparities. These vertical disparities are one of the reasons why so many people are getting headaches while watching movies in 3D cinemas.

As i have seen, you are well skilled in scripting. So, this script is not jet perfect and I’m very interessted in any improvement suggestions.

@Teriander
Thanks for the link. Sounds very interesting, too. It would be great to watch their technology in action. Did you also gain some insights in the resuting 3D impression?

You do this by rendering a bigger image and then cropping away the surplus pixels?

Edit: After looking at the code, I see that you are using a Sheared transform matrix!
Sneaky (maybe that is the reason you are having problems with other renderers?)

First of all, thanks for making the source code available! Even though I have no direct use for eight subimages (I only need two), I really like the script

After a brief glimpse a it, I have few questions/comments:
[ul]
[li] You are using an #indexTab to store node handles for retrieving the attached objects. I wonder why you are not using a #nodeTab and directly store the node? AFAIK, handles are randomly assigned and start with 1 after each scene reset, which means that handles will not survive a File > Merge, for example.
[/li]
[li] It looks as if you are not taking pixel aspect into account?
[/li]
[li] If the script is having problems with renderers other than scanline, a check/warning would be good if mr/vray/fR… is currently used
[/li]
[li] Not sure I understand why the script is rendering four times to produce the anaglyph preview? Two should be enough?
[/li]
[li] It might be nice to be able to cancel out the rendering, either anaglyph or local rendering.
[/li]
[li] You are setting the viewport to the 3D camera right before rendering. It would be nice if you would store the previous view and restore it afterwards. This might get a bit messy, though…
[/li][/ul]

– MartinB

Not sure I understand why the script is rendering four times to produce the anaglyph preview? Two should be enough?

Two are enough, right. It’s just for demonstating the limited 3D volume.
The main images are shown by 80% and the 2 more images are added by 20%. This only makes sense for previewing the result like it will be displayed on an autostereoscopic display, because these displays can not seperate the images by 100%. If you only need two images, you can simply change up the Anaglyph function.

You are using an #indexTab to store node handles for retrieving the attached objects. I wonder why you are not using a #nodeTab and directly store the node? AFAIK, handles are randomly assigned and start with 1 after each scene reset, which means that handles will not survive a File > Merge, for example.

Yes, i know that this would be a better solution. But i’m always getting an dependency loop for my planes and the 3D camera. So, this was the only solution i found to identify the objects after scene loading. Maybe, someone can show me how to solve this problem.

If the script is having problems with renderers other than scanline, a check/warning would be good if mr/vray/fR… is currently used

Ok, thats the easiest way But the problem is my “PreRenderFrame” callback, which works fine for all renderers. But only the scanline renderer seams to allow you to change the camera position at rendertime!?

Your other points are interesting as well.
Thanks for your tips.

the camera position thing seems to work okay with Brazil, but you may want to try moving the camera not in #preRenderFrame but in #preRenderEval ?

Good idea, but the same result. Possibly it is a deadend to change the camera position at rendertime.

If someone has a better idea to render the same frame 8 times, like the multipass effect, this would be great.

Thanks for your help.

1 Reply
(@martinb)
Joined: 11 months ago

Posts: 0

Have you considered using a script controller on the camera’s position? I am not sure though changing the camera position between frames with a callback script is such a good idea if you think about motion blur, for example.

I personally only need two stereo views and therefore would prefer to have two normal cameras in the scene that are controlled by a script but can be treated just like normal cameras for which I can submit a normal (batch) render job each.

Eventually, it looks like you are hitting against a limitation in the design of 3ds Max which never was good at dealing with multiple camera views IMHO.

– MartinB

you could call render() locally (and optionally specify the frame, defaults to the current one. For network renders you’d have to submit multiple jobs, changing the camera’s position for each; note that if there’s any animation in the scene, your current method would have problems as well (I think).

 JHN

*Bump

Is this script still available? I’m getting a 404. I’d be interested in checking out that workflow.
Thanks,
-Johan

Is this available anywhere?

Looks like the license at the top of the file allows redistribution – so… v1.03 ‘as is’ available from:
http://www.pointzero.nl/temp/NewSightMultiCam.zip

Note the folder name – it’s only temporary and the file will be dropped eventually. I will, however, remove that file earlier if so requested (regardless of the license allowing it).

Page 2 / 3