Yes.
Everything I mentioned so far is implemented now, I'm currently trying to add one last feature that could be useful.
Yes.
Code: Select all
[Plane: ParticleSystem] Exporting hair
[LuxCore][26.161] Refining 100000 strands
[LuxCore][26.884] Strands mesh: 2133333 triangles
[LuxCore][27.365] Refining time: 1.2 secs
[SDL][27.369] Texture definition: 140050749790216
[SDL][27.369] Reading texture map: /tmp/tmpwc8palj5.jpg
[SDL][27.456] Material definition: Surface_Material__002_140050781808648
[SDL][27.458] Scene objects count: 1
[Plane: ParticleSystem] Hair export finished (20.579 s)
Code: Select all
[Plane: ParticleSystem] Exporting hair
Changing resolution to RENDER took 1.523 s
Collecting Blender hair information took 5.661 s
[LuxCore][9.987] Removed 1 invalid points
Preparing strands took 0.097 s
[LuxCore][10.004] Refining 100000 strands
[LuxCore][10.636] Strands mesh: 6399996 triangles
[LuxCore][10.986] Refining time: 0.981 secs
[SDL][10.987] Texture definition: 139725391321096
[SDL][10.987] Reading texture map: /tmp/tmpumpaoxqy.jpg
[SDL][11.084] Material definition: Surface_Material__002_139725440133128
[SDL][11.085] Scene objects count: 1
[Plane: ParticleSystem] New Hair export finished (8.361 s)
Note: this only concerns Embree (CPU rendering) from what I could see in my tests, so the option will only be available if CPU rendering is selected.B.Y.O.B. wrote: ↑Mon Sep 17, 2018 2:46 pm Also, the hair is no longer defined as an instanced mesh.
This means that rendering is faster.
However, the accelerator will use more memory if the mesh is not instanced. In the test above, the whole Blender process used 1.1 GiB with hair as instance and 1.7 GiB with non-instanced hair.
So the extra speed (930k Samples/sec vs. 770k Samples/sec) comes with a cost in memory.
I think I will add an option to enable instancing for hair, to save memory.
Code: Select all
[Exporter] create_session
[SDL][11.216] Camera type: perspective
[SDL][11.216] Camera position: Point[1.44414, -0.914483, 0.491676]
[SDL][11.216] Camera target: Point[1.43705, -0.90897, 0.487281]
[SDL][11.216] Camera clipping plane disabled
Unpacking image "productimage-picture-30716-diamond-grid-368.jpg" to temp file "
C:\Users\xxx\AppData\Local\Temp\tmpu8_ji3io.jpg"
[Plane: ParticleSystem] Exporting hair
Changing resolution to RENDER took 0.011 s
WARNING: [Plane: ParticleSystem] 'NoneType' object has no attribute 'source'
Traceback (most recent call last):
File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\BlendLuxCore\export\hair.py", line 176, in convert_hair
image_filename = ImageExporter.export(settings.image, settings.image_user, scene)
File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\BlendLuxCore\export\image.py", line 43, in export
if image.source == "GENERATED":
AttributeError: 'NoneType' object has no attribute 'source'
[SDL][11.357] Texture definition: 246930504
[SDL][11.357] Reading texture map: C:\Users\xxx\AppData\Local\Temp\tmpu8_ji3io.jpg
[SDL][11.497] Material definition: Surface_Material__002_247016120
[SDL][11.497] Scene objects count: 1
Sorry for the bump, but I was wondering, was this ever added as an option? I'm using the C++-API and I'm trying to render an animal with ~3m hair, but it requires too much memory to be viable (I'm using TESSEL_RIBBON_ADAPTIVE). I wouldn't mind slower rendering if it meant saving memory, but I couldn't find an option for instancing anywhere.
Thank you! Turns out I've already used instancing without realizing.B.Y.O.B. wrote: ↑Sun Mar 14, 2021 8:56 pm Yes, it's implemented here: https://github.com/LuxCoreRender/BlendL ... ir.py#L229
If use_instancing is True here, instancing is enabled for the mesh by setting an identity matrix for the "transformation" property. If this property is not defined, the mesh is not instanced.