(L) [2012/02/04] [tby jbikker] [Re: Reflect / Brigade2] Wayback!>> toxie wrote:awesomeness!
Thanks. [SMILEY :)]
The game won 'Best Art Award' yesterday at our Game Release Party. It's a small party, but still.
A video without the copyrighted music is now also available on youtube: [LINK http://youtu.be/GkNlec-_FN8]
(L) [2013/12/29] [tby lion] [Re: Reflect / Brigade2] Wayback!reflect now de-noised  [SMILEY :D]
[LINK http://www.youtube.com/watch?v=oNSIRTQAzA4]
full 1024x600 resolution, 30+fps on single gtx680
(L) [2013/12/30] [tby lion] [Re: Reflect / Brigade2] Wayback!jbikker, all thanks to you, Dade, lux render, arauna and brigade  [SMILEY ;)]
My contribution quite small. I'm sure such denoising can be easily integrated in any path trace like brigade\arauna2.
Idea is very simple: we separate diffuse color and light power (which is noisy). And we have such light picture:
[IMG #1 Image]
Then we filter light picture and combine with diffuse color back.
What you see in video is simple blur, but I'm experimenting with more smart blur algorithm. In simple words: we build pyramid of re-sized images and use it to direct blur in light points cloud location, also take into account near pixels to decide how to fade current pixel.
This must reduce edge effects, but even simple blur I like much more than unfiltered image.
Also here some tweaks for use path trace in game engine:
1. Do not follow standard renders approach to make image better when camera not moved, you have fixed amount of passes and that's it.
2. Do not change initial random seed of pixels for next frame, keep initial seed for pixel forever, but use different seeds for different pixels of one frame. This dramatically reduces annoying noise-flickering with low passes number.
3. Also I recommend to move everything to opencl\glsl, because game must support not only nvidia.
4. We break DOF by rule 2, my experiments shows that we do not have enough time for appropriate path trace DOF  with single GPU, other techniques must be used to achieve better quality. But if we want - we must use different random seeds per pixel for ray generation in exception to rule 2.
I can contribute such changes to brigade if you want   [SMILEY :lol:]  Despite the fact that you can easily do it by yourself  [SMILEY ;)] .
PS: I can do opencl porting too [SMILEY :)]
[IMG #1]:
(L) [2013/12/31] [tby lion] [Re: Reflect / Brigade2] Wayback!Here visual explanation of smart blur algorithm:
[IMG #1 Image]
Of course it's not so advanced as classic renders sobol or metropolis samplers, but it's simple and fast, so we can extend blur window and achieve better quality on low spp and high speed.
[IMG #1]:
(L) [2014/01/02] [tby lion] [Re: Reflect / Brigade2] Wayback!Also about diffuse color\light separation:
On first hit always do all diffuse\reflection\refraction paths if material have it, do not take it by random, no matter on spp (otherwise we need to denoise primary diffuse picture too). Only primary diffuse hits (from each required path) goes to diffuse picture, all other ways, which include random rays directions, goes to light picture.
Of course we blur caustic effects this way, but we can blur less in such places. And again - I like filtered image much more than such noise anyway =)