Chaos Corona Forum
General Category => General CG Discussion => Topic started by: cecofuli on 2015-05-20, 12:01:34
-
Hello,
yesterday, for fun, I tried to create a simple interior scene.
I know, it isn't so complex, but with white walls and some glossy objects, it looks interesting and easy to debug.
I wanted to compare the noise level between VRay 3.0 (QMC + LC) and Corona (PT+HD)
My goal was to keep the render time below 10 minutes.
What do you think?
You can download both *.MAX SCENE, optimized for 9 minutes
(http://www.francescolegrenzi.com/Temp/Corona/001_VRay_vs_Corona/Comparison.png)
-
Without too much fanboyism ;) I would justify it by saying that V-Ray is much more biased. There are also some visual differences (reflection on the top teapot for example). And for example, what was the total supersampling in V-Ray and Corona? V-Ray is adaptive. Etc etc etc.
Trying to optimize the Corona scene further sounds like an interesting exercise!
-
I'd say it's a good example of someone who actually knows how to set up vray ;) As you can see in the renderstamp, adaptivity is making the difference here (2-64). Subdivisions are set up properly, so vray saves a lot of time that corona is spending on pixels for more or less no visual difference. Imho that has nothing to do with bias.
The images you made here are reflecting my experience: If you really know how to use vrays adaptive dmc sampler you will probably always beat corona in noise levels.
If you use the fixed sampler in Vray and kill the dmc, Corona will be faster in pure path tracing speed (pt + LC/UhdCache) - which obviously doesn't make any sense.
-
Maru, no fanboyism in this thread, please, ok?
You can see small differences between reflection and refraction because I didn't spend time to teaching the different shaders. But, this isn't the problem.
The problem is in the level of noise. It's so clear.
You are right, V-Ray is adaptive. But, Choasgroup did a good job with VRay 3.0 and QMC.
Yes, it's a good exercices. But, how can we optimize Corona? =) We have not so much parameters to "touch"
In VRay we can play with AA, subdivs, noise threshold, etc...
But, I prefer to work with Corona, also if it's a little bit nosier than VRay. Why?
Because I'm always sure about it's quality. And I have no to fight hours (yes, hours) to get a better ration quality/time.
-
I think it's really good example. Just one thing that came to my mind. Did you enable reflective and refractive caustics for GI in Vray? Under teapot you can see reflective caustics in Corona render, but you can not see them in Vray render. Reflective caustics can generate a lot of noise :)
-
DeadClown: I already spoke with Ondra, and he said me your same conclusion.
Rawalanche: no, you are right! I forgot (refractive GI caustics is ON by default). I do it and I'll post the render.
Also a question. The teapot in the ceiling (Corona Version) seems that flights. There is no shadows. Isn't strange?
-
Also a question. The teapot in the ceiling (Corona Version) seems that flights. There is no shadows. Isn't strange?
Yes, that's because the glass material in Corona has disabled caustics, and therefore generates transparent shadows. It's similar to "affect shadow" refraction option of VrayMTL. It just does it little differently. Just enable caustics for glass and you will have the same result :)
-
OH, i found one thing that can make HUGE difference. In Vray, you use light portal with Simple mode. This means that the light portal ignores everything that is behind the window, and instead projects light straight from environment map. Where as in Corona, light is actually physically bounced from the ground plane you have outside, which is a lot more expensive to compute. So to make comparison fair, either disable simple mode for Vray portals, or remove exterior ground in Corona scene.
-
Okay, so this is the approach i used:
First, i opened the scenes and rendered them exactly as they are to compare relative performance of my computer VS yours:
Vray version on my PC clocked at 5m 32s
(https://forum.corona-renderer.com/index.php?action=dlattach;topic=8160.0;attach=31844)
And Corona version did at 6m 52s while also being noticeably noisier:
(https://forum.corona-renderer.com/index.php?action=dlattach;topic=8160.0;attach=31846)
Now, i did following steps to unify conditions for both renderers so we can do objective comparison:
In Vray scene:
- Enabled Reflective caustics to match scene difficulty closer to Corona
- Enabled Reflect on backside option in refractive materials so that Vray computes internal reflection same way as Corona.
After these changes, Vray render took 6m 45s while noise level remained pretty much the same:
(https://forum.corona-renderer.com/index.php?action=dlattach;topic=8160.0;attach=31848)
In Corona scene:
- Removed ground plane to match scene conditions to Vray SkyPortal simple mode
- Decreased blue glass refraction glossiness to better match vray
- Increased skylight turbidity to better match Vray sky model
- Enabled refractive caustics to better match the vray render
And i did also following steps in attempt to optimize Corona:
- Redone portal lights to be sure they are placed correctly
- Used bucket renderer to take advantage of adaptivity
- Decreased MSI to 10 (We don't have as many options to tweak speed as Vray, but we still have some like this one :))
The resulting render took 6m 34s (about 10s less than Vray under identical conditions) and achieved very similar noise level to Vray output:
(https://forum.corona-renderer.com/index.php?action=dlattach;topic=8160.0;attach=31850)
Scene file is attached as CoronaBetter.rar
EDIT: Also attached 2012 version of the scene as well. I hope it won't mess up settings.
-
About my scene, I just
VRAY SIDE:
- disable SkyPortal Simple option
- Enable reflective GI
11 min 30 seconds
CORONA SIDE:
- reduce blue glass glossiness
11 min 32 sec
I didn't take care about color sky (no influences on noise level)
I forgot to enabled refractive caustics on glass material to better match the VRay render. But, I think, the impact on noise level is not so much.
I didn't want to delete the ground floor, because, usually, in real project, I have it.
With your nice test we can see how a Corona Bucket render and his adaptability can help a lot Corona.
(http://www.francescolegrenzi.com/Temp/Corona/001_VRay_vs_Corona/Comparison_2.png)
-
Could you try my scene? Without any modifications, just render it as is. It's attached below my post.
EDIT: Here's also scene with ground plane added back.
-
Here is my attempt. I don't have V-Ray so I just checked how long it takes to render the original Corona scene "as is" - 07:08 and then tried to optimize the settings.
I did the following:
-disabled render elements - didn't seem to change time
-set pass limit to 50 (do we really need 110 here?), MSI to 10, and adjusted gi/aa and lsm to have similar noise level - 05:09
-set pass limit even lower - 32 - and adjusted gi/aa and lsm again - 04:15
-set MSI back to 20 to see what time difference it causes (because it clearly changes appearance) - 04:28
Maybe there is slightly more noise than before so it would require a bit more GI samples, but a jump from 7 to 4,5min is pretty big, right? If you are using adaptive supersampling in V-ray (2-64), then why set it in Corona to 110 passes? Also, I guess you didn't use default settings in Vray, and you used defaults in Corona - this is a bit unfair. I was kidding about the fanboyism in the first post, but please correct me if I'm making some stupid mistakes here.
-
Well, you mainly moved the camera out of place. So now a lot more space is occupied by very easy to compute gray material, and those computationally expensive glass materials take a lot smaller area of the overall frame. That can shift the results significantly.
-
FFFFFFFUUUUU, sorry. This is because I don't have Vray and the camera loaded upside-down, I had to create a new on in the same place and rotate it. Could some good soul re-save the scene with a standard camera?
-
Maybe there is slightly more noise than before so it would require a bit more GI samples, but a jump from 7 to 4,5min is pretty big, right? If you are using adaptive supersampling in V-ray (2-64), then why set it in Corona to 110 passes? Also, I guess you didn't use default settings in Vray, and you used defaults in Corona - this is a bit unfair. I was kidding about the fanboyism in the first post, but please correct me if I'm making some stupid mistakes here.
Sorry to say that but this is exactly why those threads always become useless after a short while.
If you'd really want to compare Vrays 64 max to corona you'd have to increase corona passes to 4096 - vray's is subdivision, thus 62^2 = 4096 passes (reachable maximum). So much for fair comparison. Vray's strength is adaptivity, and none of the "possible" improvements posted here to make corona faster are actually making any sense if you want to compare it 1:1 (whatever this should be).
If you really want to make corona so much faster, decrease the albedo to a bare minimum and crank up the exposure, wouldn't make the discussion much worse...
And btw, using defaults are useful for a settings-limited renderer like corona but you cannot expect anyone to use vray defaults (for reasons vray users know).
-
DeadClown, this thread is just for fun.
I don' t want to say "VRay is best, Corona is the best etc...".
Just share some experiences.
We know that Corona has no adaptivity.
So, with the actual version of corona, I would liked to see what we can do.
for example, Rawalanche suggestion is a good idea (Bucket mode) =)
-
FFFFFFFUUUUU, sorry. This is because I don't have Vray and the camera loaded upside-down, I had to create a new on in the same place and rotate it. Could some good soul re-save the scene with a standard camera?
In my scene (attached under my post), i replaced the Vray camera with native one, so grab it :)
-
And btw, using defaults are useful for a settings-limited renderer like corona but you cannot expect anyone to use vray defaults (for reasons vray users know).
My point was, that if you devoted some time to find optimal settings in vray, then why not do the same with corona instead of using defaults?
-
Maybe there is slightly more noise than before so it would require a bit more GI samples, but a jump from 7 to 4,5min is pretty big, right? If you are using adaptive supersampling in V-ray (2-64), then why set it in Corona to 110 passes? Also, I guess you didn't use default settings in Vray, and you used defaults in Corona - this is a bit unfair. I was kidding about the fanboyism in the first post, but please correct me if I'm making some stupid mistakes here.
Sorry to say that but this is exactly why those threads always become useless after a short while.
If you'd really want to compare Vrays 64 max to corona you'd have to increase corona passes to 4096 - vray's is subdivision, thus 62^2 = 4096 passes (reachable maximum). So much for fair comparison. Vray's strength is adaptivity, and none of the "possible" improvements posted here to make corona faster are actually making any sense if you want to compare it 1:1 (whatever this should be).
If you really want to make corona so much faster, decrease the albedo to a bare minimum and crank up the exposure, wouldn't make the discussion much worse...
And btw, using defaults are useful for a settings-limited renderer like corona but you cannot expect anyone to use vray defaults (for reasons vray users know).
I don't think these threads always need to turn into pissing contests unless someone starts to directly imply they should :)
They can remain objective as long as the mistakes in testing methodology are not made.
So first of all, we are not comparing renderers at identical settings, but we are comparing visual quality at a given rendertime. If there was 40 or 4000 AA rays shot does not matter as long as both pictures look visually good, meaning there are no obvious differences in quality. Nice example of quality difference is absence of reflective caustics in Cecofuli's first render. That's kind of aspect that should not be left out, but AA sampling is the opposite.
And sure vray can eventually cast all 4096 rays per pixel, but it rarely does. I actually have exterior scene with car here at work, which has coincidentally 64 subdivs as max value, and you would not believe how long can one bucket, even as small as 16*16px take, when it stumbles upon direct sunlight reflection. Even 10 minutes when it comes to it. So when Vray finally reaches some area that needs those 4096 rays, it will take quite long to crunch it.
What point would be comparing identical render settings of renderers that do not have identical settings? That would not be senseful comparison at all. Senseful comparison in this case can only be comparing visual quality at fixed time, or comparing time it takes to reach similar visual quality. Not comparing how many rays each of the renderers shot, because this is attribute that does not have direct effect at quality of the output. What good is it if Vray wasted hundreds of AA samples somewhere in the scene when perceptual AA quality ends up indistinguishable from Corona output that used only dozens of AA rays?
-
Well, I didn't want to be the party pooper here, so sorry if that was the case. I simply forget every time that I should probably keep out of discussions like that. My problem was that I had the impression that everyone tried to get an image matching the vray one as close as possible (better speed, less noise) when it would actually be a lot easier to render a corona image with "best possible settings" and let someone do a highly optimized vray version. You could easily squeeze some minutes out of the vray one (still using Bf etc)
But as I said, I should keep myself out of those things ;)
-
Well, now there is a version of this scene in Corona, that seems to be pretty much 50:50 with Vray. Little more noise here, little less noise there. I don't think i could optimize it significantly more, so now it's possible to start squeezing some minutes out of the Vray one :) But of course only of quality remains on par with corona (no reflective caustics disabling, etc...) :)
-
Ok, I was able to have the same rendering time 11min 40 sec in Corona, in Bucket mode (16, 16 0.03)
Nothing changed. In Corona everything is as before: I have a plane outside and the glasses have caustics ON.
VRay has less noise and the differences, in Corona, bethween progressive and bucket isn't so big.
Now, the shadows under the torus are black, and not green, like in VRay.
PS: I think, if we reduce MSI from 20 to 10, I'm able to remove a little bit of noise, as Rawalanche did.
(http://www.francescolegrenzi.com/Temp/Corona/001_VRay_vs_Corona/Comparison_3.png)
-
Ok, my last try. The original file by Rawalanche (07:17) vs buckets (05:34).
-
What is the conclusion, Is corona really faster than VRAY?
-
"PS: I think, if we reduce MSI from 20 to 10, I'm able to remove a little bit of noise, as Rawalanche did" = aaaand you also cut off quite a bit of GI from the sun...
-
Ok, my last try. The original file by Rawalanche (07:17) vs buckets (05:34).
Afaik my file had buckets set up too :)
-
What is the conclusion, Is corona really faster than VRAY?
Conclusion is that renderer code is only about 60% of the average renderer speed factor, remaining 40% of the factor are skill of the user using it. So Vray used by skilled user can be a lot faster than Corona used by unskilled one, and vice-versa :)
-
In my opinion, if you use VRay in IM+LC, yes (obviously)
if you use QMC+LC, it depends.
In this simple example my answer is YES. But, as I wrote, it's simple.
It's easy to tweak one light and two shaders to obtain the best rendering time and less noise as possible.
For this scene, I did many tests to get the best ratio between anti-aliasing, subdivision, noise. I needed to look at render elements to understand better the noise etc...
But, if you have complex scene, with +50 shaders, +30 lights, you have to spend hours to understand why you had some noise in some areas, or why a single bucket stays 10 minutes in the same place, etc...
With Corona, you hadn't do that, never. Just work, click render and you are 99% sure about the final result.
I prefer to work to create a new location, instead t se correctly a renderer, by doing 30 test-render
And, often, it's faster than V-Ray (often because, at the end, you are tired to make 20 render test or you don't understand well how to solve some trouble).
-
In my eyes, a comparison like this misses the point. Are we going to applaud a 10 seconds render that lacks everything that makes it visually pleasant? The quality differences here are quite noticeable and range from subtle shades in the shadows to quite big differences in reflections and refractions, the result from Corona is just more pleasant even in a simple example like this.
I would grant Corona 5 minutes more solely for the fact that it will have more 'depth'. Since these things are so subtle they can't really be expressed in numbers and render times...
For me it's something else that's impressive here: to see how much adaptive sampling can help to get rid of noise. Then again, a real-world camera will almost always show more noise.
-
I agree with you pokoy: adaptive sampling is very important!
In addition, each one will read this test as he wants.
There are users who want as little noise as possible, others users need "deeper" rendering, even with some noise.
There are those who, instead, needs a quick setup without too much trouble, regardless of noise and depth.
-
"a real-world camera will almost always show more noise"
Oh come on.. what camera, what you are shooting, what's the purpose... more noise than what??
Do you want to compare your renders to a smartphone photography or to a phase one or hasselblad photo with a serious lens and ligting setup all done by a pro?
I don't care about some of the noise going on... but seriously... what do you mean by a real-world camera with noise?? I'm all good with a noise levels of a ISO 100 or less done with a pro lens and at a reasonable shutter speed but none of the renders in this thread don't match that quality...
Now I don't want to bitch about quality and comparing stuff to vray cause it doesn't make sense unless corona has some adaptivity going on and primary GI biased solution for fast lighting previews and handles caustics possibly dispersion well also a dedicated skin shader and hair shading would be nice and much more that is not just present yet in corona..
Corona does goddamn good job in what it does and I hope it will get even better and I personally don't want it to be another vray I want something easier to use and much better possibly...
I get that there is possibility to compare under certain circumstances, controlled conditions these two renderers but really.. If I would need a character rendering corona is outta game no matter the speed... and again.. If I need fast setup but don't care about times too much corona is my tool of choice..
Until two renderers aren't capable of the same things we are not comparing apples to apples sorry... it's like with arnold, arnold doesn't have cached GI solutions.. how can you compare it with interior renderings if it's all brute force?? Why would you even compare PT+PT in corona and arnold when you can use PT+UHD in corona?
When we are talking archviz, vray is still a beast and you can rely on it! Corona is still a newcommer but very capable one... For me the selling point is ease of use and reasonable rendertimes...
-
"a real-world camera will almost always show more noise"
Never thought I would see this outside of maxwell fan forum :D
-
For me the selling point is ease of use and reasonable rendertimes...
for me the same. Corona is easy to use. About speed, it's not too bad.
Waiting adaptive sampling and some good, robust primary caching method.
-
"a real-world camera will almost always show more noise"
Never thought I would see this outside of maxwell fan forum :D
Not sure what you mean... Give me an example so I can check my wording to be compliant with what you expected.
What I'm saying is that if you go out with your camera and shoot stuff with the conditions mostly given (no additional light setup) you end up with noise in the image no matter what, and even if you take the high-end gear + a light setup, a photograph will never be noise free. But that's not what we're discussing here.
The problem with the examples from Vray is - again, for me, not sure how they'd say it on another forum - that you end up with a completely noise-free wall next to a noisy object for example. It just doesn't look natural. Adaptivity should do its work on areas that take longer to sample to achieve a level of noise matching the rest of the image. It's more a balancing than completely removing any noise.
I agree though that, after all, it's probably a personal preference and the need for entirely noise-free images will depend on what the desired outcome is.
-
What I'm saying is that if you go out with your camera and shoot stuff with the conditions mostly given (no additional light setup) you end up with noise in the image no matter what, and even if you take the high-end gear + a light setup, a photograph will never be noise free. But that's not what we're discussing here.
The problem is that path tracing produces a different type of noise than real world cameras, because the direction of light particles is reversed during simulation. If you trace light particles from light in light tracing algorithm (not paths from camera in path tracing), you get a different type of noise which is much more pleasant - in that case I would agree with your argument. But light tracing is not practical algorithm (although I have it implemented in Corona).
tl;dr: ray tracer noise is different from real camera noise, you are better off rendering a clean image and adding different noise in postpro.
-
Another, common problem in V-Ray is that the noise is NOT uniform.
In Corona, usually, the noise is uniform. And I prefer this situation, instead to fight (and spend hours) with V-Ray render elements to find a good compromise...
Maybe, with the next Corona adaptive sampling we will have the same problem (but I hope no ^__^)
(http://www.francescolegrenzi.com/Temp/Corona/001_VRay_vs_Corona/Noise.png)
-
VS. = who wins?
-
Both. It depends about your point of view. =)