forward raytracing algorithm

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

Moderators: Dade, jromang, tomb, zcott, coordinators

forward raytracing algorithm

Postby jantschek » Tue Jan 10, 2017 5:55 am

Hello,

may it be possible to integrate a pure forward (lightsource to camera) algorithm into Lux Render?
I think it will speed up rendering time a lot, especially in the case that you're working with tiny light sources like LEDs within huge complex objects.

From my understanding the number of useless traced rays should be reduced in those cases.
Of course such an engine won't work with infinte light sources.
Usually also an integration cone for the camera pixels will be needed to define kind of a tolerance around each image pixel that collects light (and creates a more or less blurry result image).

I'm looking forward to your feedback.

BR
Lux Render Version: 1.7 (in classic mode)
Exporter: Blender
Exporter Version: 2.79
Operating System: Windows 7 X64
jantschek
 
Posts: 187
Joined: Thu Jul 09, 2015 11:02 am

Re: forward raytracing algorithm

Postby B.Y.O.B. » Tue Jan 10, 2017 6:07 am

There's a light tracer in LuxCore (available via LuxCoreUI). It's called LIGHTCPU.
You can see it in action here: https://youtu.be/jk-N4f9ze4k?t=59s
But I fear that such an engine does not have the benefits you are hoping for, otherwise everyone would be using it ;)
User avatar
B.Y.O.B.
Developer
 
Posts: 5095
Joined: Wed Nov 10, 2010 4:10 pm
Location: Germany

Re: forward raytracing algorithm

Postby jantschek » Tue Jan 10, 2017 6:28 am

... thanks for quick answer.
I've checked the wiki regarding that engine - without success.
Do you have any further information about this engine?

I can't find the engine, neither in luxcore nor in lux classic dropdown menu.

Let's say you're not interested in environmental light, what's the negative aspect?
Lux Render Version: 1.7 (in classic mode)
Exporter: Blender
Exporter Version: 2.79
Operating System: Windows 7 X64
jantschek
 
Posts: 187
Joined: Thu Jul 09, 2015 11:02 am

Re: forward raytracing algorithm

Postby B.Y.O.B. » Tue Jan 10, 2017 6:39 am

jantschek wrote:I can't find the engine, neither in luxcore nor in lux classic dropdown menu.

Try with LuxCoreUI:

Unbenannt.png

jantschek wrote:what's the negative aspect?

Wasted rays I would think. If you shoot rays from the camera, you can be sure that everyone lands in the image.
If you shoot from lights, a lot of rays won't land in the area that the camera sees.

jantschek wrote:From my understanding the number of useless traced rays should be reduced in those cases.

When tracing rays from the camera, you don't shoot for lightsources "blindly".
Instead, you do direct light sampling: let's say the first camera ray hits a surface. Now we pick a lightsource from the scene and construct a vector hitting it exactly (hitpoint - lightposition).
By the way, for a light tracer you need to do the exact opposite (connect hitpoint with cameraposition), otherwise you would never hit the camera (which is a point, infinitely small)).

I've never implemented such an engine though, so take it with a grain of salt.
User avatar
B.Y.O.B.
Developer
 
Posts: 5095
Joined: Wed Nov 10, 2010 4:10 pm
Location: Germany

Re: forward raytracing algorithm

Postby jantschek » Tue Jan 10, 2017 6:50 am

I'll give it a try... thanks for your feedback. Before I have to learn lux core I guess.
Do you know a way to calculate from volume absorption coefficent to a corresponding RGB and absorption scale value?

In my world the route from light source to camera is quite complicated from time to time.
There are mostly more than 50 interactions for each ray before camera or light source could be found.
Lux Render Version: 1.7 (in classic mode)
Exporter: Blender
Exporter Version: 2.79
Operating System: Windows 7 X64
jantschek
 
Posts: 187
Joined: Thu Jul 09, 2015 11:02 am

Re: forward raytracing algorithm

Postby B.Y.O.B. » Tue Jan 10, 2017 6:55 am

The algorithms that could be interesting for you are SPPM and BidirVM (Bidir with Vertex Merging). Did you try them already? SPPM is available in Classic Lux, BidirVM in LuxCore.

You should also try Mitsuba Renderer in my opinion, it is a renderer focused on research and has some of the worlds most cutting-edge render algorithms.
(By the way their exporter is based on LuxBlend, so you don't have to relearn much)

jantschek wrote:Do you know a way to calculate from volume absorption coefficent to a corresponding RGB and absorption scale value?

I can't help you there.
User avatar
B.Y.O.B.
Developer
 
Posts: 5095
Joined: Wed Nov 10, 2010 4:10 pm
Location: Germany


Return to Architecture & Design

Who is online

Users browsing this forum: No registered users and 2 guests