Age | Commit message (Collapse) | Author |
|
Due a problem in the mergetool, the clang format was totally wrong in the previous commit.
|
|
|
|
Due a thread priority, the calculation of the current frame is not done before the frames are available. This produces wrong render frames.
The solution is verify the current frame before doing the real render. This adds only a few milliseconds, but it assures the frame is correct.
As the problem is only when render in background, the recalculation of the frame is only necessary when do real render and not a viewport render, so there is no impact in the animation FPS.
|
|
|
|
|
|
When uv editing objects that share the same mesh only the selection
state can get confused. The cause is that the UV editor uses a
particular order of objects and store its state in the first object of a
mesh it hasn't handled. During drawing this state is updated into the
GPU buffers. In the case of linked meshes it can happen that the GPU
buffers are updated based on the object that does not have the correct
selection state making th selection VBOs incorrect.
This patch adds a work around that uses the order that the UV editor is
also using so the GPU buffers are built with the right data.
|
|
|
|
|
|
Workbench engine used active camera to setup DOF effect even when
camera was overridden.
Store camera override in `WORKBENCH_PrivateData` and use it in
`workbench_dof_engine_init()`
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D9952
|
|
|
|
During viewport rendering the color values were clamped in order to
apply the overlay on top of it. This clamping would show the scene
colors washed out.
This patch adds a work around to skip the clamping when the overlays are
turned off.
Parial fix for {T77909}
|
|
|
|
The `image_get_gpu_texture` didn't use the iuser->view_index but
recalculated the requested view again. This lead to inconsistent
behavior when switching between multi view textures or stereo textures.
This has been fixed by ensuring that the `iuser->view_index` is always
used.
An Image has only place to store 2 view textures. This is done for
right/left eye compositing. A multi view texture can have more views.
This would lead to reading and writing to unallocated space.
When a multiview texture is requested that is larger than 1. It will
always be cached as being the first eye. The `gpu_view` of the Image is
also used as a cache key to check this.
|
|
|
|
During multiview rendering the `cryptomatte_accum_buffer` is not cleared
between the views and leaves artifacts on the next view to be rendered.
This change clears the accum buffer when it already exists and will be
reused for the next view.
|
|
|
|
|
|
Match git style email addresses, ignored by the spell checker.
|
|
|
|
When using grease pencil for drawing Storyboards, it's very common to require a transform of the layers. This transform can be done using the offset modifier, but in some cases, the scene requires a lot of modifiers and makes the file hard to work.
This new feature adds a transforms Location, Rotation and Scale at Layer level, and allows to transform the layer without using a modifier, keeping the scene more clean.
{F9480695}
This feature was suggested by @pepeland after receiving feedback from several artists.
Also, done some code cleanup and rename some functions to get a better naming.
Maniphest Tasks: T83660
Differential Revision: https://developer.blender.org/D9761
|
|
When the multiframe is enabled, playing animation must be disabled or the animation is not visible,
{F9527854}
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D9930
|
|
|
|
|
|
This is part two of the fix for T84459.
Issue appears to be caused by AMD graphics driver later than 20.11.1 and
affects older GPUs (Polaris/FIJI cards). Drawing normals in edit mode
uses the same OpenGL data type for storing normals that is known to be
faulty.
This change fixes the face dot normals by using GPU_COMP_I16.
|
|
|
|
Issue appears to be caused by AMD graphics driver later than 20.11.1 and
affects older GPUs (Polaris/FIJI cards). Wireframe drawing uses the same
OpenGL data type for storing normals what is known to be faulty.
This patch enabled storing the normals using GPU_COMP_I16. It also
solves the normals drawing in edit mode for vertex and loop normals.
|
|
Reviewers: fclem
Differential Revision: https://developer.blender.org/D10032
|
|
Regression in 33ac3582bbd5551bdfbc7ef8856640b5e61888f8.
|
|
|
|
Stores cryptomatte hashes as meta data to the render result. Compositors could
use this for lookup on names in stead of hashes.
Differential Revision: https://developer.blender.org/D9553
|
|
The mask overlay wasn't part of the overlay engine. The reasoning nehind
this was that more editors used the mask overlay and most of them used
old drawing code. This patch adds the mask overlay drawing to the draw
overlay engine. This code path will only be used by the image editor
VSE, Compositor and Movie Clip editor will still use the previous
method.
During this patch some alternatives have been researched:
1. `ED_mask_draw_region`: this would lead to different code paths when
drawing in the image editor, and some hacks to retrieve the correct
framebuffer.
2. Add mask drawing to image engine: Would lead to incorrect color
management when viewing the mask.
3. Add mask drawing to image engine and overlay engine: Would lead to
duplicated code.
4. Add mask drawing to overlay engine and for combined overlay select
the correct framebuffer.
Option 4 was chosen as the exception (switching framebuffers) can be
done without hacks. The code stays clean.
|
|
This doesn't serve any purpose and can become out of sync
with the function it's self without reporting warnings.
|
|
|
|
When in edit mode, the edit lines for de-selected surfaces did not
show up.
The bug was caused by the is_gpencil bool which reused another flag.
Both grease pencil and nurbs surfaces use the edit_curve_handle shader.
A dedicated flag was added to make sure the is_gpencil bool is
set correctly.
Reviewed By: fclem
Maniphest Tasks: T84260
Differential Revision: https://developer.blender.org/D9985
|
|
This change makes it possible for platforms to only support high quality
normal rendering. This is part of {T82856} where current AMD drivers
running on the polaris architecture does not support the low quality
setting due to a driver bug.
In a next commit the work around will be enabled.
|
|
This adds high quality normals for non meshes. These include
* Volumetric Object Wireframe
* Metaballs
* Extracted Curves
* Curves in edit mode
This is in preparation to fix a regression in recent AMD
drivers where the `GL_INT_2_10_10_10_REV` data type isn't
working in Polaris cards.
|
|
|
|
Path resolving can find e.g. a datablock rather than a float or integer,
treat that as a failure to find a valid property.
|
|
Weight Paint Multi-Paint definitely depends on the weight specific
flag, and vertex group locking also involves group name symmetry
via BKE_object_defgroup_mirror_selection. These two are also
features implemented by me so I feel confident.
The rest of object_vgroup.c possibly should be changed too, but
that requires more consideration than these obvious cases.
|
|
Issue was related that the draw manager didn't invoked the draw handlers
for image editors.
|
|
|
|
|
|
Remove DNA headers, using forward declarations where possible.
Also removed duplicate header, header including it's self
and unnecessary inclusion of libc system headers from BKE header.
|
|
This patch will add volumetric transmittance to the cryptomatte coverage
data of all samples when post processing the cryptomatte passes.
It was discussed with Cycles that this is desired, but tricky to
implement in Cycles.
|
|
|
|
Introduced in 8f3a401975987c9b70f3ea0ea21977c70371b466
|
|
In Cycles the volume transmittance is already composited into the color
passes. In Eevee the volume transmittance pass was separate and needed
to be composited in the compositor. This patch adds the volume
transmittance pass direct in the next render passes:
* Diffuse Color
* Specular Color
* Emission
* Environment
This patch includes the removal of the volume transmittance render pass.
It also renames the volume render passes to match Cycles. The setting
themselves aren't unified.
Maniphest Tasks: T81134
|
|
`eevee_cryptomatte_shading_group_create`
When compiling on Windows, the following warnings occur:
```[3468/4560] Building C object source\blender\draw\CMakeFiles\bf_draw.dir\engines\eevee\eevee_cryptomatte.c.obj
C:\blender-git\blender\source\blender\draw\engines\eevee\eevee_cryptomatte.c(306): warning C4047: 'function': 'bool' differs in levels of indirection from 'void *'
C:\blender-git\blender\source\blender\draw\engines\eevee\eevee_cryptomatte.c(306): warning C4024: 'eevee_cryptomatte_shading_group_create': different types for formal and actual parameter 5```
As @Severin pointed out [here](https://developer.blender.org/rB76a0b322e4d3244e59a154c8255b84a4fbc33117#288960), this is due to the last two arguments being flipped. This diff corrects the order.
Reviewed By: Severin, fclem
Differential Revision: https://developer.blender.org/D9809
|
|
|
|
Caused by rB4212b6528af.
outlineColor is computed by the vertex shader, so not a uniform.
So outlineColor was undefined.
note: it was still possible to run into the situation that a selected UV
is drawn ontop of a selected pinned UV [you had to disable sticky
selection for this], now also make sure selected-pinned are drawn
topmost, then selected, then unselected UVs.
Maniphest Tasks: T83361
Differential Revision: https://developer.blender.org/D9786
|