Realtime rendering and software rendering?

Generic forum to discuss Octane Render, post ideas and suggest improvements.
Forum rules
Please add your OS and Hardware Configuration in your signature, it makes it easier for us to help you analyze problems. Example: Win 7 64 | Geforce GTX680 | i7 3770 | 16GB
mikeadamwood
Licensed Customer
Posts: 165
Joined: Sat Sep 17, 2016 11:51 am

Been wanting to post about this for a while but haven't had the time.

So of course I jumped on the GPU rendering bandwagon less than a year ago mainly for the speed increase. We have just completed our first project with Octane and although it looks good, we had to sacrifice quality in order to get renders to around 1 minute 30 per frame with the direct lighting kernal. We have 2x Titan X pascal watercooled at work and was rendering out at 720p 25fps for an interior room scene(Whole animation takes place in this room). The renders were fairly noisy and we had to do alot of post to get it to sort of where we wanted it to be and took MANY hours to render.

I think it's crazy that I can run a modern game at say 150-200fps but renders that took a minute per frame look awful and alot of work has to be done after the fact. I think the whole animation took a week or more, rough guess as it was broken into scenes.

Now I sort of know how GI, pathtracing works on a very basic level, but at the end of the day as an artist we don't mind sacrificing speed if we get quality, I just can't do the math that a game renders say 60-100fps at 4k yet a GPU render will struggle to get one frame out in a minute. And from a visual point of view the difference is not big enough to warrant the time difference, most times even worse?

Although we've had a joke about it in the office, I read up on it and I don't think it's that unreasonable to think. And then when you see what people are doing in Unreal or even Unity it makes me think why the hell are we waiting so long for poor results?

See this thread: https://forums.unrealengine.com/showthr ... setup-4-12
And this video: https://www.youtube.com/watch?v=QeROPGxf8cY
Another: https://www.youtube.com/watch?v=xfVEVaz01-I

You really can't argue with that result and it beats the hell out of our animation...Textures look amazing, no noise and it's all being rendered in realtime. There is even realtime motion blur!

I'm just trying to get my head around this as from a side by side comparison, unreal is killing it at 1500% the speed. Am I comparing apples to oranges? Maybe but when I could actually see the results infront of me it's hard not to beg the question.

On a side note, am I talking about Brigade? Is this Otoys answer to what I'm asking? Are they going to implement this into Octane and plugins in the future?
Windows 11 Pro | ASUS Pro WSX80E | AMD Threadripper Pro 5975WX 32-Core | 256GB Micron 8x32GB 3200MHz ECC | 2x PNY RTX6000 ADA
User avatar
Phantom107
Licensed Customer
Posts: 686
Joined: Tue Jul 24, 2012 11:31 am
Location: The Netherlands

Realtime graphics/software programmer here.

Games can run so fast because of the very different graphics pipeline. Instead of shooting around photons, they directly draw triangles on the screen. A triangle then draws to several buffers (such as diffuse, spec, etc) and does depth testing against other triangles on a per-pixel level to create the 3d depth. Finally the main shader takes info from the buffers to draw an image onscreen. Lighting is done by taking into account light position, depth and normal for each pixel. No light bouncing, too expensive. Everything about it has huge cutbacks and approximations to get the speed to a reasonable level. Everything is fake and does not obey to any real world laws of physics. Not even reflections are accurate, they are also faked in screen-space to pixels on the same rendered image because that's all the pixels being rendered. No real refractions either. Heavy SSAO (screen-space ambient occlusion) to give the illusion of accurate lighting. Nothing is physically based. If you have any kind of interactive object, projection-based realtime shadows are used which means very basic shadow, no umbra/penumbra etc. Fog can't be done or it will have to be faked by overriding pixel values.

You also have to understand that workflow is very different.

In games, instead of modeling a scene like you would in for example SketchUp or Blender, games consist of a collection of thrown together models. Each has a seperate UV set that has a per-object shadow map. Before release, lighting is pre-calculated so every object's shadow map gets pre-rendered. UE4 uses lightmass which is CPU-based, it can take many many hours to pre compute. Change a single thing in the scene, pre-compute the lighting on everything once again. Everything needs to be custom-unwrapped or the shadow baking will look bad or mess up. Even architectural geometry. It's a nightmare. Companies who do games have huge CPU render farms just to do the light baking. Since the shadows are baked onto textures, shadow texture resolution becomes important. Objects can have clearly visible artifacts if not big enough. For example when a table is on a floor....the shadow resolution will have to be extremely big to make the shadow look good at the table's feet.

It can look nice, but workflow for game CGI is awful and can nowhere near achieve what you can do with raytracing if you know what you're doing.

Additionaly, do realise that games usually have a gritty look with a lot of decals and detail maps to hide the inaccuracies in lighting. It is very hard with game CGI to get the clean white look that is common for architectural renders...


One last note, raytraced interiors are very very demanding regardless, you need a lot more GPU horsepower to do that. I would recommend something like 8x GTX 1080 hybrid or 11x-12x GTX 980 Ti hybrid. Or maybe 6x GTX 1080 Ti hybrid (coming soon, each faster than Titan X Pascal). Titans are a waste of resources unless you need a ton of VRAM! For the same cost you can get GTX cards and blow away the Titans in rendering performance (again, unless you need the VRAM).

In my opinion, Octane desperately needs some kind of 'light cache'. No idea idea if they are working on this. It would be cool to have it cook on the lighting once, then rapidly push out frames to do animation (fly-through camera) or simply different rendering viewpoints...
mikeadamwood
Licensed Customer
Posts: 165
Joined: Sat Sep 17, 2016 11:51 am

Thanks for the indepth reply that makes alot of sense! I knew I was comparing apples to oranges but needed further explanations on why there is such a leap.

I think Octane is great with a daylight system or studio setup but as soon as you box a camera into a room render times explode. I guess we just need more cards so we can bump the quality up.

Do you mean 8x 1080s in one system or across multiple machines? Also is brigade something to get exited about, do you think it will be implemented into Octane as an alternative way of rendering or is it completely different?

Thanks again!
Windows 11 Pro | ASUS Pro WSX80E | AMD Threadripper Pro 5975WX 32-Core | 256GB Micron 8x32GB 3200MHz ECC | 2x PNY RTX6000 ADA
User avatar
Phantom107
Licensed Customer
Posts: 686
Joined: Tue Jul 24, 2012 11:31 am
Location: The Netherlands

Render times to indeed explode... currently I am even using the ambient occlusion mode inside direct lighting to get somewhat acceptable render times... but maybe I am doing something wrong, even with brute hardware power it seems to take ages. I have no idea what Brigade will do, but my assumption here (being very skilled with faking things in realtime :lol: ) is that they have made huge cutbacks on quality to make it fast.... Personally I don't mind settling for not-physically based accurate interior raytracing if that means it renders 20x as fast. There is going to be a compromise in there somewhere. I just want there to be a lightcache.... let it compute in high quality once then pump out the frames.

As far as rigs, I know there are people here building crazy 7-in-1 GPU machines, but personally I use one beefed up rig with 3 cards (adding one soon) with beast specs (64 GB DDR4, i7 7700K, SSD, everything) to do production (5 GHz on the i7 7700K, single threaded performance is what counts in 3D production, do not waste money on multithreaded oriented CPU threads that are not going to be used... try to get the clock as high as possible) and keep the power bill low, then have additional rigs with 3 or 4 cards that I only fire up when doing the finals renders. Those rigs don't even have screens, I made them login to Windows automatically then join in on my main rig as render slaves. Works like a charm and relatively cheap.... the additional rigs have basic specs with 16 GB RAM. There is no need to invest in power for those, who cares about them taking 3 minutes longer to boot up, load the Octane scene and get everything ready when they then can render for 4 hours. All the money saved on the other specs is pumped into GPU horses...

By the way, if anybody reads this and knows how to do setup a kernel settings with fast (and good looking) interiors, please share
mikeadamwood
Licensed Customer
Posts: 165
Joined: Sat Sep 17, 2016 11:51 am

Haha I second that with the kernal settings! For animation directlight is the only viable option for us at the moment. To speed things up I actually scattered lights around the subjects so I could lower the diffuse depth or GI bounces.

I'm actually looking at getting another 2 1080 hybrids myself hopefully work will do the same. Btw have you seen this (http://amfeltec.com/products/gpu-oriented-cluster/) I'm guessing you have probably came across it at some point, avoiding having to buy complete systems to add additional render power?
Windows 11 Pro | ASUS Pro WSX80E | AMD Threadripper Pro 5975WX 32-Core | 256GB Micron 8x32GB 3200MHz ECC | 2x PNY RTX6000 ADA
User avatar
Phantom107
Licensed Customer
Posts: 686
Joined: Tue Jul 24, 2012 11:31 am
Location: The Netherlands

So far, custom solutions like that always seem very overpriced... if it's for a render slave, honestly I would get an old AMD CPU (like FX-8320), stock AMD cooler and then a motherboard that supports 4 graphics cards, a big case (to fit 4 hybrid coolers :D ), old DDR3 16 GB RAM, an old HDD, but do spend a bit on a good PSU. No screen, use TeamViewer to remote desktop to it. But ofcourse stuff 4x GTX 1080 Ti or something in it. I've noticed Octane's CPU usage is near nothing when rendering so it's a complete waste to get a good one for slave machines... At least that's what I'm going to for the next rig. Costs less, better performance. Keep it cheap and get beefy GPUs is what I say.
User avatar
rappet
Licensed Customer
Posts: 1962
Joined: Fri Apr 06, 2012 3:57 pm
Location: The Netherlands
Contact:

Hi Phantom,

Don't you need enough pcie lanes (on cpu) to load the scenes properly into four gpu's, so therefor the slave cpu must have some minimum specs , especially regarding loading time of heavy scenes. How is your perspective on that? I.e. Is 40 lanes not better then 24 lanes, for a slave as well?

6/7 gpu systems have the benefit over 3/4 gpu systems that you do not need that many slave pc's when reaching the 20 gpu limit. 3 or 5 pc is lot of difference...
( Aircooled systems have benefit that you can swap gpu easier, and every few years swapping watercooled system ca be done by only swapping the waterblocked gpu's, but it is also much more maintenance and concern. Ofcourse there are more pros and cons about aircooled/wTercooled, but that is discussed in other threads.)

I am on the same page about the ideas of master and slave, and I guess I do have about the same workflow. Can you tell more about not having a monitor for the slave... How does that work starting the PC, does it automatically starts Team Viewer as well?.. Or do you have a monitor switch after having started the PC with monitor on? I had this last setup, but I did not like it, so now I have two cheap small monitors for the slave pC's.. That is much more comfort monitoring status of slave.

For interior renderings I render a DL and a PMC (or PT) and mix them together in postproduction to get the wanted result, I also use a denoiser on the PMC/PT render and I overlay a AO render for extra effect. I found out this workflow gives me the best result with relatively short rendertimes (with a lot of gpu power though).
I still need to try portals (at location of windows), coz' that seems the way to be doing interior lighting... Have you tried that?

Greetz,

4090+3089ti & Quad 1080ti
ArchiCAD25, ofcourse Octane & OR-ArchiCAD plugin (love it)
http://www.tapperworks.com
http://www.facebook.com/pages/TAPPERWOR ... 9851341126
http://www.youtube.com/user/Tapperworks/videos
User avatar
Phantom107
Licensed Customer
Posts: 686
Joined: Tue Jul 24, 2012 11:31 am
Location: The Netherlands

Hey Jeroen (rappet),

The higher-end motherboards have a thing called a PLX-chip on the motherboard. What it does is add available PCI-e lanes to the CPU. So even though an i7 7700K has 16 PCI-e lanes, it can still support 4x 8-speed PCIe cards on the right motherboard (http://www.gigabyte.com/Motherboard/GA- ... -rev-10#kf). And then you have that insane clock and single threaded performance so work can be done fast. PCI-e speed is not important at all for Octane from what I've seen. Even if the cards are at 4x speed (the minimum a high end GPU needs) it won't make a difference. Sure it might save maybe a second or 3 when loading in a scene, but then Octane keeps cooking and only needs to send tiny bits of the data results back to the CPU. So the speed is not important.

Be very careful when looking at components!

If you look at the old AMD CPU, for example the FX-8320 (a CPU from 2012) I have in my 3rd rig, that can handle 4 GPUs easily, again because of the motherboard. And that CPU is just 124 bucks...

While it might seem like a good idea to cram a lot of GPUs in a rig, personally I don't think this is a good idea. You will be paying so much more and you are only gaining a tiny bit of space... and the cooling is going to be a problem. With multiple rigs, the hybrid coolers have plenty of air to breathe so you can keep the GPU clockspeeds quite high. And very very easy to do maintenance or pop cards out! Now if you are in a tight space and room is a problem, then I might see >4 GPU rigs being feasable, but otherwise: absolutely no. And the very high end cases are mostly designed for 4 cards.... really anything above 4 cards is 'special' and going to hurt your finance. Better get them beefy GPUs 8-)

So in Windows there is an option to make it auto-login. I can help you with that. The PC is then ofcourse totally open for anyone but who cares, it's a render slave right? The render slave PCs literally only have a power cable and network cable going into them. Looks pretty clean too :D

1. I press the power button on the PC
2. The PC fires up
3. Automatically logs into Windows
4. Automatically fires up Teamviewer (Teamviewer is on standby in case I need to access the PC, this is only for software maintenance). I only connect to it when I need. So normally Teamviewer is sitting there doing nothing
5. Automatically fires up the Octane slave and connects to the main rig
6. Rig is used for rendering
7. I press the power button on the PC again and it shuts itself down.

That's an interesting technique for interiors... could you maybe send me some example images of the layers and result, if this is interesting for my own workflow I'll program a little tool to auto-overlay the AO. And yes I am already using portals. I'm actually programming an automatic window frame generator for Phantom Architecture that has automatic portals created.
User avatar
rappet
Licensed Customer
Posts: 1962
Joined: Fri Apr 06, 2012 3:57 pm
Location: The Netherlands
Contact:

Phantom107 wrote:Hey Jeroen (rappet),
...

That's an interesting technique for interiors... could you maybe send me some example images of the layers and result, if this is interesting for my own workflow I'll program a little tool to auto-overlay the AO. And yes I am already using portals. I'm actually programming an automatic window frame generator for Phantom Architecture that has automatic portals created.
Hi Guus (phantom),

First I do some color corrections seperately on DL, PT and AO rendering... The renders look too dark, but in fact are not, coz' all the information is within the rendered png... I just bring them to the level I want with image correction.
Then in postproduction I mix the enhanced DL with the PT on top with transparancy 50% or different to taste.
And finally I use the AO as overlay for the wanted extra effect, mostly set around 20% transparancy.

There are so many factors that have influence; material settings to start with, and then with your own settings of light and sun, kernel settings, exposure, and other Octane settings, and then the color correction settings in postproduction. If it would be that simple, then OctaneRender should have some standards for interior and exterior settings.. hit one button and boom! But that is not the case... maybe other experienced OR users can get magnificent interiro renders with certain settings, but for me it is still a journey to get the result I am looking for, and it still needs to be improved.
Hopefully these 2cents might send you on a path for a better workflow as well, but you have to follow your own path within your own workflow with lot of trial and errors like I did.

It is very interesting to have a automatic setting with overlayed kernels, but till then I still find making these visuals as art like the way painters made theirs in the old day ;)

greetz,
Attachments
MIXING.jpg

4090+3089ti & Quad 1080ti
ArchiCAD25, ofcourse Octane & OR-ArchiCAD plugin (love it)
http://www.tapperworks.com
http://www.facebook.com/pages/TAPPERWOR ... 9851341126
http://www.youtube.com/user/Tapperworks/videos
User avatar
Phantom107
Licensed Customer
Posts: 686
Joined: Tue Jul 24, 2012 11:31 am
Location: The Netherlands

Very interesting, I'm looking into this
Post Reply

Return to “General Discussion”