Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-03-17VR: Initial Virtual Reality support - Milestone 1, Scene InspectionJulian Eisel
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
2020-03-15Cleanup: use 'r_' prefix for return argsCampbell Barton
2020-03-14Cleanup: spellingCampbell Barton
2020-03-11Workbench Simplification RefactorClément Foucault
This patch is (almost) a complete rewrite of workbench engine. The features remain unchanged but the code quality is greatly improved. Hair shading is brighter but also more correct. This also introduce the concept of `DRWShaderLibrary` to make a simple include system inside the GLSL files. Differential Revision: https://developer.blender.org/D7060
2020-03-09GPencil: Refactor of Draw Engine, Vertex Paint and all internal functionsAntonio Vazquez
This commit is a full refactor of the grease pencil modules including Draw Engine, Modifiers, VFX, depsgraph update, improvements in operators and conversion of Sculpt and Weight paint tools to real brushes. Also, a huge code cleanup has been done at all levels. Thanks to @fclem for his work and yo @pepeland and @mendio for the testing and help in the development. Differential Revision: https://developer.blender.org/D6293
2020-03-09Cleanup: Replace ABS/SQUARE/CUBE with function callsSergey Sharybin
While it might be handy to have type-less functionality which is similar to how C++ math is implemented it can not be easily achieved with just preprocessor in a way which does not have side-effects on wrong usage. There macros where often used on a non-trivial expression, and there was at least one usage where it was causing an actual side effect/bug on Windows (see change around square_f(sh[index++]) in studiolight.c). For such cases it is handy to have a function which is guaranteed to have zero side-effects. The motivation behind actually removing the macros is that there is already a way to do similar calculation. Also, not having such macros is a way to guarantee that its usage is not changed in a way which have side-effects and that it's not used as an inspiration for cases where it should not be used. Differential Revision: https://developer.blender.org/D7051
2020-03-06Cleanup: Fix forward declaration of headersDalai Felinto
2020-03-06Fix build error on windowsGermano Cavalcante
``` Error C4013 '_VA_ELEM1' undefined; assuming extern returning int ```
2020-03-06Fix integer overflow in BLI_mempool_as_arrayN()Sergey Sharybin
`(size_t)(int * int)` will actually cast overflown integer to size_t, which isn't what was intended here. Correct thing would be to cast in the following manner `(size_t)int * int`. In this particular case can as well use function which is designed to allocate an array of memory without overflow.
2020-03-06Cleanup: use ELEM macro for path slash checksCampbell Barton
2020-03-06Cleanup: avoid use of BLI_cleanup_dirCampbell Barton
Some cases don't need to add the trailing slash. Use BLI_cleanup_path in this case.
2020-03-06Cleanup: remove BLI_cleanup_fileCampbell Barton
In practice, references to files rarely have trailing slashes (by accident). Remove this function in favor of BLI_cleanup_path.
2020-03-06Cleanup: spellingCampbell Barton
2020-03-06Cleanup: spellingCampbell Barton
2020-03-05Cleanup: formatting, strip trailing spaceCampbell Barton
2020-03-04Cleanup: remove unused BLI_strncat_utf8Campbell Barton
Behaves differently to strncat, BLI_strncpy_utf8_rlen can be used for a similar purpose.
2020-03-04BLI_string_utils: add BLI_string_join_array_by_sep_charCampbell Barton
Utility to join strings into a fixed size buffer.
2020-03-04BLI_math: inline clamp functionsCampbell Barton
These are used in some per-pixel operations such as image sampling and color conversion, where replacing existing macro use could add overhead.
2020-03-04BLI_math: add clamp_v# and clamp_v#_v#v# utility functionsTiago Chaves
2020-03-03Fix delaunay triangulation, bad indices for output faces.Howard Trickey
If there were merged vertices, sometimes the output faces had wrong vertex indices. Added a test for this, and fixed.
2020-03-03Cleanup: formatting, spellingCampbell Barton
2020-03-02Cleanup: make remaining blenlib headers work in C++Jacques Lucke
Differential Revision: https://developer.blender.org/D6988 Reviewers: brecht
2020-03-02Fix T65568: sewing and self collision issueIsh Bosamiya
As explained in T65568 by @LucaRood, the self collision system should exclude triangles that are connected by sewing springs. Differential Revision: https://developer.blender.org/D6911
2020-03-01Fix problem with Delaunay triangulalation re output mapping.Howard Trickey
The array giving original vertex indices should not contain entries for newly created vertices. Added a test to check this.
2020-02-29Made BLI_delaunay_2d_cdt_calc better at tiny feature elimination.Howard Trickey
The 'random' unit tests and some examples from the new boolean code triggered asserts and crashes. This fixes those. There is a new flag in the input that optionally disables a pass over input to snap segment edges to other segments.
2020-02-28BLI: fix utf8 character counting when there is an incomplete utf8 charJacques Lucke
D6923 by Kim Geonwoo
2020-02-28Fix BLI_str_rstrip skipping the first characterCampbell Barton
2020-02-26Build: add compatibility between precompiled libraries and new glibcBrecht Van Lommel
On Linux, precompiled libraries may be made with a glibc version that is incompatible with the system libraries that Blender is built on. To solve this we add a few -ffast-math symbols that can be missing. Differential Revision: https://developer.blender.org/D6930
2020-02-26BLI_fileops: add utility to read text with newlines set to nilCampbell Barton
2020-02-26Cleanup: spellingCampbell Barton
2020-02-24Fix unused variable warning on LinuxJulian Eisel
2020-02-21UI: Windows File Attributes and Hidden ItemsHarley Acheson
File Browser using Windows file attributes for decorating and hiding items. Differential Revision: https://developer.blender.org/D6816 Reviewed by Campbell Barton
2020-02-20BLI_math: add 2x2 matrix utilitiesTiago Chaves
2020-02-20Cleanup: rename mul_m2v2 to mul_m2_v2Campbell Barton
Matches mul_m3_v3
2020-02-20Cleanup: remove use of 'register'Campbell Barton
This isn't needed with modern compilers.
2020-02-20Cleanup: unused enumsCampbell Barton
2020-02-19BLI_math: unify zero area checks for barycentric weight calculationCampbell Barton
This applies the change from T73348 fix to related functions. Instead of checking against an epsilon to avoid divide by zero, perform the division and check the result is finite. This is needed since small faces can have an area under 'FLT_EPSILON', and dividing by values close to zero can result in 'inf'.
2020-02-18Fix making paths relative on windowsCampbell Barton
Comparing the drive letter was case sensitive, causing 'BLI_path_rel' to fail in common cases (manually entering a lower case drive letter for example). Surprisingly this issue dates back to 2005 and wasn't reported.
2020-02-17ColorManagement: Dithering ImprovementClément Foucault
- Unlock property range. - Use triangular noise to keep perceptual noise error more uniform. Remap range to preserve perceptual intensity. - Center noise distribution around 0 for GPU implementation because of rounding. - Do dithering after merging overlays. Effect of using triangular noise is not really noticeable if you don't use really low bitdepth. But doing a test in the shader were we artificially reduce the bitdepth (`col = (col * 16) / 16;`) reveals the real difference. Reviewed By: brecht Differential Revision: https://developer.blender.org/D6850
2020-02-15Cleanup: split off code from gpu_codegen.c into smaller filesBrecht Van Lommel
2020-02-15Cleanup: work around clang-format differences between versionsBrecht Van Lommel
Ref T73747
2020-02-15Cleanup: spellingCampbell Barton
2020-02-15Cleanup: unused math colorspace definesCampbell Barton
2020-02-15Modifiers: Add option to directly specify a 2D transform for UVWarpLukas Stockner
Currently the only option is to warp based on the transform of other objects, which is inconvenient if you want to e.g. control it through a driver - you need to set up a dummy object and go through that, which is clunky and should be unneccessary. Reviewed By: brecht Differential Revision: https://developer.blender.org/D6690
2020-02-15Cleanup: make BLI_make_exist local to the file selectorCampbell Barton
This isn't a general utility, and the name wasn't descriptive.
2020-02-13Cleanup: pass const variablesCampbell Barton
2020-02-12Cleanup: clang-format.Bastien Montagne
2020-02-11Sculpt: Split normal radius and area radiusPablo Dobarro
This enables an extra layer of control in the sculpt brushes. For now it is enabled only in Scrape, but it should work in all brushes (like normal radius). In the future it may also be enabled in other brushes. You can tweak in this property in the scrape brush to achieve a much better behavior when working on curve surfaces and control how much volume you want to trim. In most cases, it also fixes the bug where the brush keeps trimming in the same area without disabling accumulate. It should be possible to fix some other artifacts in other brushes by tweaking this default property. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D5993
2020-02-11Cleanup: minor edit to last commitCampbell Barton
Avoid repeating the fallback return.
2020-02-11Fix T73348: Surface Deform distortion on bind with small facesCampbell Barton
Thanks to @CodyWinch for finding the root cause