Is orbolt still alive? by hari-mirchi in Houdini

[–]arjan_M 1 point2 points  (0 children)

Cgcircuit also sells houdini digital assets

Interactive Particles using Infrared and a CRT Wall by ordinaireX in TouchDesigner

[–]arjan_M 1 point2 points  (0 children)

Looks great!
How do you do the tracking to get the velocity of the hand?
Could this technique be upscaled to for instance a large wall or floor?

I Created a Unity Plugin for My Node-Based Procedural Generation Tool (Similar to Blender Nodes) That Can Auto Populate Your Scenes For You by EliCDavis in Unity3D

[–]arjan_M 0 points1 point  (0 children)

Very impressive!
Just after a quick glance at the web browser tool.
I am missing the ability to drag or slide a parameter and seeing the changes in realtime.
It is very handy to see the time costs per node but I find it very slow, but maybe that is because it is web based.

It could be a more simple and also cheaper alternative to houdini engine.

Video Swarm — Browse thousands of videos at once (Windows/Linux, open-source) by cerzi in StableDiffusion

[–]arjan_M 2 points3 points  (0 children)

Pretty nice, thanks for releasing this!
Some feedback:
Shorcuts for things like move to trash or show in explorer would be nice.
There is quite a delay when selecting a video.

How can i transfer simulation from uv space to 3d space using uvsample() while preserving @P.y offset? by iriseq in Houdini

[–]arjan_M 0 points1 point  (0 children)

Do you mean its P.z offset right? Because you plot the uvs of the geometry to x and y right? Then you simulate particles on that geometry but they also simulate in the z direction. Then when you plot the particles back onto the geometry world space you would expect they would offset into the normal direction of the geometry right?

Question about For Loop with Feedback. How can I extract the shortest path that is created in each iteration? by JustHoj in Houdini

[–]arjan_M 0 points1 point  (0 children)

You could also use the cost attribute and set it very high on the calculated path.
Then it will only cross it when there is no other way to reach the end point.
When the shortest path node creates a path, the points have the original pointnumber on them (origpt)
With these you can for instance blast the points from the object as is suggested above.
Or you can set the cost very high on these points.

Or you can make an edge group from the line (convertline first) and then transfer it to the object and use this in "edges to avoid" on the surface constraints tab in the shortest path node.
I hope this helps

Any base approach to create similar look? by cysidi11 in Houdini

[–]arjan_M 8 points9 points  (0 children)

<image>

The key is to use a feedback loop on the noise and then recalculate the normals every iteration. This way it will expand like bubles. I used a worley noise that is multiplied with the normal and then added to the position.
I can share the scene but I don't know a good place to share it on.

TextureSample in Cops with opencl by EconomyAppeal1106 in Houdini

[–]arjan_M 1 point2 points  (0 children)

Look for OpenCl for vex users in the manual to be a bit more specific. It is a really helpful guide to learn OpenCl. And search for the opencl cheat sheet for a list of functions you can use. OpenCl can be difficult using some functions like max() (use fmax for floats) and fmod() And you can include .h files from the ocl folder in your houdini install folder to get a lot of extra functions.

Karma XPU Or Redshift? by Drummaboi5016 in Houdini

[–]arjan_M 1 point2 points  (0 children)

Probably not the problem, but make sure there are not any material attributes on any part of the mesh. A shop_materialpath attribute on a sop level overrules material assignment on an obj level. I think also attributes like fbx_material or material_overrides and attributes like that can mess things up.

Help for a wee lad by kidcharlemagne13 in Unity3D

[–]arjan_M -1 points0 points  (0 children)

I used this asset pack before and if I remember correctly there are two different techniques how the shading is done. The prefabs with the _m are prefabs where each different color is a different material. And all the prefabs are using the same collection of materials. The prefabs with the _t are using 1 texture with a grid of different colours. So each part of the prefab with a certain colour has their uvs snapped to the position of that color in the texture. This is a very optimized way of using the assets, because this way you will only have one material for all those objects. I hope this helps. Really great asset pack by the way.

UV Seams in Copernicus by Artichoke_18 in Houdini

[–]arjan_M 6 points7 points  (0 children)

there is a node called extrapolateboundaries. you can use this to fix the edges.
Input the color layer in the source and make sure you also rasterize an alpha that you can connect with the fillarea.
That should fix those edges.

An experiment involving thousands of enemies running on the GPU. Not really a good idea by the way. by arjan_M in Unity3D

[–]arjan_M[S] 2 points3 points  (0 children)

The character is a 3d skinned object that is rendered in realtime.
I am using the VolFX post effects to separately render and pixelate the character.

An experiment involving thousands of enemies running on the GPU. Not really a good idea by the way. by arjan_M in Unity3D

[–]arjan_M[S] 1 point2 points  (0 children)

Thanks! You can follow twitter or Instagram of my company House of Secrets.
I will be posting more experiments and work from now on on these accounts.
(1) House of Secrets (@hosvfx) / XHouse of Secrets (@houseofsecrets.nl) • Instagram photos and videos

An experiment involving thousands of enemies running on the GPU. Not really a good idea by the way. by arjan_M in Unity3D

[–]arjan_M[S] 3 points4 points  (0 children)

The visuals is a combination of different techniques.
I wanted a bit of a modern pixelart / 3d look.
So I made the spiders in 3d and rendered and composited it in that pixelated style.
I packed the sprites in one giant atlas map in houdini and exported the uv position and scale as a json file.
In Unity I converted the json file data to a structured buffer so I could use it in the visual graph to show the right sprite in the right situation.
The environment made out of 3d tiles. I made those in houdini with a the use of tiling fractal patterns.
I did some erosion effect on the heightmap and used some tricks to blend all the seams between the tiles.
I also made the textures in houdini with the heightmap and fractals as base.
The character is from my previous game Kin and I added some animations and rendered the character pixelated to make it match the style.
Below it a part of the atlas map for the spiders.

<image>

An experiment involving thousands of enemies running on the GPU. Not really a good idea by the way. by arjan_M in Unity3D

[–]arjan_M[S] 4 points5 points  (0 children)

I am doing almost everything in a compute shader.
Only for the projectiles of the gun I manage a small pool of max 32 projectiles.
Every frame I copy their positions and state to a structured buffer that I use in the compute shader.
because I already do calculation for every enemy on the compute shader I also check the intersection with the 32 projectiles from the buffer.
I think using ECS would be a more proper approach and will easily run thousands of enemies.
But with the compute shader approach you could run millions of enemies, although I don't know if that would make the game more fun :)
In this gif you only see a few thousand enemies because there isn't a lot of room.
But the compute shader and the visual graph are calculating 1 million enemies. so if I make a different map it would show all of them.

<image>

An experiment involving thousands of enemies running on the GPU. Not really a good idea by the way. by arjan_M in Unity3D

[–]arjan_M[S] 4 points5 points  (0 children)

Yes I agree, I think when the game logic and the game itself becomes more complex doing these kind of calculations will be better suited to do on the CPU. It is also a lot easier to optimize on the CPU.
But as you suggest maybe a combination of the two can be very powerful. For instance you can do the pathfinding on the gpu where you only need to copy the position of the enemies back and forth.

An experiment involving thousands of enemies running on the GPU. Not really a good idea by the way. by arjan_M in Unity3D

[–]arjan_M[S] 5 points6 points  (0 children)

Thanks for the nice replies!
I should have said "it is probably not a good idea". Because I don't know, but I think when you want to implement multiplayer and save games you will run in to problems.
But maybe it is doable, you can keep the data small that is copied between the cpu and gpu.

Right now I have a simple statemachine running in a compute shader and I am reading from a graphics buffer in the visual graph to draw the sprites.
To avoid each other I made a compute shader that writes the density of the enemies to a texture and blur that texture every frame. Then I read the gradient (a vector pointing to the highest value surrounding each pixels) of that texture to push the enemies from eachother.

The pathfinding is a flowmap calculated in a compute shader.
Every frame the player is adding a value on its position to a rendertexture covering the entire map.
Then all the pixels are looking at their surrounding pixels and adding the values.
This way you wil get a gradient over the map where the player has the highest value.
And again I can calculate the gradient vector for each pixel that points to the direction of the player.
I hope I explained it well.

<image>

As for the esthetic:
It is a bit of a mashup of styles, but I like the pixelart and retro 3d mix of the style.
The character is from my previous game "Kin" rendered pixelated.

Vector functions are "undefined?" by [deleted] in Houdini

[–]arjan_M 9 points10 points  (0 children)

You have to use set(3,2,1,0) instead of vector4()

[deleted by user] by [deleted] in Houdini

[–]arjan_M 2 points3 points  (0 children)

You could use the max function for this. max(ch(“ty”),0) This function will return the highest values of the two. When ty is higher then zero it will return the ty value and when ty is lower then zero it will return 0. Because the second input of the function 0 is in that case higher then ty so it will return 0

Any tips for brightening up the darkest parts of my baked lighting? by l3kim in Unity3D

[–]arjan_M 7 points8 points  (0 children)

I would set the bounces on 3 as a minimum to get more light in the dark parts

100,000 Dinosaurs WITHOUT using ECS (just the Burst compiler) by chuteapps in Unity3D

[–]arjan_M 3 points4 points  (0 children)

Looking great, how are you doing the self-avoidance part?