RBD Paint issue: Shows strokes but doesn't apply
533 4 2-
- Torasandayo
- Member
- 3 posts
- Joined: 5月 2026
- Offline
Hello!
I am currently setting up an RBD simulation at the SOP level and using the RBD Paint node to paint the active attribute on a fractured mesh.
However, I am experiencing an issue where the node fails to actually paint. The brush cursor itself seems to correctly snap to and follow the surface of the geometry. But when I click and drag to paint, it only leaves behind the stroke path (the drawn lines/curves), and the actual paint effect (color/attribute change) is not applied to the mesh at all.
This issue is highly inconsistent. Sometimes the node works perfectly fine, but other times it behaves like this, only showing the stroke curves without actually painting anything.
Is this a known viewport/display bug, or could it be related to the geometry's prerequisites (such as topology or normals) causing the paint projection to fail? Any insights or workarounds would be greatly appreciated.
Environment:
Houdini 19.0.720
Windows 11
I am currently setting up an RBD simulation at the SOP level and using the RBD Paint node to paint the active attribute on a fractured mesh.
However, I am experiencing an issue where the node fails to actually paint. The brush cursor itself seems to correctly snap to and follow the surface of the geometry. But when I click and drag to paint, it only leaves behind the stroke path (the drawn lines/curves), and the actual paint effect (color/attribute change) is not applied to the mesh at all.
This issue is highly inconsistent. Sometimes the node works perfectly fine, but other times it behaves like this, only showing the stroke curves without actually painting anything.
Is this a known viewport/display bug, or could it be related to the geometry's prerequisites (such as topology or normals) causing the paint projection to fail? Any insights or workarounds would be greatly appreciated.
Environment:
Houdini 19.0.720
Windows 11
-
- npetit
- スタッフ
- 459 posts
- Joined: 2月 2008
- Offline
-
- Torasandayo
- Member
- 3 posts
- Joined: 5月 2026
- Offline
Thank you for the quick response.
To answer your question about the attribute: Yes, the values in the Geometry Spreadsheet are indeed changing and varying (e.g., shifting between 0 and 1) when I stroke with the brush. The data itself seems to be written correctly, but nothing is being rendered or visualized in the 3D viewport—it remains completely gray.
Additionally, I noticed a very strange behavior regarding how this node cooks the geometry:
Initial State: My upstream Box SOP has its Axis Divisions set to 10. However, the moment I select the RBD Paint SOP, all division lines disappear from the viewport, and the point count in the Geometry Spreadsheet drops to 8 (behaving like a default proxy box).
The Phenomenon: If I go to the Geometry tab at the bottom of the RBD Paint parameters, toggle the Division Size checkbox ON, and then toggle it OFF, the original Box divisions suddenly reappear. The point count in the spreadsheet also instantly jumps from 8 back to the original number.
Even after forcing the geometry to update this way, the painted color still refuses to show up in the viewport.
I am using build 19.0.720 to match the older version 19 tutorial that I am currently following.
I have attached the .hip file where this issue occurs. It would be greatly appreciated if you could look into it.
To answer your question about the attribute: Yes, the values in the Geometry Spreadsheet are indeed changing and varying (e.g., shifting between 0 and 1) when I stroke with the brush. The data itself seems to be written correctly, but nothing is being rendered or visualized in the 3D viewport—it remains completely gray.
Additionally, I noticed a very strange behavior regarding how this node cooks the geometry:
Initial State: My upstream Box SOP has its Axis Divisions set to 10. However, the moment I select the RBD Paint SOP, all division lines disappear from the viewport, and the point count in the Geometry Spreadsheet drops to 8 (behaving like a default proxy box).
The Phenomenon: If I go to the Geometry tab at the bottom of the RBD Paint parameters, toggle the Division Size checkbox ON, and then toggle it OFF, the original Box divisions suddenly reappear. The point count in the spreadsheet also instantly jumps from 8 back to the original number.
Even after forcing the geometry to update this way, the painted color still refuses to show up in the viewport.
I am using build 19.0.720 to match the older version 19 tutorial that I am currently following.
I have attached the .hip file where this issue occurs. It would be greatly appreciated if you could look into it.
Edited by Torasandayo - 2026年5月20日 02:57:19
-
- npetit
- スタッフ
- 459 posts
- Joined: 2月 2008
- Offline
The node caches the output to speed things up. What this means however is if the input changes, you need to re-apply the strokes.
In the Geometry tab, when you enable or change the division size, it updates the topology based on the input geo, so it reloads the input and reapplies the strokes.
In order not to pollute the output unecessarily, the extra divisions and the vis_falloff attribute are added to the geometry fed into an output node for display only.
Houdini HDAs and subnets can have Output SOPs with negative indices. These won't show up as outputs on the node, but you can still set the node's Output for View Flag to point to their negative index, telling the viewport to show the geometry connected to that Output SOP instead of the geometry coming out of the outputs visible on the node.
When the node is created or loaded, a callback script is executed which sets the node's outputforviewflag to -1.
This should be visible in the network view.
Normally, to switch display between outputs, you can right click on the node and under Flags > Output for View, choose one of the outputs. However, the negative index outputs aren't listed.
What seems to happen is you are switching output for view flags on the node which then shows the default output geo without the visualiser attribs. Unfortunately, and this is a bug, the node only sets its outputforviewflag back when the hip file is loaded again, which isn't ideal.
You can set it back with a bit of python:
Or, instead of relying on the visualiser of the hidden display node, you can visualise the painted attribute directly
In the Geometry tab, when you enable or change the division size, it updates the topology based on the input geo, so it reloads the input and reapplies the strokes.
In order not to pollute the output unecessarily, the extra divisions and the vis_falloff attribute are added to the geometry fed into an output node for display only.
Houdini HDAs and subnets can have Output SOPs with negative indices. These won't show up as outputs on the node, but you can still set the node's Output for View Flag to point to their negative index, telling the viewport to show the geometry connected to that Output SOP instead of the geometry coming out of the outputs visible on the node.
When the node is created or loaded, a callback script is executed which sets the node's outputforviewflag to -1.
This should be visible in the network view.
Normally, to switch display between outputs, you can right click on the node and under Flags > Output for View, choose one of the outputs. However, the negative index outputs aren't listed.
What seems to happen is you are switching output for view flags on the node which then shows the default output geo without the visualiser attribs. Unfortunately, and this is a bug, the node only sets its outputforviewflag back when the hip file is loaded again, which isn't ideal.
You can set it back with a bit of python:
hou.node('/obj/geo1/rbdpaint3').setOutputForViewFlag(-1)
Or, instead of relying on the visualiser of the hidden display node, you can visualise the painted attribute directly
-
- Torasandayo
- Member
- 3 posts
- Joined: 5月 2026
- Offline
Thank you so much for the detailed explanation!
Your insights cleared up the mystery. Now I understand what was happening under the hood with the hidden display node (negative index output) and the viewport flag bug. It is a huge relief to know that the actual data was fine and it was just a viewing issue.
Your insights cleared up the mystery. Now I understand what was happening under the hood with the hidden display node (negative index output) and the viewport flag bug. It is a huge relief to know that the actual data was fine and it was just a viewing issue.
-
- Quick Links

