Fix constant lighting change in VR view when rotating head
We have to explicitly enable fixed world space lighting. This was in fact already done, but overridden by the code to sync the 3D View shading settings to the VR view.
This commit is contained in:
parent
fe492d922d
commit
3a5ef92896
Notes:
blender-bot
2023-06-07 10:31:13 +02:00
Referenced by issue #77348, Blender LTS: Maintenance Task 2.83
|
@ -4935,8 +4935,6 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
|
|||
const View3D *v3d_default = DNA_struct_default_get(View3D);
|
||||
|
||||
wm->xr.session_settings.shading = v3d_default->shading;
|
||||
/* Don't rotate light with the viewer by default, make it fixed. */
|
||||
wm->xr.session_settings.shading.flag |= V3D_SHADING_WORLD_ORIENTATION;
|
||||
wm->xr.session_settings.draw_flags = (V3D_OFSDRAW_SHOW_GRIDFLOOR |
|
||||
V3D_OFSDRAW_SHOW_ANNOTATION);
|
||||
wm->xr.session_settings.clip_start = v3d_default->clip_start;
|
||||
|
@ -5087,6 +5085,12 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
|
|||
* \note Keep this message at the bottom of the function.
|
||||
*/
|
||||
{
|
||||
for (wmWindowManager *wm = bmain->wm.first; wm; wm = wm->id.next) {
|
||||
/* Don't rotate light with the viewer by default, make it fixed. Shading settings can't be
|
||||
* edited and this flag should always be set. So we can always execute this. */
|
||||
wm->xr.session_settings.shading.flag |= V3D_SHADING_WORLD_ORIENTATION;
|
||||
}
|
||||
|
||||
/* Keep this block, even when empty. */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1728,6 +1728,8 @@ void ED_view3d_xr_shading_update(wmWindowManager *wm, const View3D *v3d, const S
|
|||
{
|
||||
if (v3d->runtime.flag & V3D_RUNTIME_XR_SESSION_ROOT) {
|
||||
View3DShading *xr_shading = &wm->xr.session_settings.shading;
|
||||
/* Flags that shouldn't be overridden by the 3D View shading. */
|
||||
const int flag_copy = V3D_SHADING_WORLD_ORIENTATION;
|
||||
|
||||
BLI_assert(WM_xr_session_exists(&wm->xr));
|
||||
|
||||
|
@ -1745,7 +1747,9 @@ void ED_view3d_xr_shading_update(wmWindowManager *wm, const View3D *v3d, const S
|
|||
}
|
||||
|
||||
/* Copy shading from View3D to VR view. */
|
||||
const int old_xr_shading_flag = xr_shading->flag;
|
||||
*xr_shading = v3d->shading;
|
||||
xr_shading->flag = (xr_shading->flag & ~flag_copy) | (old_xr_shading_flag & flag_copy);
|
||||
if (v3d->shading.prop) {
|
||||
xr_shading->prop = IDP_CopyProperty(xr_shading->prop);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue