Open HSDSZ opened 2 years ago
It's weird, because Blender reports the instances as instances of the Sphere object (which they are not) and the Sphere object mesh is empty. I guess this is a bug on the Blender side? I'd need to take a more in-depth look.
In any case, you can workaround the issue with the Realize Instances
node:
Realize instance works, but the number of triangles increases sharply. I found another work around by instance the whole collection instead of the object
@pragma37 are you aware of the changes made to the API regarding geometry instancing in 3.0 + ? I dont quite understand it myself but in case you have not seen it already here is a link to the changes made in that area (scroll a bit down under 'Geometry Instancing') https://wiki.blender.org/wiki/Reference/Release_Notes/3.0/Python_API#Breaking_Changes
@Kolupsy Seems likely related. Thank you, I'll take a look at it.
Edit: Nope, same issue. :(
With previous Malt version, instancing collection is still a workaround. If I use the latest development version, it does not work
🤦
I reverted the changes I made. Thank you for reporting.
I reverted the changes I made. Thank you for reporting.
Instanced geometry is still not rendered by Malt. What is keeping this issue from being fixed?
I don't remember the details, but iirc there was no way to retrieve the actual mesh data.
The new API didn't fix that and actually introduced new issues.
The text drawing is not getting positioned correctly for me, though.
Did you ask the Blender Developers about this? I think it would be pretty important to address this issue. I wanted to create a task on the Blender Dev Talk but I actually do not know all the details about this issue. Also I have come across another addon developer working on a custom render engine and they confirmed that they couldnt render instanced geometry in GN using their engine either
Did you ask the Blender Developers about this?
Not yet. I have to set a minimal reproduction script before that.
In my test case the Circle object has geometry nodes that instances Cube.
In MaltRenderEngine.py around line 202
for instance in depsgraph.object_instances:
if instance.instance_object:
obj = instance.instance_object
parent = instance.parent
if is_f12 or (visible_display(obj) and visible_display(parent) and
parent.visible_in_viewport_get(context.space_data)):
id = abs(instance.random_id) % (2**16)
add_object(instance.instance_object, instance.matrix_world, id)
When rendering Circle, the instance.instance_object is also Circle, when it should be Cube.
To fix this I added the object info node and checked the "As Instance" box which makes it behave correctly again.
Without:
With:
Malt version
Development-latest
Blender version
Blender 3.1
OS
Windows 11 64bits
Hardware info
Intel i5-9400F | 8 GB RAM | NVDIA GTX 1660 Ti
Issue description and reproduction steps
In eevee/cycles, the instances auto inherit the shader of original object
If I switch to Malt render engine, the instances become transparent even with set material node added
Can this be fixed from the MALT part?
Attachments
instances become transparent in geo node.zip