Hi Octane team,
about implmenting in Octane physical camera lens (rather than perfect thin lens) based on this paper :
https://cg.ivd.kit.edu/publications/201 ... optics.pdf
and this open-source Arnold implementation as a C++ camera shader :
https://github.com/zpelgrims/pota
http://zenopelgrims.com/polynomial-optics-arnold/
I'm wondering :
Do you think the Octane OSL camera node is well suited to try to implement this ?
In your opinion, does it worth the hassle for technical user to give it a try or do you already have something similar on Octane roadmap ?
OSL physical camera
Forum rules
NOTE: The software in this forum is not %100 reliable, they are development builds and are meant for testing by experienced octane users. If you are a new octane user, we recommend to use the current stable release from the 'Commercial Product News & Releases' forum.
NOTE: The software in this forum is not %100 reliable, they are development builds and are meant for testing by experienced octane users. If you are a new octane user, we recommend to use the current stable release from the 'Commercial Product News & Releases' forum.
I have linked this paper because it is implemented for Arnold ( third link ).KeeWe wrote:Since the Paper is rather technical: could you, in short, sum up the benefits?


This is to get more realistic renders based on real camera lens system, opposed to the unrealistic Thin Lens camera we have now,
for more physical distortion, bokeh, vignetting, spectral aberration and even physically based lens flare.
But more generally this is about "polynomial optics", for example here :
http://www.cs.ubc.ca/nest/imager/tr/201 ... ialOptics/

Last edited by calus on Thu Aug 23, 2018 8:33 am, edited 3 times in total.
Pascal ANDRE
- SergKlyosov
- Posts: 126
- Joined: Wed Mar 01, 2017 9:33 am
These gif images seem pretty awesome
Would be great if someone can implement this camera in octane
Would be great if someone can implement this camera in octane
Win 10 64 | RTX 3090 | i9 9980XE | 64GB RAM
- itsallgoode9
- Posts: 896
- Joined: Thu Apr 03, 2014 9:04 am
- Location: New York City
- Contact:
yeah this would definitely be useful. alot of my work involved matching my renders to high resolution photography taken with hassleblads etc and I have to do alot of "dumbing down" my renders in post to make sure they match the non perfect nature of an actual camera/lens. Having a much more accurate to real life camera model would be much better than approximating it in post.
- Jolbertoquini
- Posts: 1067
- Joined: Sun Aug 31, 2014 7:08 am
- Location: London
- Contact:
+1000
Octane Render for Maya.
https://vimeo.com/jocg/videos
https://www.linkedin.com/in/jocgtd
http://www.hmxmedia.com/
--------------------
Join MAYA OCTANE USERS Skype discussion here :
https://join.skype.com/LXEQaqqfN15w
https://vimeo.com/jocg/videos
https://www.linkedin.com/in/jocgtd
http://www.hmxmedia.com/
--------------------
Join MAYA OCTANE USERS Skype discussion here :
https://join.skype.com/LXEQaqqfN15w
I looked at this a while ago but didn't get very far. The first problem is that OSL cameras in Octane basically only tell the renderer where to start tracing a ray from and which direction to send it in; The OSL camera never gets a sniff of what colour that ray actually is, so it can't do different things for different wavelengths of light. This is a big limitation for making physical cameras, because you'll never get any chromatic aberration or related effects.
You can, however, do cool stuff with simulating other aspects of lenses in OSL and Octane. Check out my fish-eye lens ( viewtopic.php?f=36&t=68487 ) and my tilt lens ( viewtopic.php?f=36&t=68668 ) in the Lightwave forum.
If anyone has any requests for any particular optical traits then I'd be happy to take a look at doing it in OSL.
Cheers,
James.
You can, however, do cool stuff with simulating other aspects of lenses in OSL and Octane. Check out my fish-eye lens ( viewtopic.php?f=36&t=68487 ) and my tilt lens ( viewtopic.php?f=36&t=68668 ) in the Lightwave forum.
If anyone has any requests for any particular optical traits then I'd be happy to take a look at doing it in OSL.
Cheers,
James.
- Jolbertoquini
- Posts: 1067
- Joined: Sun Aug 31, 2014 7:08 am
- Location: London
- Contact:
Good to know thanks James, is that a possibility to have custom bokeh with OSL cameras? I always wondering then use the rack with a plane mesh with a hole in, but more something to plug a texture to modify the bokeh.baltort wrote:I looked at this a while ago but didn't get very far. The first problem is that OSL cameras in Octane basically only tell the renderer where to start tracing a ray from and which direction to send it in; The OSL camera never gets a sniff of what colour that ray actually is, so it can't do different things for different wavelengths of light. This is a big limitation for making physical cameras, because you'll never get any chromatic aberration or related effects.
You can, however, do cool stuff with simulating other aspects of lenses in OSL and Octane. Check out my fish-eye lens ( viewtopic.php?f=36&t=68487 ) and my tilt lens ( viewtopic.php?f=36&t=68668 ) in the Lightwave forum.
If anyone has any requests for any particular optical traits then I'd be happy to take a look at doing it in OSL.
Cheers,
James.
https://digital-photography-school.com/ ... eh-shapes/ is working doing the same thing on Octane today I saw some people at C4D do it a lot.
Cheers,
JO
Octane Render for Maya.
https://vimeo.com/jocg/videos
https://www.linkedin.com/in/jocgtd
http://www.hmxmedia.com/
--------------------
Join MAYA OCTANE USERS Skype discussion here :
https://join.skype.com/LXEQaqqfN15w
https://vimeo.com/jocg/videos
https://www.linkedin.com/in/jocgtd
http://www.hmxmedia.com/
--------------------
Join MAYA OCTANE USERS Skype discussion here :
https://join.skype.com/LXEQaqqfN15w
You can implement a custom bokeh in an OSL camera, this is however not an easy problem for arbitrary shapes.
Use
This is a basic example to sample a point on a disk:
Use
getAttribute("camera:dofrandom", dof_uv)
to get random numbers you can use to sample a point on your lens, and then transform this point to the desired shape.This is a basic example to sample a point on a disk:
Code: Select all
float dof_uv[2];
getattribute("camera:dofrandom", dof_uv);
// convert to point on circle:
float dofsn, dofcs;
sincos(dof_uv[1] * M_2PI, dofsn, dofcs);
float dofR = Aperture * sqrt(dof_uv[0]);
// assign pos
point pos = point(dofcs*dofR, dofsn*dofR, 0);