Blender Git Loki

Blenderin Git "master"-kehityshaaran kommitit.

Page: 861 / 5574

Revision dc2df83 by Julian Eisel
March 17, 2020, 20:42 (GMT)
VR: Initial Virtual Reality support - Milestone 1, Scene Inspection

NOTE: While most of the milestone 1 goals are there, a few smaller features and
improvements are still to be done.

Big picture of this milestone: Initial, OpenXR-based virtual reality support
for users and foundation for advanced use cases.
Maniphest Task: https://developer.blender.org/T71347
The tasks contains more information about this milestone.

To be clear: This is not a feature rich VR implementation, it's focused on the
initial scene inspection use case. We intentionally focused on that, further
features like controller support are part of the next milestone.

- How to use?
Instructions on how to use this are here:
https://wiki.blender.org/wiki/User:Severin/GSoC-2019/How_to_Test
These will be updated and moved to a more official place (likely the manual) soon.

Currently Windows Mixed Reality and Oculus devices are usable. Valve/HTC
headsets don't support the OpenXR standard yet and hence, do not work with this
implementation.

---------------

This is the C-side implementation of the features added for initial VR
support as per milestone 1. A "VR Scene Inspection" Add-on will be
committed separately, to expose the VR functionality in the UI. It also
adds some further features for milestone 1, namely a landmarking system
(stored view locations in the VR space)

Main additions/features:
* Support for rendering viewports to an HMD, with good performance.
* Option to sync the VR view perspective with a fully interactive,
regular 3D View (VR-Mirror).
* Option to disable positional tracking. Keeps the current position (calculated
based on the VR eye center pose) when enabled while a VR session is running.
* Some regular viewport settings for the VR view
* RNA/Python-API to query and set VR session state information.
* WM-XR: Layer tying Ghost-XR to the Blender specific APIs/data
* wmSurface API: drawable, non-window container (manages Ghost-OpenGL and GPU
context)
* DNA/RNA for management of VR session settings
* `--debug-xr` and `--debug-xr-time` commandline options
* Utility batch & config file for using the Oculus runtime on Windows.
* Most VR data is runtime only. The exception is user settings which are saved
to files (`XrSessionSettings`).
* VR support can be disabled through the `WITH_XR_OPENXR` compiler flag.

For architecture and code documentation, see
https://wiki.blender.org/wiki/Source/Interface/XR.

---------------

A few thank you's:
* A huge shoutout to Ray Molenkamp for his help during the project - it would
have not been that successful without him!
* Sebastian Koenig and Simeon Conzendorf for testing and feedback!
* The reviewers, especially Brecht Van Lommel!
* Dalai Felinto for pushing and managing me to get this done ;)
* The OpenXR working group for providing an open standard. I think we're the
first bigger application to adopt OpenXR. Congratulations to them and
ourselves :)

This project started as a Google Summer of Code 2019 project - "Core Support of
Virtual Reality Headsets through OpenXR" (see
https://wiki.blender.org/wiki/User:Severin/GSoC-2019/).
Some further information, including ideas for further improvements can be found
in the final GSoC report:
https://wiki.blender.org/wiki/User:Severin/GSoC-2019/Final_Report

Differential Revisions: D6193, D7098

Reviewed by: Brecht Van Lommel, Jeroen Bakker
Revision 406bfd4 by Julian Eisel
March 17, 2020, 20:39 (GMT)
Ghost: Ghost-XR API to abstract away and access OpenXR functionality

Extends Ghost to include an abstraction for OpenXR, which I refer to as
Ghost-XR. Such an API is the base for the following commit, which introduces VR
support to Blender.

Main features:
* Simple and high-level interface for Blender specific code to call.
* Extensible for muliple graphics backends, currently OpenGL and a DirectX
compatibility layer are supported.
* Carefully designed error handling strategy allowing Blender to handle errors
gracefully and with useful error messages.
* OpenXR extension and API-layer management.
* OpenXR session management.
* Basic OpenXR event management.
* Debug utilities for Ghost-XR and OpenXR

For more information on this API, check
https://wiki.blender.org/wiki/Source/Interface/XR.

Reviewed by: Brecht Van Lommel

Differential Revision: https://developer.blender.org/D6188
March 17, 2020, 20:32 (GMT)
Fluid: Correct Tooltip
March 17, 2020, 20:28 (GMT)
Online Manual Reference: Update
March 17, 2020, 19:45 (GMT)
Cleanup: Fix warnings about function signature of register pass

RE_engine_register_pass is sometimes in the headers with type
as an integer parameter, sometimes as eNodeSocketDatatype.

This caused warnings, the root cause was makesrna was not able
to generate the proper type for enums and defaulted to int.

makesrna has been extended with the RNA_def_property_enum_native_type
that allows telling makesrna the native type of an enum, if set it
will be used otherwise it will still fall back to int.

Differential Revision: https://developer.blender.org/D7117

Reviewed By: brecht
March 17, 2020, 18:02 (GMT)
GPencil: Fix crash joining objects

The weights array can be NULL.
March 17, 2020, 17:35 (GMT)
make deps: Fixes to make OpenXR to work on CentOS Linux

- Harvest to a proper location.
- Disable STD's filesystem which is experimental and caused
linking errors when OpenXR is usedi n Blender.
March 17, 2020, 17:29 (GMT)
GPencil: Rename old color operators to material

The color was used in old version when palettes were used, but now all are materials
March 17, 2020, 17:21 (GMT)
Fix T74762: Mantaflow: Non emmiting flow source affects simulation
March 17, 2020, 16:48 (GMT)
Fix T74322: Wrong object bundles with scaled camera

Camera scale was not handled correctly when drawing 3d bundles for
reconstructed objects (caused by normalization of the matrix).
March 17, 2020, 16:40 (GMT)
Cleanup: Remove unused function

Was introduced earlier today and did not turn out to be very useful
and clear.
March 17, 2020, 16:40 (GMT)
Multires: Properly support virtual modifiers for Apply Base

The initial code from earlier from today didn't really work reliable
since it is not possible to apply virtual modifiers but not the real
multires one (in a situation like mesh with shapekeys and multires).

New code uses less memory and has better performance for the case
when there are actual modifiers leading the multires. The case when
there is only multires will not be as performant as possible at this
moment.
March 17, 2020, 16:33 (GMT)
Cleanup: process colorspace conversion with a 1D pixel array

No need to assume it's 2D or 3D.
March 17, 2020, 16:28 (GMT)
GPencil: Fix Parent layer not working

The parenting was using the old logic, but with new engine the draw is done using eval data.

Fixed the depsgraph relationship missing with bones to get an update when the bone is transformed.

Also fixed Snap cursor to Selected
Revision 964375e by Ray Molenkamp
March 17, 2020, 16:12 (GMT)
Cleanup: blenkernel proper header inclusion for BKE_ocean.h

BKE_ocean.h uses the bool type without including stdbool.h
counting on someone else including that before it.

With D6811 enabling automatic sorting of the includes
this can no longer be counted on. This changes includes
stdbool.h in BKE_ocean.h so it can build without being
depended on others including the right headers before it.
March 17, 2020, 15:46 (GMT)
Fix T74838: fix dereferencing of NULL in sculpt_no_multires_poll when no active object exists

Fix crash when the operator search is used while no active object exists. The cause of the issue is an attempt to dereference `ob` when it is `NULL`. Therefore this patch checks the return value of `SCULPT_mode_poll()` first, to ensure that `ob` isn't `NULL`.

Reviewed By: pablodp606

Maniphest Tasks: T74838

Differential Revision: https://developer.blender.org/D7156
March 17, 2020, 15:41 (GMT)
Multires: Fix Apply Base when there are deform modifiers

Their effect was applied twice after hitting Apply Base since the
operator was also applying deformation caused by those modifiers.
March 17, 2020, 15:41 (GMT)
Multires: Add utility to create deformed base mesh

The new function will use original object as a starting point
and apply all enabled deformation modifiers prior to the multires.
March 17, 2020, 15:41 (GMT)
Mesh: Fix applying deform modifier up to index

The code would have break the first (deform only) modifiers
once the index is reached, but it will not prevent second
loop (over remaining modifiers) from run.

This was applying deform modifier twice in some conditions:
having single deform modifier and calculating deformed mesh
up to the first modifier (index=0).
March 17, 2020, 15:41 (GMT)
Mesh: Add utility to calculate deform modifier up to index

Intention is to be used to create mesh at the state which is an input
to the multires modifier.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021