SOPs on GPU

Hi all,

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…?

cheers

hi,

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…

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

  1. single thread.
    2.multi thread
    3.gpu only
    4.gpu + multi thread.

what do you think ?

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