LuxCore: Film multiple image pipelines support

Discussion related to the implementation of new features & algorithms to the Core Engine.

Moderators: Dade, jromang, tomb, zcott, coordinators

LuxCore: Film multiple image pipelines support

Postby Dade » Fri Jan 22, 2016 9:49 am

Introduction

LuxCore Film now supports the definition of multiple image pipelines. For instance, with the following configuration, there are 4 image pipelines defined:

Code: Select all
# Film outputs
film.outputs.0.type = RGB_IMAGEPIPELINE
film.outputs.0.index = 0
film.outputs.0.filename = luxball_RGB_IMAGEPIPELINE-0.png
film.outputs.1.type = RGB_IMAGEPIPELINE
film.outputs.1.index = 1
film.outputs.1.filename = luxball_RGB_IMAGEPIPELINE-1.png
film.outputs.2.type = OBJECT_ID

# Film image pipeline plug-ins
# Image pipeline #0
film.imagepipelines.0.0.type = TONEMAP_LINEAR
film.imagepipelines.0.1.type = GAMMA_CORRECTION
film.imagepipelines.0.1.value = 2.2
# Image pipeline #1
film.imagepipelines.1.0.type = TONEMAP_REINHARD02
film.imagepipelines.1.1.type = CAMERA_RESPONSE_FUNC
film.imagepipelines.1.1.name = Ektachrome_320TCD
film.imagepipelines.1.2.type = GAMMA_CORRECTION
film.imagepipelines.1.2.value = 2.2
# Image pipeline #2
film.imagepipelines.2.0.type = TONEMAP_LINEAR
film.imagepipelines.2.1.type = GAMMA_CORRECTION
film.imagepipelines.2.1.value = 2.2
film.imagepipelines.2.2.type = GAUSSIANFILTER_3x3
film.imagepipelines.2.2.weight = 0.15
# Image pipeline #3
film.imagepipelines.3.0.type = OBJECT_ID_MASK
film.imagepipelines.3.0.id = 255
film.imagepipelines.3.1.type = GAUSSIANFILTER_3x3
film.imagepipelines.3.1.weight = 0.3


And you can select the output of image pipeline to show on screen in LuxCoreUI:

ip.jpg


Thanks to this feature, it is now possible to obtain several results out of a single ongoing rendering: gamma corrected and not gamma corrected images (hint: Blender), real-time composting, etc.

Performance

Each pipeline is run only on demand so the definition of multiple pipelines has pretty much no cost.

SDL syntax

The syntax to define each pipeline is:

Code: Select all
film.imagepipelines.<pipeline #>.<plugin #>. *


Notice how the old syntax to define a single pipeline "film.imagepipeline.<plugin #>. *" is replaced by "film.imagepipelines.<pipeline #>.<plugin #>. *". However the old syntax is still supported for compatibility; it will just define a single pipeline.
User avatar
Dade
Developer
 
Posts: 8356
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Re: LuxCore: Film multiple image pipelines support

Postby B.Y.O.B. » Fri Jan 22, 2016 9:56 am

Dade wrote: (hint: Blender)

;) Great.
User avatar
B.Y.O.B.
Developer
 
Posts: 5135
Joined: Wed Nov 10, 2010 4:10 pm
Location: Germany

Re: LuxCore: Film multiple image pipelines support

Postby crosley09 » Tue Jan 24, 2017 2:10 pm

This is an old post, but still referenced in the wiki...

Does this select the pipeline to be used for the film output?
Code: Select all
film.outputs.0.index = 0


(I don't think that the film.output syntax is described in the SDL wiki)
i7 5930k, GTX 980 ti, 32 GB ddr4, 512 GB PCIe SSD...Windows 10
User avatar
crosley09
 
Posts: 199
Joined: Fri Oct 07, 2011 1:00 pm
Location: Indiana, USA

Re: LuxCore: Film multiple image pipelines support

Postby Dade » Tue Jan 24, 2017 2:34 pm

crosley09 wrote:Does this select the pipeline to be used for the film output?
Code: Select all
film.outputs.0.index = 0



Yes, it does.
User avatar
Dade
Developer
 
Posts: 8356
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Re: LuxCore: Film multiple image pipelines support

Postby sharlybg » Wed Jan 25, 2017 2:51 am

Introduction

LuxCore Film now supports the definition of multiple image pipelines. For instance, with the following configuration, there are 4 image pipelines defined:


Can I ask what does mean for non programmer ? don't really understand what it is and how usefull it will be.

Does this have a link with blender filmic ? ( https://github.com/sobotka/filmic-blender).
i7 6700k + 32 Gb DDR4 + 2X R9 390 sapphir nitro.
User avatar
sharlybg
 
Posts: 726
Joined: Tue Nov 02, 2010 10:22 am
Location: Ivory coast

Re: LuxCore: Film multiple image pipelines support

Postby Dade » Wed Jan 25, 2017 3:08 am

sharlybg wrote:
Introduction

LuxCore Film now supports the definition of multiple image pipelines. For instance, with the following configuration, there are 4 image pipelines defined:


Can I ask what does mean for non programmer ? don't really understand what it is and how usefull it will be.


From the rendering process you obtain an image with radiance received by the camera in each pixel. The process of transforming this radiance image in something viewable on a monitor, for instance trough tonemapping/gamma correction/etc., is one image image pipeline. Running an image pipeline transformation is usually very fast and done in realtime.

Starting from the same rendering, you can have multiple outputs in realtime, for instance with different tone mapping settings or one with and one without some special effect like glare or doing some special post processing using the alpha channel, etc. All without re-running the rendering and in realtime.

sharlybg wrote:Does this have a link with blender filmic ? ( https://github.com/sobotka/filmic-blender).


No.
User avatar
Dade
Developer
 
Posts: 8356
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Re: LuxCore: Film multiple image pipelines support

Postby sharlybg » Wed Jan 25, 2017 3:59 am

thanks a lot now i well understand cool features ;)
i7 6700k + 32 Gb DDR4 + 2X R9 390 sapphir nitro.
User avatar
sharlybg
 
Posts: 726
Joined: Tue Nov 02, 2010 10:22 am
Location: Ivory coast

Re: LuxCore: Film multiple image pipelines support

Postby crosley09 » Wed Jan 25, 2017 8:02 am

Also wondering:

Why does...

Code: Select all
# Film outputs
film.outputs.0.type = "RGB_TONEMAPPED"
film.outputs.0.index = 0
film.outputs.0.filename = "RGB_TONEMAPPED.png"
film.outputs.1.type = "IRRADIANCE"
film.outputs.1.index = 0
film.outputs.1.filename = "IRRADIANCE.exr"

# Film image pipeline plug-ins
# Pipeline 0
film.imagepipeline.0.0.type = "TONEMAP_LUXLINEAR"
film.imagepipeline.0.0.sensitivity = 100
film.imagepipeline.0.0.exposure = 0.01
film.imagepipeline.0.0.fstop = 2.8


Return:

Code: Select all
RuntimeError: Syntax error in film.imagepipeline.0.type


??
i7 5930k, GTX 980 ti, 32 GB ddr4, 512 GB PCIe SSD...Windows 10
User avatar
crosley09
 
Posts: 199
Joined: Fri Oct 07, 2011 1:00 pm
Location: Indiana, USA

Re: LuxCore: Film multiple image pipelines support

Postby Dade » Thu Jan 26, 2017 9:57 am

crosley09 wrote:Why does...
Code: Select all
RuntimeError: Syntax error in film.imagepipeline.0.type


??


Your fragment of SDL works fine here (however there is a mistake, see below). What version are you using ? Are you sure it includes the support for multiple pipelines ? Looking at the error, I'm pretty sure it doesn't (it expects the old syntax with only only one pipeline "film.imagepipeline.0.type" instead of "film.imagepipeline.0.0.type").

The mistake is in the "film.outputs.1.index = 0" as it is not applicable to the "IRRADIANCE" AOV and it is just ignored. You can use "film.outputs.<n>.index" only with "RGB_IMAGEPIPELINE" or "RGBA_IMAGEPIPELINE" output type.
User avatar
Dade
Developer
 
Posts: 8356
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Re: LuxCore: Film multiple image pipelines support

Postby crosley09 » Thu Jan 26, 2017 10:07 am

I'm using the unofficial Oct 15 build by Kalel: viewtopic.php?f=30&t=13054
I wasn't sure what was new in the Nov build. Maybe that is the issue?

and since I only have one pipeline for now anyways, i changed to film.imagepipeline.0.type, etc and everything worked.

The mistake is in the "film.outputs.1.index = 0" as it is not applicable to the "IRRADIANCE" AOV and it is just ignored.

This makes sense. thanks.
i7 5930k, GTX 980 ti, 32 GB ddr4, 512 GB PCIe SSD...Windows 10
User avatar
crosley09
 
Posts: 199
Joined: Fri Oct 07, 2011 1:00 pm
Location: Indiana, USA


Return to Architecture & Design

Who is online

Users browsing this forum: No registered users and 1 guest