google-research / kubric

A data generation pipeline for creating semi-realistic synthetic multi-object videos with rich annotations such as instance segmentation masks, depth maps, and optical flow.
Apache License 2.0
2.28k stars 226 forks source link

adjust environment map bounds to infinite #278

Open xilongzhou opened 1 year ago

xilongzhou commented 1 year ago

Hi,

Thanks for the great tool ! I am using movi_def_work.py to render dataset. I use dome for environment maping and we need to set the environment map as inifite instead of as default setting (40) defined here: https://storage.googleapis.com/kubric-public/assets/KuBasic/KuBasic.json.

I have tried to define my own KuBasic.json but still it automaically load this default one. I then hard-code kubric code to load my own KuBasic.json and use downloaded dome.tar.gz, but it start to load my json file but the bounds of the dome it actually uses is still from default setting.

Could you please let me know how to deal with this?

Thanks in advance!

Qwlouse commented 1 year ago

The dome used in the movi workers is not just for projecting the environment map, it has actual geometry, such that there is a textured floor with which the objects can interact and cast shadow upon. The bounds in KuBasic.json are the size of that mesh. If you need to scale the dome you can simply set dome.scale after adding it to the scene (but of course infinity won't work here). Your question sounds like you want to simply set an image as an environment map in the infinite distance (and no floor). In that case you better skip the dome and simply do these two:

renderer._set_ambient_light_hdri(hdri_filepath)
renderer._set_background_hdri(hdri_filepath)