-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rendering doesnt wait for sequence streaming to load #123
Comments
First of all, thank you for providing the error message. That's really helpful. Quick questions: |
Hi, Thanks for the fast response. Regards |
You might want to try Blender 2.83.12 LTS. It seems to be a little more stable than 2.91.x in some circumstances. I'm going to look into that error message and see if the PLY importer changed from 2.83 to 2.91. Also, if possible, you might want to try .obj or .stl. But I understand that could be a lot of work if not impossible. |
Looks like WillemKauf ran into the same issue. |
I think this is a problem with the PLY importer. I've just filed a bug with Blender: https://developer.blender.org/T85770 |
Hello @neverhood311, I just wanted to write that this problem also occurred to me. I am using Blender 2.93 alpha. |
Hi. I have the same error with blender 3.0.1. I also tried Blender 3.2.0, compile directly from the git sources and the same error message and behavior. Can you pleasse point me towards a workaround or a place in the code to implement a correction? Thank you. |
Just in case it helps someone in the future with the same error: I created a small python script as a workaround to this bug. That fixes the problem in my case. import bpy
# Constants
NUMBER_OF_FRAMES = bpy.context.scene.frame_end - bpy.context.scene.frame_start
# prefix for img
IMG_PREFIX = bpy.context.scene.render.filepath
for frame_idx in range(NUMBER_OF_FRAMES+1):
print(" > Render frame %08d out of %08d" % (frame_idx+ 1, NUMBER_OF_FRAMES+1))
# Set correct frame
bpy.context.scene.frame_current = bpy.context.scene.frame_start + frame_idx
# Set name of output
bpy.context.scene.render.filepath = IMG_PREFIX + '_%08d' % bpy.context.scene.frame_current
# Render
bpy.ops.render.render(write_still=True)
# Get everything back to normal
bpy.context.scene.render.filepath = IMG_PREFIX You just have to load it in the Text Editor of the "Scripting" tab and press play. Hope this helps! |
Looks like the PLY I/O addon is being replaced by a new native PLY importer in Blender 4.0 (see here, which means this bug will be irrelevant in the new major version. |
System Information
Operating system: Kubuntu 18.10
Addon version
Broken: 2.1.0
Worked:
Describe the bug
Fantastic AddOn! I used it successfully to visualize transient CFD results.
However, I am now running into the following issue:
I have a PLY sequence with individual files being quite large (~300MB). The sequence is over 400 files long.
So I chose the streaming option.
Stream while playback is ticked. And when I manually select the frame/time the Addon loads the required PLY file.
Load time are quite long, several minutes per PLY file.
When I start the animation rendering, it does not load new PLY to cache. Error:
_Saved: '/tmp/0001.png'
Time: 00:04.71 (Saving: 00:00.30)
Saved: '/tmp/0002.png'
Time: 00:04.68 (Saving: 00:00.30)
Python: Traceback (most recent call last):
File "/home/thomas/Software/blender-2.91.0-linux64/2.91/scripts/addons/io_mesh_ply/init.py", line 87, in execute
context.window.cursor_set('WAIT')
AttributeError: 'NoneType' object has no attribute 'cursor_set'
location: /home/thomas/Software/blender-2.91.0-linux64/2.91/scripts/modules/bpy/ops.py:132
Error: Python: Traceback (most recent call last):
File "/home/thomas/Software/blender-2.91.0-linux64/2.91/scripts/addons/io_mesh_ply/init.py", line 87, in execute
context.window.cursor_set('WAIT')
AttributeError: 'NoneType' object has no attribute 'cursor_set'
location: /home/thomas/Software/blender-2.91.0-linux64/2.91/scripts/modules/bpy/ops.py:132
Traceback (most recent call last):
File "/home/thomas/.config/blender/2.91/scripts/addons/Stop-motion-OBJ/stop_motion_obj.py", line 70, in updateFrame
setFrameNumber(scn.frame_current)
File "/home/thomas/.config/blender/2.91/scripts/addons/Stop-motion-OBJ/stop_motion_obj.py", line 612, in setFrameNumber
setFrameObjStreamed(obj, frameNum, forceLoad=forceMeshLoad, deleteMaterials=not mss.perFrameMaterial)
File "/home/thomas/.config/blender/2.91/scripts/addons/Stop-motion-OBJ/stop_motion_obj.py", line 685, in setFrameObjStreamed
importStreamedFile(obj, idx)
File "/home/thomas/.config/blender/2.91/scripts/addons/Stop-motion-OBJ/stop_motion_obj.py", line 731, in importStreamedFile
mss.fileImporter.load(mss.fileFormat, filename)
File "/home/thomas/.config/blender/2.91/scripts/addons/Stop-motion-OBJ/stop_motion_obj.py", line 238, in load
self.loadPLY(filePath)
File "/home/thomas/.config/blender/2.91/scripts/addons/Stop-motion-OBJ/stop_motion_obj.py", line 267, in loadPLY
bpy.ops.import_mesh.ply(filepath=filePath)
File "/home/thomas/Software/blender-2.91.0-linux64/2.91/scripts/modules/bpy/ops.py", line 132, in call
ret = _op_call(self.idname_py(), None, kw)
RuntimeError: Error: Python: Traceback (most recent call last):
File "/home/thomas/Software/blender-2.91.0-linux64/2.91/scripts/addons/io_mesh_ply/init.py", line 87, in execute
context.window.cursor_set('WAIT')
AttributeError: 'NoneType' object has no attribute 'cursor_set'
location: /home/thomas/Software/blender-2.91.0-linux64/2.91/scripts/modules/bpy/ops.py:132
Saved: '/tmp/0003.png'
Time: 00:05.00 (Saving: 00:00.30)_
To clarify, PLY files 1 and 2 I loaded "manually" into the cache, by selecting the time in the workbench. It rendered those two frames ok. However, it seems the renderer races ahead to time 3 without waiting for the time 3 PLY to be loaded.
The renderer keeps using the PLY file from time 2 for all subsequent frames.
It works fine with smaller PLY files, so I guess no easy way to reproduce.
Regards
Thomas
The text was updated successfully, but these errors were encountered: