I know this question was brought up many times so i am not asking for the improvement itself but more what would be the fields to explore if it has to be done. So i was wondering what would it take to improve the 3D content / manipulation in TD ?
SOPs can be really useful, but the only way to create / manipulate them efficiently is to go the GLSL side as quickly as possible.
While i like the shader part very much because it is a great freedom in customizing things precisely, i think we could use some basic SOP operations on the GPU from the node editor.
So does it mean the SOP system needs to be re-built from scratch ? or to prevent re-inventing the wheel it could be based upon some existing realtime 3D engines like Unity / Unreal ? I am also sometimes using basic features of some open source apps which seems to have some great features like Godot engine or the new EEvEE engine from Blender.
Though i don’t know if or how it could be used into TD
Anyway thanks a lot for this great tool that i keep using more and more and recommanding
Taking that further, what SOPs do you need on the GPU (saying “everything” doesn’t count), and what SOPs that don’t exist yet would you want on the GPU?
I would say any application of SOP where you want the coordinates to be used for tangible functional use it becomes important. IE 3d milling, 3D printing instead of visualisations need precision when using large datasets, and making minor changes down the cook chains can be slow. For visuals people can just use GEO level transformations, but when you need the data to remain it becomes a pain.
These are all heavy points potentially when trying to CAM path. Would be nice to
Chop to Sop(Limitsop too?) and Sop to CHOP! *CHOPS ON GPU!! haha just kiddingish.
CopySop
metaball/magnet
carve
trace
maybe even a nullSop mode for when the data is already in GPU mode…?
I mean everything dealing with 3D and textures should be processed using a 3D GPU Engine, so yes, basically every SOP : basic shapes, skinning, transforms etc…
Today the workflow is more like :
create a shape
convert into particles
then deal with Geo and GLSL as soon as possible to avoid bottlenecks
It would be great :
create a shape
convert into particles emiter
change color
add effector (noise, flow, forces, shape, deform, scatter…) and tweak parameters
… all on GPU
GLSL would remain unvaluable for those who needs to shape things precisely though
I agree
scattered points to triangulated mesh would be fantastic!
houdini’s particlefluidsurface SOP on GPU - points with scale
the sweep and rail SOPs on the GPU would be amazing…
the ray SOP
the magnet SOP
Is it make sense using cuda\opencl to copy lots of mesh data,
(long arrays) to gpu memory,
process them ( for example translate )
and copy it back to system ram ?
same question for utilizing the cpu cores ( no additional copy is needed )
it seem in Houdini it works well, also seem faster than TD .
( no caching )
It can apply first to point sop or translate sop.
generally,
i see every relevant sop node have a gpu and multi core option
with load/unload (copy) data from gpu memory to system memory. letting the user decide how to manage the data flow.
basicly 4 catagories
single thread.
2.multi thread
3.gpu only
4.gpu + multi thread.
+1
SOPs powered by opencl would be great. They could run on both CPU and GPU (without any vendor lock). Houdini seem to utilize opencl in SOPs a lot (with great speed results).
Btw - not really related to SOPs and TD, but Sidefx decided to rewrite their pathtracer (mantra) from scratch and they will soon release it as new product (karma) with GPU powered version planned for future - also relying on opencl for this task.