Isadora, 2013 Mac Pro, dual GPUs and CPU isssues
-
I completely agree with Fred sentence. It's necessary to ask Mark and other developers to implement object instancing in Isadora. With it you dramatically reduce the bottleneck between CPU and GPU because you only send one group of vertices and after you multiply it, changing position, rotation, texture etc. for each instance. I think is what is used for 3D particles but the actor is very difficult to use for a precise behavior.
I ask for it many times, a collective demand could be filled?
Jacques
-
@dritter can you provide a sample do one of your models (say one of the biggest most complex ones). Maybe we can have a go optimising it. Or you can also look at some more targeted tools (maybe the designer who made the models can output some simplified versions).
http://www.mootools.com/plugin...
https://www.okino.com/conv/pol...
And many more
-
Hello Mehdi, my texture maps for the 3D objects and 3D particle objects are PNG files(256x512 resolution) and for 2D particles they are PNG files with an alpha channel(60x60 resolution). I use the same texture files repeatedly on multiple objects. I tried having independent texture files for each object under OSX, but I did not see any difference in performance. Other users have found using independent texture maps will increase performance.
Don -
@dritter 64*64 resolution instead of 60*60 can give you a performance boost.
-
Hi Fred, many thanks for your suggestions and links. I will plan on using independent texture map files and objects under Windows and also change the 2D maps to 64x64 as you suggest. 95% of my 3D object are spheres, each having 32 segments and made in 3DS Max. I tried Meshlab a few days ago, but I am not familiar with that sofware and was unable to reduce it while keeping its roundness. I would greatly appreciate if you could look at the .3ds files and will send then to the email address listed on your website.
sincerely,
Don -
I am also interested by your problem, can you also send me some samples of the mesh and the textures?
Thank you, Jacques
-
Hello Jacques, I have just emailed you two examples.
merci,
Don -
Hi Don,
I assume the 3ds configuration you are attempting is the one represented in the images shown previously in another of your posts?
I still believe you can find efficiency by using the single 3D Model Particles actor and the ‘group index’ parameter with one 3ds file with all the geometry for one of your puppets. Using the 'group index' in such a way is a new approach that I have begun to develop and my tests indicate its efficiency manipulating multiple 3D geometry. This in association with optimising your models as much as you can tolerate, will give you the maximum performance with what you are attempting.
Jacques is right though, it is not trivial to setup and control the geometry through the 3D Model Particles actor. However, I have demonstrated, to myself at least, that it is possible to do it with the user actors that I have shared previously in a tutorial package.
Good luck with the continuation of your project development.
Best wishes
Bonemap
-
@dritter Hi, I had a quick look at one of the files, the ballRod 3ds, The object started with 1042 vertices and 1384 faces. After some light decimation I got 788 vertices and 899 faces, so about a 20 reduction, with no real artefacts. If the 3d rendering is the bottlneck you should get 15-20% higher framerate if you could achieve this for all models. I was using meshlab and the decimate function (Quadratic edge collapse decimation with texture, if you use without texture the texture map coordinates will get messed up and make it look super low poly), and set the target number of vertices to about 8% of the total vertices. This for sure could be done better, and with better looking results. If you can get the system running at or above your target framerate it would mean you are not pushing your system and heating it up (as well as having a smoother image). I would guess with a bit of work on all these models you can get a much better result.
I emailed you the decimated model.
-
Hi Don
I have re-threaded my patch to work with mesh instances using the 3D model Particles actor. This is not using the 'group index' because it is just the one model rather than a number of models in a single 3ds file. I thought I had better capture the test on video as evidence of the outstanding result in terms of improved frame rate. I was able to instance over 90 representations of the same complex 3D model of a tree, add lighting and assign coordinates from Ni Mate OSC getting a range of 50 - 60 fps. If I am able to achieve this frame rate on a Mac Pro 2013 with an AMD graphics, I imagine the same technique through a top flight Nvidia card will be phenomenal.
best wishes
bonemap
-
thanks bonemap, it looks good.
-
Thank you Jacques, Fred and Bonemap for your suggestions regarding optimizing the patch. I have spent the last few days comparing the results on a PC(with GTX1080ti GPU) and a Mac Pro(with dual D700 GPU). Most of this time was spent troubleshooting Isadora on the PC, which is now somewhat useable but very unstable.
During the tests I attempted to determine optimal use of this media: a 3840x1080 @29.97 background video, eighty-seven 3D objects each with 512x256 texture maps, six 3d particles objects(15 particle count), and forty-five 2D particle objects (42 particle count), all controlled by 135 OSC streams from three Kinects. The methods for optimization were:1. Optimizing 3D objects by reducing the number of vertices (each sphere was reduced from 988 to 203 vertices)
2. Use independent 3D object files and texture maps for the ninety-three 3D objects
3. Compare different codecs for the background video: [MOV ProRes 422HQ and 422LT] vs [MOV/MJPEG@75%]. I could not test the HAP codec because I do not have software to create HAP AVI files.
The frame rate for each test was determined by calculating the average fps from 100 samples, each sample being one second apart. The control data for the test was live OSC data from 1 Kinect connected to a Mac Book Pro running NI Mate 2.14, or three simultaneous OSC recordings of a Kinect playing back from within the patch. I was not in the large studio this weekend, so I did not have the physical space or humans to test 3 live Kinects simultaneously.I did about 40 different comparisons, but for me these are the most relevant results:
Test 1: all 3D objects optimized + playback from 3 OSC recordings + no background video: [mac:13.7fps] vs [pc: 21 fps] difference: 53%
Test 2: all 3D objects not optimized + playback from 3 OSC recordings + Prores422HQ background video: [mac: 11.2fps] vs [pc: 16.7 fps] difference: 49%
Test 3: all 3D objects not optimized + playback from 3 OSC recordings + MJPEG-75% background video: [mac: 11.8fps] vs [pc: 19.6. fps] difference: 66%
Test 4: all 3D objects optimized + playback from 3 OSC recording + MJPEG-75% background video: [mac: 12 fps] vs [pc: 20.5 fps] difference: 75%
Test 5: all 3D objects optimized + 2D particle animation + 1 live Kinect OSC sent to all 3D and 2D objects + MJPEG-75% background video: [mac: 10.6 fps] vs [pc: 17.8 fps] difference: 68%
I was surprised that using MJPEG for the background video was providing a significant better frame rate than Prores422HQ(and also 422LT) on the Mac and PC. I was also surprised that using independent 3D object files and texture maps for the ninety-three 3D objects on the Mac did not improve its frame rate, but it did on the PC. I tested this last result a few times.Thanks again,
Don
-
hi Don,
Thanks for the update. When you say the PC is “usable but unstable” what does that mean? You are confident to take it into presentation/production or there is a high risk of the system crashing or something else?
Best wishes
Bonemap
-
hi bonemap, no, I would not use this PC for any type of presentation. Initially Isadora crashed 50% of the time on opening with a frozen screen, but now it is about 10%. The control id's have odd vertical lines (see attached), it takes many minutes to save the patch, it often crashes while saving (and does not save), the patch comes to a complete stop while saving, and the sound player actor does not work (although sound from a movie file plays fine). I think this may be related to the Nvidea control settings. I am still waiting for a reply from Isadora support. Do you have any suggestions?
thanks,
Don
-
Normally I am working on the PC and I have never seen three of those four error messages.
It's not normal to have the problems you're having!
With respect to the "The file was not saved because it could not be written", this will happen if you're trying to save it to somewhere inside the C:\Windows directory, eg in the Isadora program folder itself. Is that where the project file is? If so you need to move it somewhere else. How many hard drives does this computer have? If just one, then keep the project and all the assets in the "Documents" folder or on the Desktop.
Is your patch ridiculously complex or would it be feasible to start a new Isadora project and remake it from scratch on the PC? -
Hi Mark, thank you for your suggestion. No, I was not saving inside of the Windows directory. I was saving in a user folder on the C disk where I had saved previously, with administrator privileges. When I get the save error, it doesn't mater where I try to save, it always gives that error. The computer has two builtin drives(C, D), and I have an external SSD(T). It is a very large patch, so I do not want to recreate it. Isadora crashes when opening, even without a patch, so I do not think the patch is the sole problem. This computer is running Windows 10 Home 64 bit version. Would the Pro version be an advantage? The i7-8700K CPU has 6 cores.
regards,
Don -
@dritter are your nvidia drivers up to date? Did you make any strange settings with them. They should be fine for Isadora out of the box, try reinstall the drivers and clean the settings. I have used windows a lot for shows and in general I feel it as reliable if not more so than mac. I have had plenty of shows with OSX just disappear, software exits no warning. With a PC I get some warning or odd behaviour if something needs attention and I can fix it before I go on. I would say that you did miss an opportunity in trying HAP Avi, in my experience it is the best performing codec with Isadora for windows (and I think it beats proress too)
Spout is a tricky beast, and again I think this is related to GFX drivers and or settings. I don't use spout, or syphon in shows, (I hate to have a chain of apps running a show on a computer, so I make my own software instead), but I know people do and don't have troubles, with up to date GFX drivers and clean system it will work fine. Did you disable the onboard GFX, I would definitely advise it if you are using spout, it does not like different kinds of GFX cards/
-
@dritter if Isadora is crahsing when you open it you have some problems that are not OS based, this is not normal. Where did the system come from? Is it rented? Do you know its history? When was the last clean install? I would at the very least, disable the onbard GFX< uninstall all nvidia drivers and install them new from scratch. As for the save, sure seems like a location/permission thing, maybe someone has made some "helpful" changes to the drive permissions, in general try stay inside your user space when working on windows, if you are not familiar with permissions just work inside the documents directory of your user, other areas on the c drive (not just in the windows folder) have different permissions.
-
Hello Fred, thank you for your suggestions. Yes, drivers are up to date. The PC is a rented gaming computer that I am testing before I buy a similar machine in the coming weeks. I do not know anything about its history. This is the model of the rented PC.
https://www.amazon.ca/gp/product/B075VSBNQZ/ref=ox_sc_act_title_1?smid=A3DWYIK6Y9EEQB&psc=1
I am saving the files to an external SSD, but suddenly I get the error about not having permission to write to that drive. When that error happens, I cannot write to any drive.
Yes, the builtin GPU is turned off. I selected the restore button on the video settings for the Nvidia yesterday and added Isadora to the program settings. Isadora is now working much better now, though it still crashes occasionally on a save and the control id’s and actors near the top of the screen are always scrambled. If you are familiar with the proper settings for the 1080Ti, I would appreciate you look at the attached screen grabs of my video settings.
I was able to convert my mov prores fiels to AVI HAP Q, and the result was a 6-11% increase over the MJPEG movies. On one test with optimized 3D objects and HAP Q background, the frame rate on the PC was 21.6. This same test on the Mac Pro was 12.6 using the Prores422HQ. The Mac Pro was returned to Apple yesterday because of a hardware problem, so I decided to test the patch on my 2015 Mac Book Pro(Radeon R9 M370X), and its frame rate on various tests was the same as the Mac Pro, and on some it was even better. The tests were done with using SSD clone of the system patch and media from the Mac Pro. This doesn’t seem to make any sense, but I tested it a few times.
I have been using Syphon for the past three years without any problems. I have had no problems with Spout over the past few days. Many thanks for your suggestions.
Regards,
Don -
@fred
Also, wanted to mention that the Sound Player Actor is not working, though there is no problem with sound from the movie player. Do you have any suggestions about that?
I read that some users where having problems sending continuous OSC data from Kinects into a PC. Right now, I am running a patch on a Mac that is sending 135 channels from a Mac to a PC through a router, each channel providing 30 numbers per second. It has been running for three hours without slowing down. The only problems I had was that the OSC Listener on the receiving computer is only recognizing channels 1-100. 101 and above is not recognized, though I can see it in the stream setup window on the receiving computer. This does not seem to be problem if the channel number is entered in the stream window with its associated header, but why is that not needed for channels 1-100?