Jump to content

Hidden Line Renders and Multi Threading


Recommended Posts

Hello,

I build set and lighting designs in Spotlight and almost exclusively use the 'Final Hidden Line' rendering option in the application. I am happy with the result achieved (even more so with the 2012 improvements on actually showing all the lines!) but very, very unhappy with the time it takes to render.

Depending on where in the world I am I either have a 4 core MacBook Pro, a 6 Core Mac Pro or a 12 core Mac Pro to work on. However, it really doesn't matter much how many cores I have since VW only wants to talk to one at a time. All that power in the machine and I wait (literally) hours & hours for a set of renders to complete.

I also have a license for Renderworks and I understand that this is Multi Processor aware. However I cannot figure out how to do Final Hidden Line renders in RW. I have tried all the various Artistic styles but that isn't what I want.

Am I missing something??

Is there some setting I am missing??

Is there a way to get RW to do Final Hidden Line using multiple cores?

Being completely honest I think it is very, very shabby that VW doesn't recognise and use multiple processor cores. VW is not a cheap application by any stretch of the imagination and I have had multi core machines for many many years now. Are Nemetschek still using computers ten years old to do their programming and testing?

Absolutely 'hilariously' it took me longer on a 12 core machine recently to 'drill' a thousand holes in a piece of virtual polycarbonate that it took the CNC machine the drawing was for to actually complete the task!!!

Link to comment

RW was multi core aware around 2008. But not for radiosity, only for raytraced rendering. In 2011 I believe, the entire RW moved to 64 bit processing and the C4D rendering engine. As far as I can tell, these are all multicore aware processes.

Depending upon your output and your model's complexity or lack of streamlining, renders could take a while. The amount of time your models are taking to render though, seems extreme.

Can you post a picture of one of your lengthy renders?

Link to comment

Hi,

I think the question of when RW became vaguely aware of MP is a little unimportant when compared to the question of why VW and RW isn't MP aware today.

So far as I can remember I think RW basically went MP because the engine stopped being written by Nemetcheck and they bought into an external render engine. In 2011/2012 it is the C4D one, before that it was something else.

As for exchanging circles for octagons, I have no doubt that might work for some people, indeed you could always substitute squares for even quicker renders but for what I do if a curve is a curve it has to look like one. If it looks like an octagon then everyone will assume it is one. Using a workaround such as this in order to achieve reasonable render times in 2012 (the software version and almost the year) is frankly embarrassing.

I have no idea how to get RW to do a hidden line render as the OP asked and am guessing from the lack of response no one else can which is pretty poor.

Edited by Andi
Link to comment

@Fredrik

I didn't mean to sound like I was belittling your advice. For certain items employing that trick can work wonders and I myself have many multisided symbols of objects which are actually cylindrical. For non important parts or if you are doing a quick visualisation by all means it can be a great idea.

However Vectorworks keeps getting more expensive not cheaper and dirty workarounds that continue to be used from version to version are are never a good sign that a developer is pushing themselves to make a product better.

Making VW recognise and use multiple cores for everyday tasks such as the OPs clipping example would give an incredible real time performance increase so why hasn't it happened.

Other similar applications not only utilise multiple cores but also take real advantage of the additional processing power of high end graphics cards so why not VW?

Link to comment

Hidden line is a specific rendering mode, one that I do use all the time. I don't use Final Hidden Line because there is no such mode.

One can get hidden line renderings using artistic renderworks "lines and shadow," or one could get a hidden line rendering using a custom artistic renderworks setting with textures turned off.

If one had a high end graphics card then you could generate hidden line renderings by using OpenGL and turning off the textures and using a draw outline option.

Models that are taking to long to render will have some sort of high polygon count, corrupted geometry or extensive lighting challenges. In this case the OP is asking about a non lighting related render, so the issue is most likely a high poly count (Truss? Curtains?).

Model optimization is something that occurs across all rendering platforms, not just VW. I'm not taking a side with VW on this though, as I do find that their rendering engine is lacking for a lot of things that regularly do.

Without knowing what the renderer is rendering, and what the model looks like, and what the expected output is (100 dpi? 300 dpi? 7000dpi?) it's hard to make a judgment as to what's causing the problem.

Link to comment

I'm not sure what OP meant by Final Hidden Line but I have a vague recollection it was called that meany versions ago....

Let's assume they mean hidden line.... are you sure you can get the same results from RW using 'lines and shadows'? I have never been able to. It renders differently for anything I tried. Likewise even for objects that don't have textures the draw outline option is not the same unless I am doing something very wrong.

Just draw a simple cube and render it with the three options discussed... are they all the same? if so I will be delighted if you can tell me what options I should have selected.

BTW I have a 6 core mac pro with an nvidia 400 graphics card running 2012 under OSX 10.6.

I don't think there is necessarily a 'problem' with the drawings... or at least not with mine, the OPs I don't know... but they have lots of curves in yes, and are in perspective... I think for me at least, the problem is that I have 5 (or 11) cores sitting doing nothing while one is happily working away at 100% and that is not a good use of my hardware investment.

Edited by Andi
Link to comment

No, they are not going to be identical. But they will be hidden line. OpenGL and artistic and rendering without textures are going to give you some shading to delineate some form. I don't find it objectionable in most cases.

But in the case of cores, I just watched my resource monitor go through the rendering options discussed, including hidden line. All cores engage on my computer. Except for the case of OpenGL of course, where it's only on my graphics card to do the rendering.

Link to comment

The problem is that the shading isn't what I want. There are of course many, many variations of render solutions but hidden line just happens to be the one that works for me and I don't want it to be shaded or hand drawn or anything else.

Hidden line rendering in VW, at least on a Mac, is absolutely NOT MP aware. I have had this confirmed by Nemetschek.

If you have more than 100%/one core of processing and you are in VW not RW then please tell me how because I am led to believe by the developers that this is not possible. Using RW you can indeed use multiple cores but you can't do the same render.

Link to comment

I just looked at my processors as I went through the rendering modes, and it seemed like all of the cores were firing. If the developers are telling you different then I would believe them.

Have you tried unshaded polygon as a rendering option?

As I said before, I'm not defending VW for their slow rendering engine. If your point is that VW should be rewriting their software so that it is completely MP aware, I agree with you wholeheartedly.

In the meantime, as we all wait for that to occur, there are options that are available, just not perfect ones.

Link to comment

I wish people would not trivialise this my calling it multi core aware.

The problem is making algorithms and code thread safe which is non trivial and in some circumstances impossible or actually have a performance impact.

Just because you have multiple processors or cores doesnt mean that best performance is achieved simply by writing algorithms and applications to use all of them.

I don't claim to know what algorithms VW or Renderworks use, but I suspect they do alot of sorting, a process which does not scale very well when performed in parallel, ie on multiple cores. Just guessing, but I suspect that this may be a reason why Renderworks does not max out the cores during the early parts of its processing or when VW performs hidden line, a process that traditionally requires much ordering of objects in the Z plane.

Link to comment

Well, I didn't read this tread in detail, but I got some to say about rendering in hidden line and how to get it faster:

A drawing is and will always be a representation of something real. Because of this, it is not necessary to model everything like the real thing. By making models simpler, but close to the real one, the rendering process will speed up a lot.

Another thing you can do is creating your models a certain way to get the lines or no lines the way you want in hidden line. Experiment with them and you'll get cleaner results.

Link to comment

Hi Ian,

I am not saying that writing code is easy or that it is a simple thing to optimise programming but there are many applications written to take advantage of multiple cores which are just as complex as Vectorworks. Do you ever use applications such as After Effects for example? The entire film industry would be a shadow of itself without Multi Core applications.

Cinema 4D and it's engine quite happily uses multiple cores to do Hidden Line Rendering but unfortunately I can't get it to do that in RW without having 'artistry' added on top.

So it may well be very difficult but isn't that why applications cost thousands of dollars to buy and hundreds and hundreds each year to upgrade??

Link to comment

Hi Andi,

There is a missunderstanding in your post.

The VW Line Render Modes (Hidden line and Dashed Hidden Line) are still Parts of Vectorworks, thats the Reason, why they don't use all CPU's.

The "Artistic" labeled Render Modes Modes are done by C4d, and use all CPU's,

as you saw.

regards Horst M.

Link to comment
Hi Ian,

I am not saying that writing code is easy or that it is a simple thing to optimise programming but there are many applications written to take advantage of multiple cores which are just as complex as Vectorworks. Do you ever use applications such as After Effects for example? The entire film industry would be a shadow of itself without Multi Core applications.

Cinema 4D and it's engine quite happily uses multiple cores to do Hidden Line Rendering but unfortunately I can't get it to do that in RW without having 'artistry' added on top.

So it may well be very difficult but isn't that why applications cost thousands of dollars to buy and hundreds and hundreds each year to upgrade??

Yes. I have After Effects. Its a pixel based which is easy to distribute to multiple threads as you can just split the screen up into different tiles and have a thread work on each.

Many years back (late 80's) when I did computer graphics at the BBC, we used what was known as bit slice processors which was the heart of the ubiquitous Quantel Paintbox. Basically it was a one bit processor and as such ran, for its time, extremely fast. The Quantel unit would perform real time screen manipulation simply because it was massively parallel and the application allowed the unit to split the screen up into tiles that could each be worked on in parallel. We later went on to use the Meiko computing surface, which was based on the Inmos Transputer. It was extremely good at the one job that it was purchased for, Peter Snows election graphics battleground if you know it, but incredibly poor at general purpose computing simply because the applications that we were writing could not make use of the parallel capabilities of the device even though our department specialised in computer graphics. As a result, the unit was rolled out every 4 or 5 years at election time.

With a 3D model, traditionally you have a number of things that need to be performed on the 3D data before it becomes 2D. As I said in my previous post, much of this transform traditionally involved sorting objects within the whole model in the Z plane to calculate which objects are visible and which are not. This process I suspect will not scale well at all in a MP environment. However once the object visibilities are known, the image is effectively 2D which can then be easily split across threads for concurrent processing. However, by the time you get to this point, you effectively have all the information needed for a hidden line representation.

Now, I am not saying that newer algorithms have not been devised to take advantage of multiple threads, but that in some circumstances, the effort to rewrite algorithms and data structures to allow this is simply a massive exercise, much like converting applications to take advantage of 64 bit data.

As I said before, I don't know what algorithms VW use and how they have split up their application, but I suspect that as hidden line is part of the basic (non Renderworks) VW packages, there is one and only one implementation of hidden line rendering and that is handled directly by core VW. To convert core RW, its algorithms, data structures and third party libraries to make them thread safe would be a huge effort if it was possible at all - it may for instance rely on some third party libraries that are no longer supported and so will never become thread safe.

The route that VW took, with a separate renderworks based on Cinema 4D engine is technically a very elegant solution which was possible with relatively little effort to produce a large amount of gain. Something that I don't think would have been the case had hidden line render had been rewritten to allow a small percentage gain when run on multiple cores.

I appreciate that the cost to purchase and upgrade VW is relatively high, but I suspect that it has quite a small user base and thus its development budget is actually quite modest and needs to be carefully prioritised.

Link to comment

One thing that should be noted is that the artistic (MP) side of renderworks used to support more tweaking, and is now rather limited in it's variations. Perhaps it would be useful to generate a wish list item to bring back some instance of artistic rendering that allowed the user to get this hidden line rendering look.

As to the statement above regarding feeding plans to CNC routers, I'm interested to know what the steps are that dictate that one must have a hidden line rendering. I regularly send files to our shops here in LA for CNC routing, and they are not interested in anything but a dwg or dxf file.

Link to comment

I feel like I have somewhat hijacked this thread but hey ho...

Yup Horst I am very well aware that the hidden line rendering in VW is done by Vectorworks and that other render modes are done by RW using the c4d engine.

I was just agreeing with the OP that I can't find a way to get RW to do a hiddne line render either.

I also went on to say that I am very very disappointed that VW continues, revision after revision, to not recognise or utilise multiple cores.

I don't think I am misunderstanding much... just not very happy with it.

Link to comment

Hi Grant,

I absolutely agree that all the fabricators I have to send files to all want DWG so I have to export as that but circles must still be actual circles, arcs must be real arcs and curves must be exact curves... I was responding to the earlier posters comments that drawings are just representations of real things and therefore do not have to be exact.

However I generate construction diagrams from the same files I send to the fabricators and those are quite often hidden line.

A recent project involved metalwork with literally thousands of small but precise holes in it... It was a nightmare to get VW to deal with that and no hidden line rendering was involved at all. Editing clipped surfaces was so slow it was untrue. All done using one core of a very fast machine.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...