Updating mesh based patches from dx9 to dx11

Hi all,
I’ve tried to research this numerous times and not got anywhere with my understanding, hopefully one of you will take kindly on me and hold my hand/steer me in the right direction…

I’ve got some patches I made in dx9 that work with meshes, disassembling them and affecting them and putting them back together basically. (e.g. making a mesh ripple)
Since dx11 came out I’ve been trying to work out how to do the same in that and haven’t found anything on the forums that explains it simply enough for my simple brain.
It’s basically the nodes that have replaced vertex buffer and related nodes that i’ve not been able to get my head around.

the attached patch shows a couple of simple functions i’ve extracted from bigger patches that i’d like to update to dx11. Can anyone help? Please explain how these functions would be replicated in dx11, and explain it to me like i’m a 4 year old!

Thanks!

meshy dx9 for dx11ing.v4p (42.7 kB)

Hi fatalex, this answer your question?

I still could not find how to replace Mesh (EX9.Geometry Split) and VertexBuffer (EX9.Geometry Split) in DX11.

meshy dx11.v4p (159.5 kB)

Actually working on a library at the moment to make it easier to patch this sort of thing whilst still keeping it on the gpu.

Ayway here is something to split a dx11 mesh. It assumes a triangle list (no indices).

GetVertexData (GSFX).zip (8.9 kB)

Thanks obernardoo, that’s a much simpler way of doing it than what i’d been trying to figure out!

and thankseveryoneishappy, although I appear to be missing the ‘passthrough’ node, its red when i open the patch. I don’t think i’d be able to make that much sense of what’s going on in there anyway.

Before obernardoo showed me the shortcut, I was assuming the solution would involve inputelement and/or indexedgeometry buffer, which I’ve still not been able to understand, even since posting this similar question (which coincidentally was almost exactly a year ago haha)
https://discourse.vvvv.org/t/11679

So, I can get on with this patch now with the shortcut, but I’d still love to fully understand what’s going on with indices and vertices and normals and all this stuff I have very little grasp of and how to make proper use of it all! Has anyone got a link to a page that provides a decent introduction to all this stuff, particularly if it’s related to VVVV? Or would anyone be up for giving me a bit of tutoring over skype some time, i’d be happy to pay for your time

Thanks!

Sorry, try this one. You can just feed it your geometry. It gives you buffers that other shaders can use, or if you want spreads in your patch just enable readback (keep in mind this will copy gpu -> cpu).

GetVertexData (GSFX).zip (9.3 kB)

Thanks Everyoneishappy, it works now, although I don’t really know what to do with it! Think it might be more useful for people who are getting a bit more in depth with geometry and shaders than I am.
Basically I really need to gain a proper understanding of what all these elements are that make up geometry and how/why they’re used…
I have yet to find a resource that explains it all in enough detail while being understandable, and until I do, I think i’ll stick to shortcuts that don’t require me to fully understand what’s going on!

@fatalex: while rather basic, this is thought to be an entrypoint to what you’re looking for:
packs\dx11\girlpower

@everyoneishappy, thanks for sharing the GetVertexData example.
Keep going with that library, man.
I could follow the DX11 hardcore workshop at NODE15 -er- somehow -er- conceptually, but still i have no clue e.g. how to extract the second UV set from a .x file or how to add one and write the geometry back to disc…
I hope this will become easier soon.

hi blausand, this still painful process writing geometry with vvvv, this is one of it major disadvantages. i have pipeline for that but it’s a bit of mess working only on special cases. Wish dev’s would spend some time fixing that part up. All the dx11 stuff u can read/write mesh data straight in the plugin so u can get all the data u need straight from mesh pin like indices and vertices. Then the writer part patch is still ugly and slow as hell… Last updates on that, there is an new 3d format, witch support’s instancing type of pipeline and can be implemented if someone gonna found it basically.

I am searching for this exact same thing! So as far as I’ve been able to put together, the move to dx11 meant that all of the calculations went to the shaders, so that all of the vertex moves that fatalex wants to do, would need to be done in the shader code. This is very unfortunate for vvvv, because it’s a node based program and it is supposed to be non-programmer friendly. With this dx11 shader stuff it’s far from it.

A good move would be the one like the Unreal engine has, where they have a node based material(I guess shader as well) editor. All of the basic functions of the shader are exposed there and then the engine recompiles the shader.

This need to switch from node based programming, what is usually the case with vvvv to text based programming, which is apparently the case with the dx11 pipeline in vvvv is not good. I see it as a huge deterrent to everyone trying out vvvv.

The dynamic geometry example with dx9, where a sphere is deformed using perlin noise, is easily comprehensible(girlpower\Graphics\DX9\Geometry\Dynamic Meshes04_Deform_Sphere_PerlinNoise.v4p). However, the dx11 perlin noise examples, which are in contributions(contribution:vertex-noise-pack), are a pain in the ass to understand. I have no idea of what is going on there, because it’s using shader code.

well now u know, it’s all just code connected with cords ;]

Hopefully soon someone will release some dx11 packs with more modular patchable things in, I know Everyoneishappy has something planned, Dotore was talking about something too. I’ve got stuff but its very specific and none modular at the moment, too many projects, not enough time!

@letoast create new thread upload patch u wanna work out and what exactly u need explained ;]

re dx11 GPU patcher pack: hoping to do an alpha release by end of the month…

1 Like