LuxCore: render engine unification

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

Moderators: Dade, jromang, tomb, zcott, coordinators

LuxCore: render engine unification

Postby Dade » Fri Feb 10, 2017 7:07 am

Introduction

The recent unification of PATHOCL and BIASPATHOCL OpenCL code (viewtopic.php?f=8&t=13129) suggest a rework of how LuxCore engines are named, used and proposed in application like exporters (i.e. LuxBlend, LuxMax, etc.). The is a step that may break the compatibility with the past but it is something better to do first than later.

A single path tracer with few flags

LuxCore path tracers should be now proposed like a single path tracer render engine with few flags:

  • Enable/Disable OpenCL (BIASPATHCPU/PATHCPU Vs BIASPATHOCL/PATHOCL);
  • Enable/Disable tile rendering (BIASPATH Vs PATH);
  • Enable/Disable real-time (RTBIASPATH Vs BIASPATH/PATH);

When PATH is enabled, there should be an additional combo box to pick the sampler.
When BIASPATH is enabled, there should be few additional options about the tile size.

Any other rendering options, I can think to, is now shared among BIASPATH and PATH.

A single bidirectional path tracer

It is quite pointless to use BIDIR without METROPOLIS sampler so it should be the default setup. SOBOL/RANDOM sampler may be still offered as an option (may be, hidden in an advance option panel). Forget BIDIRVM, it will come back only when I, or someone else, will implant the something like http://www.ci.i.u-tokyo.ac.jp/~hachisuk ... m_mcmc.pdf in order to have VM and Metropolis finally work well together.

Changes

The above scheme requires few changes. Some may be even annoying (i.e. breaking the compatibility with the past) but they are are a good step in the direction of simplification, homogenization, unification, etc. The list is:

  • Rename BIASPATHOCL in TILEPATHOCL;
  • Rename BIASPATHCPU in TILEPATHCPU;
  • Rename BIASPATHSAMPLER in TILEPATHSAMPLER;
  • Drop RTPATHOCL;
  • Rename RTBIASPATHOCL in RTPATHOCL;
  • Make TILEPATHCPU works exactly like TILEPATHOCL (at the moment it has still the support for path split, something not supported by TILEPATHOCL);

This list change will lead to BIDIRCPU and a coherent set of different path tracers working as explained in the second paragraph ([RT or TILE or nothing]PATH[OCL or CPU]). If no one has a good reason to not proceed, I will apply this list of changes.
User avatar
Dade
Developer
 
Posts: 8404
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Re: LuxCore: render engine unification

Postby neo2068 » Fri Feb 10, 2017 8:07 am

I think, that this is a good idea and the unification of the renderengines to the main algorithms with reasonable default values will make it easier for beginners and artists to use Luxrender.
i7 5820K, 32 GB RAM, NVIDIA Geforce GTX 780 + GTX 560, Windows 10 64bit, Blender 2.77a
neo2068
Developer
 
Posts: 742
Joined: Sun May 03, 2009 2:11 am
Location: Germany

Re: LuxCore: render engine unification

Postby B.Y.O.B. » Fri Feb 10, 2017 9:19 am

Sounds good to me.
User avatar
B.Y.O.B.
Developer
 
Posts: 5180
Joined: Wed Nov 10, 2010 4:10 pm
Location: Germany

Re: LuxCore: render engine unification

Postby crosley09 » Fri Feb 10, 2017 12:23 pm

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

Re: LuxCore: render engine unification

Postby Piita » Sat Feb 11, 2017 1:30 am

Yep, sounds good.
User avatar
Piita
 
Posts: 611
Joined: Sat Aug 06, 2011 2:09 pm
Location: Finland

Re: LuxCore: render engine unification

Postby tomb » Sat Feb 11, 2017 4:22 am

Good idea
User avatar
tomb
Developer
 
Posts: 2677
Joined: Thu Oct 11, 2007 4:23 pm
Location: Oslo, Norway

Re: LuxCore: render engine unification

Postby sharlybg » Mon Feb 13, 2017 4:43 am

Forget BIDIRVM, it will come back only when I, or someone else, will implant the something like http://www.ci.i.u-tokyo.ac.jp/~hachisuk ... m_mcmc.pdf in order to have VM and Metropolis finally work well together.


This paper sound like Angel music ! can't also stop imagine it on steroids GPU. when nvidia will support opencl 2.0
i7 6700k + 32 Gb DDR4 + 2X R9 390 sapphir nitro.
User avatar
sharlybg
 
Posts: 730
Joined: Tue Nov 02, 2010 10:22 am
Location: Ivory coast

Re: LuxCore: render engine unification

Postby hedphelym » Mon Feb 13, 2017 4:49 am

Sounds good to me too!
User avatar
hedphelym
Developer
 
Posts: 1408
Joined: Mon Aug 18, 2008 7:37 am
Location: Kristiansand Norway

Re: LuxCore: render engine unification

Postby povmaniaco » Mon Feb 13, 2017 6:38 am

Sounds like a lot of work.. indeed.
User avatar
povmaniaco
Developer
 
Posts: 220
Joined: Tue Sep 01, 2009 1:27 pm
Location: Barcelona, Spain

Re: LuxCore: render engine unification

Postby Dade » Mon Feb 13, 2017 7:16 am

I have done:

Dade wrote:
  • Rename BIASPATHOCL in TILEPATHOCL;
  • Rename BIASPATHCPU in TILEPATHCPU;
  • Rename BIASPATHSAMPLER in TILEPATHSAMPLER;
  • Drop RTPATHOCL;
  • Rename RTBIASPATHOCL in RTPATHOCL;


and working on:

Dade wrote:
  • Make TILEPATHCPU works exactly like TILEPATHOCL (at the moment it has still the support for path split, something not supported by TILEPATHOCL);


NOTE: I have renamed any reference to "bias" into "tile", including symbols like BIASPATHSAMPLER and properties like "bisapth.*" into "tilepath.*", "stats.biaspath.*" into "stats.tilepath.*", etc. It should be quiete easy to update any code using LuxCore API by just searching for any occurrence of "bias" string inside the sources.
User avatar
Dade
Developer
 
Posts: 8404
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Next

Return to Architecture & Design

Who is online

Users browsing this forum: No registered users and 1 guest