GLSL FFD transform Help

bernardo's picture

has anyone attemped this:

to make a GLSL shader for FFD transformations: http://web.cs.wpi.edu/~matt/courses/cs563/talks/smartin/ffdeform.html

thanks bern

cybero's picture
Re: GLSL FFD transform Help

I guess it would be possible after a fashion in QC, but won't it be pretty CPU heavy?.

Besides, wouldn't a really effective implementation probably require a level of code higher than version 120.

I await correction and updating on that score :-)

bernardo's picture
Re: GLSL FFD transform Help

I don't know but it would be really neat wouldn't it.... FRZ help!

cybero's picture
Re: GLSL FFD transform Help

could be bundled into a plugin, I guess :-).

franz's picture
Re: GLSL FFD transform Help

If the Mesh port was usable in the public API, i don't think it would be a problem doin' it on the CPU way. I haven't looked at QC 4.5 yet, but I doubt one can fiddle with meshes through the API. Correct me if I'm wrong.

bernardo's picture
Re: GLSL FFD transform Help

ok I am out of my league here so please bear with me. i have no issue doing it GLSL. since i have a lattice and 4X4X4 points that i can use to manipulate de geometry it would be rather cool. .... any thing? I am a 3dsMax user so please be patient

bernardo's picture
Re: GLSL FFD transform Help

ok so this is the best pdf i found: http://cagd.cs.byu.edu/~557/text/ch14.pdf

can anyone help in translation this into GLSL?

bernardo's picture
Re: GLSL FFD transform Help

anyone? ahhhhh

bernardo's picture
FRZ - Help ... Re: GLSL FFD transform Help

hey there still no one here...? this is on my mega whishlist list...... thanks bernardo

cybero's picture
Re: FRZ - Help ... Re: GLSL FFD transform Help

http://www.seethroughskin.com/blog/?p=619 - might help as well might http://tom.cs.byu.edu/~557/text/3dffd.pdf.

According to the author on seethroughskin

Quote:
Basically you follow a pretty simple series of steps:

Define a series of axes: S,T,U. These don’t need to be orthogonal but in my example they are.

I also go one step further and align these axes with X,Y, and Z but scaled to the size of my object.

Redefine your point P in terms of your S,T, and U axes and an origin.

The origin in my system is the minimum point on my mesh.

Create a grid of control points.

The easiest way is to create a uniform series of points along S,T, and U.

Solve the vector valued trivariate bernstein polynomial shown in the Sederberg/Parry paper

Draw new point

BTW, I had thought that the OpenCL Mesh Sculpt posted by gtoledo on http://kineme.net/node/9317/ might be a good stand in, but instead found that the original now fails for me on Lion 10.7.2 and probably does in 10.7.1. Still, if you are running 10.6.x you should be just fine with that as stand in. The Open CL Sculpt allowed for the arbitrary deformation of an object vertice by vertice, albeit mouse instigated.

Closest thing of the shelf in stock patch GLSL Shader examples is the GLSL Vertex Noise example, not what you exactly want so far as I can tell. OpenCL or Kineme 3D might give a quicker , usable result, at least in QC.

Free Form Deformations a plenty on the command line and output as applications from xCode, but that's leveraging #include this.fs, or that.fs, etc. Different language version of GLSL 1.3 +.

I wonder how much QC's GLSL Shader could do with some updating in that regard.

bernardo's picture
Re: FRZ - Help ... Re: GLSL FFD transform Help

hey cybero thanks for the input!!!! I allready download the code but as you know well i am not a programmer ehehehehhe care to give it a go?

hugs bern

cybero's picture
Re: FRZ - Help ... Re: GLSL FFD transform Help

bernardo, I'm sorry to say that this isn't something that I can leverage or port at present into QC 4 or 4,5 [I've tried, I've failed :-(], not without creating a patch or plugin, I believe, speaking of which have you had a look at NI's Matrix patches [comes with FXFactory], they might serve some similar purpose.

Are you on Lion or Snow Leopard BTW? If you are on Snow then an approach like the feedback system in OpenCL Sculpt could be good for you to use.

Please note, most of the examples online require one to load in a model that is described in OpenGL or CG [depends on code base]. They also only are compilable by me at least outside of QC.

That all said, it could still be the case that it might be achievable. I'm always learning more each day about OpenGL in QC and others mileage varies quite considerably •|~

Further update

Have found that the Sculpt Demo works very well in 32 bit QC 4.5, but not in 64 bit QC 4.5, but I don't know why :-)

bernardo's picture
Re: FRZ - Help ... Re: GLSL FFD transform Help

hey cybero me on snow leopard I heading down the SculptDemo now see if it works ok but "kineme gravity" kinda sinks the mesh only making very difficult to use in my extent. as an ffd.... but will keep on trying

gtoledo3's picture
Re: FRZ - Help ... Re: GLSL FFD transform Help

bernardo wrote:
hey cybero me on snow leopard I heading down the SculptDemo now see if it works ok but "kineme gravity" kinda sinks the mesh only making very difficult to use in my extent. as an ffd.... but will keep on trying

There's an openCL version of that demo, and the stuff mentioned in that article look kind of close to some stuff going on in the apple openCL deforms, but it sure has been a long time since I've looked at that code, and I only glanced at the article. Also, you don't have to use mouse control, or interact with it in the exact way setup in that demo... that's just a starting point.

bernardo's picture
Re: FRZ - Help ... Re: GLSL FFD transform Help

ah thanks mr gt3 i will look into opencl deform but its out of my league .... i guess.... thanks bern

bernardo's picture
Re: FRZ - Help ... Re: GLSL FFD transform Help

i think my answer would be fairly simple if i would know where to put in the OPENCL code the vertex position that serves as a reference for the deformation. still it would not be true FFD

but i am digging it

bernardo's picture
Re: FRZ - Help ... Re: GLSL FFD transform Help

sorry doble post

franz's picture
Re: FRZ - Help ... Re: GLSL FFD transform Help

if you really need it, and it is for a professional job, your best bet would be to ask KnM code it for you, and request a quotation.

If your geometry is not being updated on everyframe, why bother do it on the GPU ? A CPU FFD might be good too, and compatible with all the KnM 3D patches...

bernardo's picture
Re: GLSL vs CPU FFD transform Help

no holly cow its not for a professional job at all!!! if i could pay i would sorry. the geometry is the same but the deformation is happening interactivle at framerate i guess. CPU is the way? such as can you point me in any way such as porting the maths to xcode holy cow this is nice in abstract sometimes i curse being a a long time 3dsmax user.... thanks alot