Vertex Animation Textures ROP 2.0 Released
63593 107 16- mikelyndon-sesi
- Member
- 394 posts
- Joined: May 2017
- Offline
Some of the info in this thread may be out-of-date. Please refer to the VAT 2.1 thread [www.sidefx.com] for more info.
Hi folks. We've just released our first pass of an updated vertex animation textures (VAT) ROP.
You can watch the quick start video for Unity [vimeo.com] and for UE4 [vimeo.com]. Consider this a pre-release. If you have any feedback we'd love to hear it. Big shout out to Ben Laidlaw who did most of the hard work and was kind enough to share with us and the community.
I forgot to mention in the ue4 video that you should turn on “full precision uv's” in your mesh settings.
What can you find in the new version?
* Updated shaders and materials for Unity to work with the LWRP in 2019.
* Updated material functions for UE4.
* Tooltips (Detailed help card coming soon).
* Export presets for different game engines.
* If you double-click on the ROP after exporting you can see a debug version of the mesh and textures that were exported.
* Unity exporting will automatically update the material settings.
* Pad textures to power of 2 for texture streaming.
* 2 textures exported for extra precision when limited to 8bit textures.
* And a bunch of other stuff.
Hi folks. We've just released our first pass of an updated vertex animation textures (VAT) ROP.
You can watch the quick start video for Unity [vimeo.com] and for UE4 [vimeo.com]. Consider this a pre-release. If you have any feedback we'd love to hear it. Big shout out to Ben Laidlaw who did most of the hard work and was kind enough to share with us and the community.
I forgot to mention in the ue4 video that you should turn on “full precision uv's” in your mesh settings.
What can you find in the new version?
* Updated shaders and materials for Unity to work with the LWRP in 2019.
* Updated material functions for UE4.
* Tooltips (Detailed help card coming soon).
* Export presets for different game engines.
* If you double-click on the ROP after exporting you can see a debug version of the mesh and textures that were exported.
* Unity exporting will automatically update the material settings.
* Pad textures to power of 2 for texture streaming.
* 2 textures exported for extra precision when limited to 8bit textures.
* And a bunch of other stuff.
Edited by mikelyndon-sesi - June 9, 2020 16:28:41
- Sirvoxelot
- Member
- 75 posts
- Joined: Oct. 2016
- Offline
- mikelyndon-sesi
- Member
- 394 posts
- Joined: May 2017
- Offline
Yup. Assuming you had a max texture size of 4096, you could have 4096 frames for a mesh that had 4096 vertices. Or you could increase your vertex count and decrease your frame range. So 6000 vertices would require two lines for each frame, giving 2048 frames.
It depends what kind of efficiency you're talking about and which engine you're running. One advantage of alembic files is the importer can filter the data to only use every other frame or some other kind of reduction in favour of performance. VAT just loads the entire texture onto the GPU. Some Alembic implementations also handle certain issues with shadows better.
And then there's also the type of export. Alembic is great for fixed point geometry (vertex count and order is the same for every frame). Fluid sims change every frame so VAT is the preferred solution.
It depends what kind of efficiency you're talking about and which engine you're running. One advantage of alembic files is the importer can filter the data to only use every other frame or some other kind of reduction in favour of performance. VAT just loads the entire texture onto the GPU. Some Alembic implementations also handle certain issues with shadows better.
And then there's also the type of export. Alembic is great for fixed point geometry (vertex count and order is the same for every frame). Fluid sims change every frame so VAT is the preferred solution.
- Sirvoxelot
- Member
- 75 posts
- Joined: Oct. 2016
- Offline
thanks for the reply!
I've been investigating different cache ways to bring in animation into unreal so I've had an eye on animation textures for a while.
With python being added to unreal maybe it would allow for some more ways to bring stuff into the engine more efficiently.
I'm guessing that the precision of the texture is based on the bounding box of the animation? in the link here [vimeo.com] the precision was a bit off, is that fixed with 32bit textures?
does the scene size have some affect on it? say if the bounding box is large or the animation is for example 1,000,000 units away from world space 0?
you say that alembic can handle some certain issues with shadows better? do you have an example on how that would be compared to using just animation textures?
I've found that even since unreal has streaming alembic cache since 4.22, it's still experimental. so large cache files take a long time to load in. I've experienced some taking 2 hours to bring in, and i have no idea if it's crashed or not while it's coming in. so another thought i had was to maybe batch load an alembic animation in parts. or if vertex animation cache is precise, textures seem like a faster way to load in clips to a mesh.
thanks!
I've been investigating different cache ways to bring in animation into unreal so I've had an eye on animation textures for a while.
With python being added to unreal maybe it would allow for some more ways to bring stuff into the engine more efficiently.
I'm guessing that the precision of the texture is based on the bounding box of the animation? in the link here [vimeo.com] the precision was a bit off, is that fixed with 32bit textures?
does the scene size have some affect on it? say if the bounding box is large or the animation is for example 1,000,000 units away from world space 0?
you say that alembic can handle some certain issues with shadows better? do you have an example on how that would be compared to using just animation textures?
I've found that even since unreal has streaming alembic cache since 4.22, it's still experimental. so large cache files take a long time to load in. I've experienced some taking 2 hours to bring in, and i have no idea if it's crashed or not while it's coming in. so another thought i had was to maybe batch load an alembic animation in parts. or if vertex animation cache is precise, textures seem like a faster way to load in clips to a mesh.
thanks!
- dominiksartor
- Member
- 6 posts
- Joined: Aug. 2019
- Offline
Hi Mike,
i tryed to follow your video step by step. But my mesh doesn't start moving in unity. You didn't push the play button, right? The animation starts in that moment, you applyed the texture. Is there any more dokumentation avalible?
(My texture is still purple, even though i changed the shader…)
I do miss something. Thanks for your help and your amazing work
Dominik
i tryed to follow your video step by step. But my mesh doesn't start moving in unity. You didn't push the play button, right? The animation starts in that moment, you applyed the texture. Is there any more dokumentation avalible?
(My texture is still purple, even though i changed the shader…)
I do miss something. Thanks for your help and your amazing work
Dominik
- NotSure
- Member
- 33 posts
- Joined: July 2017
- Offline
Hello again,
I watched the “Vertex Animation Textures 2.0 UE4 Quickstart” over and over but I could not get it to work. VAT 1.0 looked like a ton of triangles when it wasn't working but this version doesn't show anything. When I have the wrong settings, I can see the triangle chaos, but as soon as I put in the settings from Houdini, it vanishes, and I don't even see it in wireframe mode.
I think it may be something with the textures. I've followed along but I noticed in the material when I have the texture set to HDR it wants the texture object to be “color linear” and when I switch it Vector Displacement it errors until it's switched “color”.I'm suspect that there's something up with the textures, maybe from import, but I really don't have any clues.
I'm currently trying the fluids shader.
Any help is very much appreciated.
I watched the “Vertex Animation Textures 2.0 UE4 Quickstart” over and over but I could not get it to work. VAT 1.0 looked like a ton of triangles when it wasn't working but this version doesn't show anything. When I have the wrong settings, I can see the triangle chaos, but as soon as I put in the settings from Houdini, it vanishes, and I don't even see it in wireframe mode.
I think it may be something with the textures. I've followed along but I noticed in the material when I have the texture set to HDR it wants the texture object to be “color linear” and when I switch it Vector Displacement it errors until it's switched “color”.I'm suspect that there's something up with the textures, maybe from import, but I really don't have any clues.
I'm currently trying the fluids shader.
Any help is very much appreciated.
- mikelyndon-sesi
- Member
- 394 posts
- Joined: May 2017
- Offline
Couple of things to check. Have you checked the debug output in Houdini to make sure the mesh and textures are being created correctly? You can double click on the VAT node to see the debug view.
Are you using the material function code supplied with the VAT 2.0 node? The old code might not work with the latest version.
Are you using the material function code supplied with the VAT 2.0 node? The old code might not work with the latest version.
- zhujing
- Member
- 2 posts
- Joined: Dec. 2019
- Offline
Hi Mike,
I have followed your video “Vertex Animation Textures 2.0 Unity Quickstart” step by step to create a fluid effect form houdini to unity.Everything is OK until I found the material in mesh have a strange shadow,just like some triangle in the mesh always been flikering. I have no idea about if this is the shortage of this technich or I do something woring. The result in unity is like the picture below.
I used unity 2019.3.0 with URP Render Pipeline and Houdini17.5 with Game develop toolset 1.209 Release Stable Branch.
Any help is very much appreciated.
I have followed your video “Vertex Animation Textures 2.0 Unity Quickstart” step by step to create a fluid effect form houdini to unity.Everything is OK until I found the material in mesh have a strange shadow,just like some triangle in the mesh always been flikering. I have no idea about if this is the shortage of this technich or I do something woring. The result in unity is like the picture below.
I used unity 2019.3.0 with URP Render Pipeline and Houdini17.5 with Game develop toolset 1.209 Release Stable Branch.
Any help is very much appreciated.
Edited by zhujing - Dec. 12, 2019 07:20:10
- mikelyndon-sesi
- Member
- 394 posts
- Joined: May 2017
- Offline
- zhujing
- Member
- 2 posts
- Joined: Dec. 2019
- Offline
Hello,again and Thans for your reply!
Yes,I have tried another five meshs just like below :
As the picture shows,even if the vertex has already been almost 30000, the faces also look like flitering.Is the vertexs of mesh still not enought?So How many vertexs should I use to acheive a better look in general?Because I need to use this in Android phone, I'm afraid of high count of vertexs will lead a poor performance.
Yes,I have tried another five meshs just like below :
As the picture shows,even if the vertex has already been almost 30000, the faces also look like flitering.Is the vertexs of mesh still not enought?So How many vertexs should I use to acheive a better look in general?Because I need to use this in Android phone, I'm afraid of high count of vertexs will lead a poor performance.
- mikelyndon-sesi
- Member
- 394 posts
- Joined: May 2017
- Offline
- GenesisCry
- Member
- 12 posts
- Joined: Sept. 2018
- Offline
EDIT: Found the solution. Mesh was doublesided and had collisions, fixing this solved the issue.
Hey Mike,
so I'm trying to export a vertex animation of a simulation I did. This vertex animation will then be used in Unreal for a project I'm working on.
My issue here is that when I try to export a mesh I get an error as seen on the pictures.
Also I get 2 different interfaces when creating the VAT node from the shelf tool and when creating it from the tab selection.
(VAT from TAB selection is slower because it pre-cooks all the frames I guess?)
The error is about packed normals/ render position but I do not really understand what they mean by that.
I tried looking it up on google but unfortunately I didn't find any solution.
Do you happen to know why the export won't work?
I would like to share the Hip file but the cache I'm using is 6.7GB so it's too Heavy to post.
Also for the sake of clarity I'll explain what each pictures need to show:
1) Error message from VAT node created from shelf tool
2) Error message from VAT node created from TAB selection
3) UI of the VAT node created from shelf tool
4) UI of the VAT node created from TAB selection
5) UV's
Thanks in advance,
Hey Mike,
so I'm trying to export a vertex animation of a simulation I did. This vertex animation will then be used in Unreal for a project I'm working on.
My issue here is that when I try to export a mesh I get an error as seen on the pictures.
Also I get 2 different interfaces when creating the VAT node from the shelf tool and when creating it from the tab selection.
(VAT from TAB selection is slower because it pre-cooks all the frames I guess?)
The error is about packed normals/ render position but I do not really understand what they mean by that.
I tried looking it up on google but unfortunately I didn't find any solution.
Do you happen to know why the export won't work?
I would like to share the Hip file but the cache I'm using is 6.7GB so it's too Heavy to post.
Also for the sake of clarity I'll explain what each pictures need to show:
1) Error message from VAT node created from shelf tool
2) Error message from VAT node created from TAB selection
3) UI of the VAT node created from shelf tool
4) UI of the VAT node created from TAB selection
5) UV's
Thanks in advance,
Edited by GenesisCry - Dec. 18, 2019 08:45:25
- mikelyndon-sesi
- Member
- 394 posts
- Joined: May 2017
- Offline
HI. The shelf tool was still creating the older version of the VAT node. I've submitted a change to the github repo to generate the latest version of the VAT node.
As for your errors, it's really difficult to tell what could be causing the problem from the info you've provided. If you could share the hip file, even without the cache, I might be able to figure out the problem.
As for your errors, it's really difficult to tell what could be causing the problem from the info you've provided. If you could share the hip file, even without the cache, I might be able to figure out the problem.
- zeekindustries
- Member
- 9 posts
- Joined: May 2013
- Offline
Hey guys!
I'm just starting to fiddle more in detail with the VAT workflow on Unity.
I'd like to ask you Mike if it's possible to export custom attributes with the VAT node.
I found that there's an Import Attribute/Export Attribute tab that reads P, I tried typing a custom attribute but it just rendered the position regardless of that.
Is there anything extra that I should setup for this to work in my particular case?
What I want to do is follow Keijiro's example [github.com] and have some behaviors being driven by animated attributes from Houdini.
Any help or guidance will be very much appreciated Mike, thanks a lot! Awesome work ;D
I'm just starting to fiddle more in detail with the VAT workflow on Unity.
I'd like to ask you Mike if it's possible to export custom attributes with the VAT node.
I found that there's an Import Attribute/Export Attribute tab that reads P, I tried typing a custom attribute but it just rendered the position regardless of that.
Is there anything extra that I should setup for this to work in my particular case?
What I want to do is follow Keijiro's example [github.com] and have some behaviors being driven by animated attributes from Houdini.
Any help or guidance will be very much appreciated Mike, thanks a lot! Awesome work ;D
- DevGiraffe
- Member
- 1 posts
- Joined: Aug. 2019
- Online
Hi Mike,
In my tests here with VAT (and I think you also had the same issue in the Unity video link that you added in your first post) I had a hard time with the rotation of each separate elements. It seems like there is something wrong with each elements pivot.
With scattered objects it seems less obvious, but with distinct objects (with angled velocity applied) it get quite crazy.
I will attach a simple scene file already ready for export to unity.
I will also attach a printscreen of the animation in houdini and unity, to try to show the issue. Both images should be looking the same, but there is something clearly wrong in unity.
I thought if it could be something related to gimbal lock, but I think it is probably something I did wrong.
Thanks for any insight you could possibly give me!
Cheers,
Rafael Bottari Martinez
In my tests here with VAT (and I think you also had the same issue in the Unity video link that you added in your first post) I had a hard time with the rotation of each separate elements. It seems like there is something wrong with each elements pivot.
With scattered objects it seems less obvious, but with distinct objects (with angled velocity applied) it get quite crazy.
I will attach a simple scene file already ready for export to unity.
I will also attach a printscreen of the animation in houdini and unity, to try to show the issue. Both images should be looking the same, but there is something clearly wrong in unity.
I thought if it could be something related to gimbal lock, but I think it is probably something I did wrong.
Thanks for any insight you could possibly give me!
Cheers,
Rafael Bottari Martinez
- ermperson
- Member
- 2 posts
- Joined: March 2017
- Offline
I would like to be able to import sprites with orientation and scale settings. It can come in handy for quick processing of splines, lines from a Houdini. For example, as an import of lightning.
For a better understanding, I’ll attach a “hip” file from which it should be clear that I want to easily expect inside the “unreal” .
Alternatively, just resample a lot of points or export geometry from “polywire”, but in both cases performance and flexibility will drop drastically.
I hope you will implement a similar approach in future versions. Thanks.
For a better understanding, I’ll attach a “hip” file from which it should be clear that I want to easily expect inside the “unreal” .
Alternatively, just resample a lot of points or export geometry from “polywire”, but in both cases performance and flexibility will drop drastically.
I hope you will implement a similar approach in future versions. Thanks.
- is
- Member
- 4 posts
- Joined: June 2019
- Offline
Seems like the Position min/max does not properly update still.
Here trying with just a box it doesn't even update for that
Update:
trying with my actual mesh with a keyframe animation via fbx import has worked when I selected the specific mesh node inside the object rather than the entire node.
HOWEVER, the animation is still completely wonky inside ue4..
Pic 3 is just a screengrab but in realtime instead of a bird flapping its wings its just a jumbled mess.
Is there an explanation somewhere on how the softbody animation is supposed to work? The video only shows how rigid body works.
Here trying with just a box it doesn't even update for that
Update:
trying with my actual mesh with a keyframe animation via fbx import has worked when I selected the specific mesh node inside the object rather than the entire node.
HOWEVER, the animation is still completely wonky inside ue4..
Pic 3 is just a screengrab but in realtime instead of a bird flapping its wings its just a jumbled mess.
Is there an explanation somewhere on how the softbody animation is supposed to work? The video only shows how rigid body works.
Edited by is - Feb. 12, 2020 01:08:05
- mikelyndon-sesi
- Member
- 394 posts
- Joined: May 2017
- Offline
The core concepts for the different VAT exports are the same. Make sure your mesh has uv's (unless it's a fluid).
In UE4 make sure you've turned on “Use Full Precision UV's” on the mesh
For all VAT textures, change the Filter to “Nearest”.
In UE4 make sure you've turned on “Use Full Precision UV's” on the mesh
For all VAT textures, change the Filter to “Nearest”.
isBased on your Position Max/Min values, I'm going to assume the flying animation covers a large distance. The VAT texture will never by 100% accurate and loses precision the larger the bounding box. Have you tried exporting the bird animation with it locked to the origin? You might have better luck that way.
HOWEVER, the animation is still completely wonky inside ue4.
ermpersonI'm not too sure what you're trying to do after looking at the file. The Vertex Animation Textures are designed to store animation of vertices or objects that can be played back on the GPU. If you want to instance tubes onto points inside the game engine, you could use the rigid export which will give you a centroid for each chunk (tube). But you would still need to export a mesh that included every tube to be used.
I would like to be able to import sprites with orientation and scale settings. It can come in handy for quick processing of splines, lines from a Houdini. For example, as an import of lightning.
- Sean_Soh
- Member
- 3 posts
- Joined: Dec. 2018
- Offline
Hey Mike!
Thanks for the great work to release VAT 2.0!
Initially I was having issue moving stuff from VAT 1.0 to VAT 2.0 in Unity HDRP. (e.g. removing alignment conversion nodes)
So while I was trying to get a complex sim porting over to VAT, I realize that I would need some optimization and went with the gamedev destruction cleanup sop. But soon enough I realized that it produces some differences visually.
Basically it looks like some pieces were stuck with a single sim point.
I went back to check on the original tutorial posted by Paul but the node do required an original static geo, similar to how I setup using transform pieces, which I do not see in the new destruction cleanup sop as it only takes in the sim and bound now.
So just wonder, if you could share more insight on that, and what would be the best approach to make the sim compatible with VAT?
As I was looking through VAT 2.0, please correct me if i'm getting it wrong, these are the attributes required I assume as :
P - Position of each vertices in world space
Pivot - New in VAT 2.0 correct? This is the pivot of each fragment
Orient - each frag rotation in quat
Rest - initial rest position
UV2 - for pos/rot mapping coord
Thanks for the great work to release VAT 2.0!
Initially I was having issue moving stuff from VAT 1.0 to VAT 2.0 in Unity HDRP. (e.g. removing alignment conversion nodes)
So while I was trying to get a complex sim porting over to VAT, I realize that I would need some optimization and went with the gamedev destruction cleanup sop. But soon enough I realized that it produces some differences visually.
Basically it looks like some pieces were stuck with a single sim point.
I went back to check on the original tutorial posted by Paul but the node do required an original static geo, similar to how I setup using transform pieces, which I do not see in the new destruction cleanup sop as it only takes in the sim and bound now.
So just wonder, if you could share more insight on that, and what would be the best approach to make the sim compatible with VAT?
As I was looking through VAT 2.0, please correct me if i'm getting it wrong, these are the attributes required I assume as :
P - Position of each vertices in world space
Pivot - New in VAT 2.0 correct? This is the pivot of each fragment
Orient - each frag rotation in quat
Rest - initial rest position
UV2 - for pos/rot mapping coord
- ermperson
- Member
- 2 posts
- Joined: March 2017
- Offline
mikelyndon-sesi“Rigid export” can only export a fixed topology. If the topology is animated, then it is not suitable for exporting lines, spline.
I meant to export points from the Houdini to Unreal which would scale correctly with respect to their “Normal” and rotate relative to the camera (like the “Ribbon” tapes in Niagara) and appear as elongated sprites along the direction of the line. At the moment, this can’t be done, I suggested realizing this in the future. I hope it became clearer
Edited by ermperson - Feb. 19, 2020 00:45:43
-
- Quick Links