Page 1 of 2

octane renderes vectron and spectron

Posted: Sun Aug 19, 2018 4:44 am
by patrickawalz
octane render recently announced their 2018.1 release features (including something they call "vectron" and "spectron") while spectron is really exciting to me (it includes support four rendering fluorescence and polarization), vectron is merely an implementation of something I saw originally as an assignment in the Stanford rendering course (distance estimators).

I guess this topic might fall under cgi tech news but it just struck me as funny that they are tossing out a fancy name for something so simple.

on the polarization side, I happen to have the source code for a version of upbp (unified points beams and paths?) that supports polarization. upbp is based off of smallvcm which is what our engine in lux is currently based off(albeit with a lot of modifications).

if we would like to investigate someday adding polarization support in lux this would be the best example of how to implement it.

If the original authors are willing to share and we were interested in looking into adding the feature, I could share the code as an example of a direction to move

Re: octane renderes vectron and spectron

Posted: Sun Aug 19, 2018 1:31 pm
by fluxfish
like this: http://www.cgchannel.com/2018/08/otoy-u ... er-2018-1/
patrickawalz wrote: Sun Aug 19, 2018 4:44 am ..but it just struck me as funny that they are tossing out a fancy name for something so simple.
isn't that nowadays way of marketing anything, give something whatever it is, old,new,simple,.. a fancy name, sort of a product-name, and promote it, use it as often as possible and make people to remember it, to use it, to repeat it. Maybe even trying to establish wordings. It is.
People want features, people want to get catched, some want to use something special, some want to feel a bit special, and at least at special prices - so any wow-feature needs a virgin awesome-(c)-name.
Just talking generally.

Re: octane renderes vectron and spectron

Posted: Sun Aug 19, 2018 5:30 pm
by FarbigeWelt
adding polarization support in lux
What would be the use case of this? Do you like to simulate absorbance of optical active substances? Or liquid crystal displays? :?:
I rather suggest to implement diffraction to simulate soap bubbles, compact discs or butterfly wings. The pattern of a single wave length laser reflected by a diffraction grating may also look interesting.

Re: octane renderes vectron and spectron

Posted: Sun Aug 19, 2018 6:17 pm
by lacilaci
FarbigeWelt wrote: Sun Aug 19, 2018 5:30 pm
adding polarization support in lux
I rather suggest to implement diffraction to simulate soap bubbles, compact discs or butterfly wings.
Are you sure you'd ever need a realistic render of a CD?

On other hand, if you octane will be able to turn a mesh into "vectron" that has no memory footprint....

But then again, otoy and endless promisses of future of rendering. There's no official release of Octane 4 and we're looking on what comes after that...

Re: octane renderes vectron and spectron

Posted: Sun Aug 19, 2018 7:12 pm
by FarbigeWelt
lacilaci wrote: Sun Aug 19, 2018 6:17 pm Are you sure you'd ever need a realistic render of a CD?
Good point. It is sort of outdated, isn't it. :D

Re: octane renderes vectron and spectron

Posted: Sun Aug 19, 2018 11:03 pm
by patrickawalz
polarization and diffraction isn't just good for rendering a CD tho. its also useful for the rendering of rainbows ( Jensen did a paper several years ago about extending mie scattering to accurately render double rainbows), but also for glowing solid objects(wilkie), birifringence in crystals, fluorescence and phosphorescent effects just to name a few.

you can look at almost any ofthe results from wilkies papers on polarization aware rendering and see that including it adds another layer of realism to rendering images

the method I mentioned also relies heavily on c++ templates as an abstraction between standard rgb rendering and is polarized counterpart. the method could also be extended to allow for actual spectral rendering (not that there is anything wrong with dades current implementation, it's actually quite novel)

Re: octane renderes vectron and spectron

Posted: Sun Aug 19, 2018 11:44 pm
by B.Y.O.B.
patrickawalz wrote: Sun Aug 19, 2018 11:03 pm the method I mentioned also relies heavily on c++ templates
Sounds like it would be rather complicated to translate to OpenCL?

Re: octane renderes vectron and spectron

Posted: Mon Aug 20, 2018 2:38 am
by patrickawalz
B.Y.O.B. wrote: Sun Aug 19, 2018 11:44 pm
patrickawalz wrote: Sun Aug 19, 2018 11:03 pm the method I mentioned also relies heavily on c++ templates
Sounds like it would be rather complicated to translate to OpenCL?
I haven't honestly looked atthe opencl side of the engine. the way this is accomplished on the CPU side is thru templating which cl doesn't have.

the CPU side abstracts out an rgb or spectral intensity and uses it to fill either a stokes vector or mueler matrix. these are stored in importance, light, or attenuation structures that store extra information (mainly the transform used to rotate the matrix and vectors to make polarization rendering possible) and all operators used to manipulate them (basically copying all operators currently implemented on spectrum)

the attenuation, importance, and light structures also have factory methods to initialize the appropriate information for diffuse reflection, rough (transmittance and reflection), etc.

traditional rgb or spectral rendering is then implemented on top of this abstraction replacing the stored Mueller matrices and stokes vectors with plain rgb or spectrum colors

Re: octane renderes vectron and spectron

Posted: Mon Aug 20, 2018 5:49 am
by FarbigeWelt
patrickawalz wrote: Sun Aug 19, 2018 11:03 pm polarization and diffraction isn't just good for rendering a CD tho. its also useful for the rendering of rainbows ( Jensen did a paper several years ago about extending mie scattering to accurately render double rainbows), but also for glowing solid objects(wilkie), birifringence in crystals, fluorescence and phosphorescent effects just to name a few.
Sounds very exciting. Well, if simulation respects wave length, amplitude, polarization and phase shift including dispersion and diffraction one is able to simulate holographics. But then material should also be able to be photo sensitive too means be able to change i.e. absorbance depending on ray counts and energy. And result should be able to exported somehow.


I think single rainbows are achiveable with current implementation of dispersion. I already thought about to setup a scene simulating rainbow with particle system and use of water aka dispersive glass material. Will have a look at it.

Re: Use case, Rainbows

Posted: Tue Aug 21, 2018 8:37 am
by FarbigeWelt
🌈 Rainbow: This tipic is actually much complexer than ny basic understanding of optics considers it. Although I was ble to simulate a faint noisy rainbow with current luxcore it might be not possible to render an acceptable image.

Who ever is interested in that matter I suggest to look at this paper:
http://graphics.ucsd.edu/~henrik/papers ... inbows.pdf

And don‘t forget the angle of 42 degree.