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
2022-02-18Cleanup: Rename original curve object type enumHans Goudey
This commit renames enums related the "Curve" object type and ID type to add `_LEGACY` to the end. The idea is to make our aspirations clearer in the code and to avoid ambiguities between `CURVE` and `CURVES`. Ref T95355 To summarize for the record, the plans are: - In the short/medium term, replace the `Curve` object data type with `Curves` - In the longer term (no immediate plans), use a proper data block for 3D text and surfaces. Differential Revision: https://developer.blender.org/D14114
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2022-02-04Cleanup: spelling in commentsCampbell Barton
Also update viewport comments.
2022-01-31Cleanup: use our own conventions for tags in commentsCampbell Barton
2022-01-30Cleanup: Cmake: remove unnecessary definitions for internationalizationAaron Carlisle
Previously, macros were ifdefed using the cmake option `WITH_INTERNATIONAL` However, the is unnecessary as withen the functions themselves have checks for building without internationalization. This also means that many `add_definitions(-DWITH_INTERNATIONAL)` are also unnecessary. Reviewed By: mont29, LazyDodo Differential Revision: https://developer.blender.org/D13929
2021-12-27OpenSubDiv: add support for an OpenGL evaluatorKévin Dietrich
This evaluator is used in order to evaluate subdivision at render time, allowing for faster renders of meshes with a subdivision surface modifier placed at the last position in the modifier list. When evaluating the subsurf modifier, we detect whether we can delegate evaluation to the draw code. If so, the subdivision is first evaluated on the GPU using our own custom evaluator (only the coarse data needs to be initially sent to the GPU), then, buffers for the final `MeshBufferCache` are filled on the GPU using a set of compute shaders. However, some buffers are still filled on the CPU side, if doing so on the GPU is impractical (e.g. the line adjacency buffer used for x-ray, whose logic is hardly GPU compatible). This is done at the mesh buffer extraction level so that the result can be readily used in the various OpenGL engines, without having to write custom geometry or tesselation shaders. We use our own subdivision evaluation shaders, instead of OpenSubDiv's vanilla one, in order to control the data layout, and interpolation. For example, we store vertex colors as compressed 16-bit integers, while OpenSubDiv's default evaluator only work for float types. In order to still access the modified geometry on the CPU side, for use in modifiers or transform operators, a dedicated wrapper type is added `MESH_WRAPPER_TYPE_SUBD`. Subdivision will be lazily evaluated via `BKE_object_get_evaluated_mesh` which will create such a wrapper if possible. If the final subdivision surface is not needed on the CPU side, `BKE_object_get_evaluated_mesh_no_subsurf` should be used. Enabling or disabling GPU subdivision can be done through the user preferences (under Viewport -> Subdivision). See patch description for benchmarks. Reviewed By: campbellbarton, jbakker, fclem, brecht, #eevee_viewport Differential Revision: https://developer.blender.org/D12406
2021-12-08Cleanup: move public doc-strings into headers for 'editors'Campbell Barton
Ref T92709
2021-11-29Merge branch 'blender-v3.0-release'Sergey Sharybin
2021-11-29Fix T92628: .blend thumbnail renders black with Cycles 3D viewport renderBrecht Van Lommel
Don't use Cycles for rendering thumbnails, fall back to Solid shading. Differential Revision: https://developer.blender.org/D13406
2021-11-05Cleanup: spelling/typosCampbell Barton
2021-10-26XR: View adjustments for variable viewer scalePeter Kim
This adjusts some calculations and visibility flags for XR viewports in order to account for a possible scale factor in the XR view matrix. This scale factor can be introduced via the XR session settings base scale, which allows a viewer to begin their session at a specific reference scale, or the XR session state navigation scale, which allows a viewer to adjust their scale relative to the reference scale during the session. Reviewed by Severin as part of D11501, but requested to be committed separately.
2021-10-12Fix T91981: Crash when using operators that needs scene depthClément Foucault
There was a double lock in the object depth drawing function. Also the texture read was not reading the texture with the right format. Now it needs a conversion. Fix T91981 Particle Edit make Blender Crash Fix T92006 Light spot interactively point can't use
2021-10-12Fix build error due to conflicting typesPeter Kim
2021-10-12XR Controller Support Step 4: Controller DrawingPeter Kim
Addresses T77127 (Controller Drawing). Adds VR controller visualization and custom drawing via draw handlers. Add-ons can draw to the XR surface (headset display) and mirror window by adding a View3D draw handler of region type 'XR' and draw type 'POST_VIEW'. Controller drawing and custom overlays can be toggled individually as XR session options, which will be added in a future update to the VR Scene Inspection add-on. For the actual drawing, the OpenXR XR_MSFT_controller_model extension is used to load a glTF model provided by the XR runtime. The model's vertex data is then used to create a GPUBatch in the XR session state. Finally, this batch is drawn via the XR surface draw handler mentioned above. For runtimes that do not support the controller model extension, a a simple fallback shape (sphere) is drawn instead. Reviewed By: Severin, fclem Differential Revision: https://developer.blender.org/D10948
2021-10-06Cleanup: spelling in commentsCampbell Barton
2021-10-05DRW: Move buffer & temp textures & framebuffer management to DrawManagerClément Foucault
This is a necessary step for EEVEE's new arch. This moves more data to the draw manager. This makes it easier to have the render or draw engines manage their own data. This makes more sense and cleans-up what the GPUViewport holds Also rewrites the Texture pool manager to be in C++. This also move the DefaultFramebuffer/TextureList and the engine related data to a new `DRWViewData` struct. This struct manages the per view (as in stereo view) engine data. There is a bit of cleanup in the way the draw manager is setup. We now use a temporary DRWData instead of creating a dummy viewport. Development: fclem, jbakker Differential Revision: https://developer.blender.org/D11966
2021-10-04Fix camera border bug in passepartout render viewSimon Lenz
{F10761402} With active viewport render from camera view, the camera border shows up, even when passepartout and overlays are disabled. By moving the line-drawing code to the passepartout section, it is effectively disabled when passepartout is off. Reviewed By: sebastian_k Differential Revision: https://developer.blender.org/D12745
2021-08-25BLF: Remove ASCII-only Code PathsHarley Acheson
Remove redundant code for drawing text strings that contain only ASCII. See D12293 for much more detail. Differential Revision: https://developer.blender.org/D12293 Reviewed by Campbell Barton
2021-08-16XR: Color Depth AdjustmentsPeter Kim
This addresses reduced visibility of scenes (as displayed in the VR headset) that can result from the 8-bit color depth format currently used for XR swapchain images. By switching to a swapchain format with higher color depth (RGB10_A2, RGBA16, RGBA16F) for supported runtimes, visibility in VR should be noticeably improved. However, current limitations are lack of support for these higher color depth formats by some XR runtimes, especially for OpenGL. Also important to note that GPU_offscreen_create() now explicitly takes in the texture format (eGPUTextureFormat) instead of a "high_bitdepth" boolean. Reviewed By: Julian Eisel, Clément Foucault Differential Revision: http://developer.blender.org/D9842
2021-07-26Cleanup: spelling in commentsCampbell Barton
2021-07-12Cleanup: improve naming and comments of scene frame/ctime functionsBrecht Van Lommel
Confusingly, BKE_scene_frame_get did not match the frame number as expected by BKE_scene_frame_set. Instead it return the value after time remapping, which is commonly named "ctime". * Rename BKE_scene_frame_get to BKE_scene_ctime_get * Add a new BKE_scene_frame_get that matches BKE_scene_frame_set * Use int/float depending if fractional frame is expected
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-06-22Cleanup: deduplicate free codeGermano Cavalcante
It is more appropriate that `depths` is freed in `ED_view3d_depths_free`.
2021-06-21Refactor: Do not keep a copy of depth buffer in RegionView3DGermano Cavalcante
The depth cache (located in `RegionView3D::depths`) is used for quick and simple occlusion testing in: - particle selection, - "Draw Curve" operator and - "Interactive Light Track to Cursor" operator, However, keeping a texture buffer in cache is not a recommended practice. For displays with high resolution like 8k this represents something around 132MB. Also, currently, each call to `ED_view3d_depth_override` invalidates the depth cache. So that depth is never reused in multiple calls from an operator (this was not the case in blender 2.79). This commit allows to create a depth cache and release it in the same operator. Thus, the buffer is kept in cache for a short time, freeing up space. No functional changes.
2021-06-16UI - LOCAL View3D overlay statsHarley Acheson
This patch improves the 3DView statistics overlay to show LOCAL stats while in local view. This means the stats can vary between 3DViews and the statusbar when views are in local view, but this gives a much more accurate count of the objects, and their components, that you are directly working with rather than just scene values. Differential Revision: https://developer.blender.org/D8883 Reviewed by Campbell Barton
2021-05-25Fix T86956: VSE shading mode ignores Grease Pencil Vertex colors.Jeroen Bakker
Issue is that due to the strange definition of render in grease pencil (meaning should be rendered similar to rendering). This included normal viewport rendering in OB_RENDER and OpenGL render in OB_RENDER. For other rendering modes the overlay vertex opacity would be used. This patch sets this value to 1 when rendering via a scene strip override. NOTE: that this isn't a good solution as I expect that users want to use the opacity of the Grease pencil object. Perhaps the GPencil team has a better solution for it.
2021-05-19Assets: Use textures (and shadows) for automatic object previewsSeverin
Textures may be important to be able to identify an object. They are also a way to make many objects look more like when rendered with an advanced render engine, without being that expensive. So this seems like a simple way to increase usefulness of the automatic previews.
2021-05-07UI: Display indicator in the 3D Viewport when Clipping Region is onPablo Vazquez
Small addition inspired by [this tweet](https://twitter.com/Vorundor/status/1390645286624763909) of a user in a situation I also saw myself in the past. Showing "(Clipped)" next to the view name in the `Text Info` overlay fits well since it's a per-viewport setting. {F10059921, size=full} While on Local view: {F10059925, size=full} Multiple viewports: {F10059946, size=full} Reviewed By: Severin Differential Revision: https://developer.blender.org/D11193
2021-05-02Fix T82824: Draw sensor size with correct alphaRobert Guetzkow
Previously the option in the camera's //Object Data Properties > Viewport Display > Sensor// would not display the sensor in camera view. This seemed to be caused by the theme color `TH_VIEW_OVERLAY` having zero set for the alpha channel and alpha blending being active, resulting in no visible output. Hence `immUniformThemeColorShade(TH_VIEW_OVERLAY, 100);` is replaced with `immUniformThemeColorShadeAlpha(TH_VIEW_OVERLAY, 100, 255);`. Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D11075
2021-03-30Cleanup/Refactor: Unify functions that redraw the depth bufferGermano Cavalcante
Now `ED_view3d_backbuf_depth_validate`, `ED_view3d_draw_depth` and `ED_view3d_draw_depth_gpencil` are unified in `ED_view3d_depth_override`. This new function replaces `ED_view3d_autodist_init`. Also, since `ED_view3d_depth_update` depends on the render context, and changing the context is a slow operation, that function also was removed, and the depth buffer cached is now updated inside the new unified drawing function when the "bool update_cache" parameter is true. Finally `V3D_INVALID_BACKBUF` flag has been renamed and moved to `runtime.flag`. Differential revision: https://developer.blender.org/D10678
2021-03-29Comments: improve docstring for ED_view3d_clipping_testCampbell Barton
The meaning of the return value wasn't obvious.
2021-02-17Cleanup: Abbreviate enums with 'UNSIGNED_' in the nameGermano Cavalcante
2021-02-16Cleanup: spellingCampbell Barton
2021-02-14Cleanup: use doxy sectionsCampbell Barton
2021-02-10Merge branch 'blender-v2.92-release'Philipp Oeser
2021-02-10Fix T85395: Texture paint external edit wrong projection on reapplyPhilipp Oeser
Caused by rB5b34d11b55e0. Above commit restored the view matrices in ED_view3d_draw_offscreen _before_ they can be stored in the ImBuff (see ED_view3d_draw_offscreen / texture_paint_image_from_view_exec). Now make restoring the view matrices optional and dont do this in case of reprojection, so the used matrices can still be saved in the ImBuff later. Reviewed By: campbellbarton Maniphest Tasks: T85395 Differential Revision: https://developer.blender.org/D10331
2021-02-05Cleanup: correct spelling in commentsCampbell Barton
2021-01-28Cleanup: spellingCampbell Barton
Also remove replace 'playblast' with terminology used in Blender's UI.
2021-01-27Merge branch 'blender-v2.92-release'Philipp Oeser
2021-01-27Documented color management issue.Jeroen Bakker
When using the viewport render animation and saving to an 8 bit image/movie file, the color management is applied twice. Once on the GPU and once when saving to disk. Removing this option currently leads to incorrect Scene strip rendering so needs more research.
2021-01-25Cleanup: pass 'rctf' rectangle to 2D box drawing functionsCampbell Barton
Passing 4x arguments for the rectangle, mixed in with round-box radius & color wasn't very readable. Instead, pass a `rctf` as the first argument to UI box drawing functions.
2020-12-28Snap: Decrease the distance of the incremental snap in ortho viewGermano Cavalcante
This matches more the older versions (as shown in the T77819).
2020-12-03Cleanup: view-port --> 2D/3D ViewportAaron Carlisle
2020-11-20Fix add-object tools cursor distorted drawing on saveCampbell Barton
Generating the thumbnail left the view matrices set to values that couldn't be used for cursor drawing. Backup/restore the matrices for off-screen drawing.
2020-11-20Cleanup: use a struct to backup/restore values for offscreen drawingCampbell Barton
Variables to temporarily override values was scattered, making it harder to follow.
2020-11-20Cleanup: rename do_sky argument to draw_backgroundCampbell Barton
This was leftover from Blender internal, follow the naming already used by the draw manager.
2020-11-20Cleanup: remove unused perspective argument to off-screen drawingCampbell Barton
Some callers were passing in dummy values, this can be accessed from `RegionView3D.is_persp` can be used to check this.
2020-11-02Fix T77819: Snap Incremental does not match grid in all casesGermano Cavalcante
The behavior of the incremental snap did not take into account the relative dimensions of the window, which resulted in a different behavior if the area height was greater than the width.
2020-10-21Fix for T81757: Incorrect Overlay Line HeightHarley Acheson
Fixes error in determining 3DView Overlay Line Height. Do not base on current default font height. Differential Revision: https://developer.blender.org/D9288 Reviewed by Campbell Barton
2020-10-19Spelling: It's Versus ItsHarley Acheson
Corrects incorrect usage of contraction for 'it is', when possessive 'its' was required. Differential Revision: https://developer.blender.org/D9250 Reviewed by Campbell Barton