
Week3
Week 3 Plan:
-
Import a big amount of particles from Houdini to Unreal
Houdini Niagara Test
I also tried to import Gaussian Splat particles into Unreal through Houdini Niagara. The mug didn't have a large number of particles, so it could be imported into Unreal and reconstructed really well. The first video is the mug rendered in Unreal. Then I found that when importing a large number of particles using the Houdini Niagara plugin, it's very time-consuming.
So I followed a tutorial about how to import a large number of particles using a custom tool that can bake the animation like VAT: VAT. The tutorial link is: https://www.youtube.com/watch?v=Yf4IBYPALdo
So basically, Itim passed her Houdini file to me, and I tested it. Following the tutorial, I started by writing VEX.
This is VEX code running in a Houdini Point Wrangle (Run Over set to Points). Its purpose is to rearrange a point cloud into a regular 2D grid so the point data can be baked into a texture. This is a standard technique for GPU particles, VAT (Vertex Animation Textures), or point caches that get read back in a game engine or shader.

And then, generate the position, color, pscale and velocity textures in COPs.

The below showcases how to write the position data into a texture.

This step encodes each point's 3D position as a pixel's color. Once every pixel has been processed, you get a 'position map' — an image where each pixel's RGB stores its corresponding point's XYZ coordinates. A game engine or shader can then sample this image to instantly reconstruct the entire point cloud's positions on the GPU. Other attributes can be captured in the same way.

Cd

Pscale

Velocity
This is what the final result looks like. Because the particle count keeps changing, each particle's ID changes too, so when the animation is baked into a texture, it causes flickering. I also discussed with Danci whether it was possible to make it iterate in Unreal, and Danci said it would be hard, so we gave up on this pipeline.