allenai / objaverse-xl

🪐 Objaverse-XL is a Universe of 10M+ 3D Objects. Contains API Scripts for Downloading and Processing!
https://objaverse.allenai.org/
Apache License 2.0
704 stars 40 forks source link

Handle found object problem #27

Open Tachimura opened 6 months ago

Tachimura commented 6 months ago

Hello, first of all thanks for your work! I've tried to follow the blender tutorial, and after successfully install everything I got an error while executing main.py

Problem

When I run : python3 main.py I get the following error:

image

No images are rendered after the script finishes.

Context

I'm working with: Ubuntu 22.04.3 LTS (running on the linux sub-system for windows)

aquarter147 commented 6 months ago

I have the same error as you. Have you fixed it?

zoctipus commented 6 months ago

I get this problem as well

nnanhuang commented 6 months ago

I have the same error as you. Have you fixed it?

Dwawayu commented 5 months ago

This issue comes when the rendering command quits with errors, but you cannot see what exactly it is. I suggest commenting the line 153 in main.py, and you will find the key problem.

lulcai commented 5 months ago

I commented out line 153 and got this error.How to solve this problem?

image
Dwawayu commented 5 months ago

I commented out line 153 and got this error.How to solve this problem? image

It shows that there is no (virtual) display. Make sure you have started the xserver-xorg following Setup-3 and the DISPLAY in your environment is right.

mikimiso commented 5 months ago

I had the same issue when I used "main.py" directly. And I solve it when I change "render_objects->gpu_devices" from None to 1. I guess rendering Objaverse must need GPU. ubuntu 20.04, python=3.10, and I don't install Xserver.

mikimiso commented 5 months ago

I had the same issue when I used "main.py" directly. And I solve it when I change "render_objects->gpu_devices" from None to 1. I guess rendering Objaverse must need GPU. ubuntu 20.04, python=3.10, and I don't install Xserver.

I try more.1) Don't change "gpu_devices", the code will use GPU and the bash command is "--engine BLENDER_EEVEE". Then I change it to "--engine CYCLES", fine. 2) Change "gpu_devices" to 1, the code will not use GPU and use "-- engine CYCLES", fine. 3) I git clone "objaverse-xl-test-files" to local, and directly "export DISPLAY=:0.0 && blender-3.2.2-linux-x64/blender --background --python blender_script.py -- --object_path 'xxxx/example.obj' --num_renders 12 --output_dir /xxx --engine CYCLES " in terminal,fine and fast. so the core is --engine CYCLES, hoping to help you.

lulcai commented 5 months ago

Thank you so much for your kind reply. It really help me. Have a nice day!

-----原始邮件----- 发件人:mikimiso @.> 发送时间:2024-03-28 15:47:31 (星期四) 收件人: allenai/objaverse-xl @.> 抄送: lulcai @.>, Comment @.> 主题: Re: [allenai/objaverse-xl] Handle found object problem (Issue #27)

I had the same issue when I used "main.py" directly. And I solve it when I change "render_objects->gpu_devices" from None to 1. I guess rendering Objaverse must need GPU. ubuntu 20.04, python=3.10, and I don't install Xserver.

I try more.1) Don't change "gpu_devices", the code will use GPU and the bash command is "--engine BLENDER_EEVEE". Then I change it to "--engine CYCLES", fine. 2) Change "gpu_devices" to 1, the code will not use GPU and use "-- engine CYCLES", fine. 3) I git clone "objaverse-xl-test-files" to local, and directly "export DISPLAY=:0.0 && blender-3.2.2-linux-x64/blender --background --python blender_script.py -- --object_path 'xxxx/example.obj' --num_renders 12 --output_dir /xxx --engine CYCLES " in terminal,fine and fast. so the core is --engine CYCLES, hoping to help you.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

Tachimura commented 5 months ago

Thank you @mikimiso; using --engine CYCLES works well for me. When using main.py, I also had to modify the code so that the output results are saved into a non-temporary folder (in the _renderobjects function, I changed the values of render_dir and download_dir to a different directory)

Unfortunately, even after commenting out line 153 of main.py as recommended by @Dwawayu , I didn't receive any new error information (this action only printed the values of render_dir and download_dir in the terminal). However, changing line 127 from: args += " --engine BLENDER_EEVEE" to: args += " --engine CYCLES" resolved the issue.