Jump to content

Hidden Line Renders and Multi Threading


Recommended Posts

Hi Ian,

I think that to say After Effects is just pixel based is being slightly unfair since there are many integrations of vector models within it when used in a certain way. Complex 3D tracking of 3D objects is not purely a bunch of pixels...

But anyway, I agree with huge amounts of what you say and I never once said it was a simple task to make VectorWorks multiprocessor aware. However it should be and if it remains as it is then other applications will overtake it in speed and usability to the point of it being left way behind.

I just did a test by the way... Big surface already clipped with lots of circles needing some of those circles altered..... I did the test two ways, first with just using the clip surface command and then by duplicating the surface onto 4 layers, clipping it with rectangles such that each layer had just over a quarter of the complete piece and then applying the clip surface command. After that I combined the layers and added the surfaces.

Vectorworks adds surfaces much quicker than it clips them and clips less complex objects much quicker than complex ones. The second method, despite all the faffing around was quicker.... I truly fail to see how that couldn't have been sent out to multiple cores.

But hey, there is truth in what you are saying. I choose to use VW because it has lots of features I really like and I have used it since Minicad4. In those days everything I did was square or octagon based... I used to dream of round par cans!

I didn't intend to hijack this thread, just felt the same as the OP that I wished I could find a way of getting RW to do hidden line (I don't really see why RW can't but that is how Nemetschek have set it up) or get it to utilise multiple cores and feel strongly that VW needs to keep up with other applications.

There are many workarounds and bodges that can get us towards our goal but it would be nice to utilise the power of our computers wherever possible and keep things as they should be.

Edited by Andi
Link to comment
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.

The last I heard VWs had 400000 users and ArchiCAD 100000, still ArchiCAD is competing with Revit (both in being the prefered Architect CAD app and in price, in Sweden at least) and basically no one has heard of VWs, if I should make a guess I would say there are somewhere between 50 and 100 VWs users in Sweden.

Seeing that ArchiCAD costs the same as Revit and at least twice the price of VWs, those numbers suggest otherwise........

Edited by Vincent C
Link to comment
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.

The last I heard VWs had 400000 users

I hadn't appreciated that it was so many. I did my approximation based on the number of users registered on this forum and came to approx 100000. That is quite a large user base, a nice size, not as non main stream as I thought.

As for being multi core aware, having spent a few minutes digging around at what VW is up to, it certainly is multi core aware.

On my machine, VW typically runs with between 16 and 23 threads. Each thread is theoretically capable of concurrently running on a different core/processor. Add this to cine render which is also running, VW is theoretically capable of running across a large number of cores.

However, just because VW creates a thread, doesn't mean that the OS will pick the thread to run. So VW can run across multiple cores and the OS knows that it can, but something is blocking the threads from running concurrently. Which goes back to my comment about code being thread safe. What is likely happening is that the threads spend a lot of time waiting for permission to proceed. This is typically waiting for events such as mouse/key presses, window events (possibly one thread per window), some form of IO operation to complete, but is also due to being blocked by another thread that needs exclusive access of a data area or some other resource, or by a library that is not thread safe and thus prevents multiple instances of itself running concurrently. My guess is that it is a combination of non thread safe libraries and some critical data structure(s) in VW that cannot be made thread safe and thus are being purposely blocked from concurrent access. If this is the case, in its present form, VW may never be able to be changed to take advantage of long periods of concurrent processing although even now, VW does run across multiple cores for small amounts of time indicated by VW CPU usage briefly exceeding 100%.

The biggest advantage of multiple cores in this scenario is the ability for other processes to concurrently run without affecting the speed of VW. For instance, Outlook is currently using about 65% CPU. Had I had a single core system, VW and Outlook would have been limited to 100% CPU when the reality is that they can both have their full 65% and 100% that they require.

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...