Some tasks, particularly those related to the 3dsmax/V-Ray interface, cannot be multithreaded due to the fact that the 3dsmax architecture was not built to support it. This includes enumerating the scene objects, updating their state for each frame, and compiling the final object geometries.
On the subject of displacement, the problem there is mostly that all rendering threads share a common geometry memory pool; this requires some synchronization between the threads when the common structure needs to be modified. Initially we had a separate geometry pool for each thread, but as the number of threads increase, the memory requirements became prohibitive (e.g. there is a great difference if a scene requires 1 GB of RAM for 8 threads, even if it renders a bit slower, or 8 GB for 8 threads, even though it may be faster). This caused us to merge things into one structure. Of course, there is still a lot of room for improvement in this area.
one is done in maxscript, the other is a compiled version done in C or VB (i can’t remember).
The one done in maxscript has some odd issue from time to time, and i am still investigating them (or i should say, waiting to investigate them…), as i ain’t sure it’s entirely my fault (i have an odd vray RC version, and don’t quite know if it’s me, or the exe file having the issue…).
Note it does work for most situations, the issues are minor.
The maxscript one is inside the scriptpack in the sticky thread in the OT section, or on scriptspot (which i’d prefer you to download it from, in case, adding your precious vote :lol:).