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-08-07Cleanup: declare arrays arrays where possibleCampbell Barton
2020-08-07Merge branch 'blender-v2.90-release'Clément Foucault
2020-08-07Fix T78452 EEVEE: Motion Blur: Crash when using camera switchingClément Foucault
This was caused by the ViewLayer being freed with all its engine data.
2020-08-05Merge branch 'blender-v2.90-release' into masterCampbell Barton
2020-08-05Fix T79213 EEVEE: rendering with motion blur can change current frameClément Foucault
It seems to be expected that the render engine reset to the right CFRA if it modifies it.
2020-07-30Cleanup: Split gpu_texture_image.c into BKE and IMB modulesClément Foucault
This is in order to disolve GPU_draw.h into more meaningful code blocks. All the Image related function are in `image_gpu.c`. All the MovieClip related function are in `movieclip.c`. The IMB module now has a connection with GPU. This is not strickly necessary and the code could be move to `image_gpu.c` if needed. The Image garbage collection is also ported to `image_gpu.c`.
2020-07-20Python API: option to use OpenGL context in RenderEngine.renderMiguel Pozo
When bl_use_gpu_context is set, an OpenGL context will be available for OpenGL based render engines. Differential Revision: https://developer.blender.org/D8305
2020-06-25Fix unreported 1 pixel offset when drawing with GPencilAntonio Vazquez
This bug was introduced in d82c3d86155e Reviewers: @fclem
2020-06-24Fix T67741 EEVEE: World update don't update lightcache if one viewport uses ↵Clément Foucault
lookdev Just a matter of not clearing the updating flag in this case.
2020-06-24Fix T78215 EEVEE: incorrect Render Passes results when using motion blurClément Foucault
This was caused by a missing DRWPass initialization. Now we create the passes for every timestep but avoid clearing the buffer after the first sample.
2020-06-24EEVEE: Fix crash when using motion blur without postfx blurClément Foucault
2020-06-24Fix T78190 EEVEE: Render passes broken in final renderClément Foucault
This was caused by the step motion blur implementation. `DRW_cache_restart` was reseting the cache and cause `EEVEE_renderpasses_postprocess` to not work inside `EEVEE_render_read_result`.
2020-06-23Fix T62961 EEVEE: Viewport refresh when hovering widgetsClément Foucault
We now bypass EEVEE's rendering if the TAA accumulation has ended.
2020-06-23EEVEE: Motion Blur: Add accumulation motion blur for better precisionClément Foucault
This revisit the render pipeline to support time slicing for better motion blur. We support accumulation with or without the Post-process motion blur. If using the post-process, we reuse last step next motion data to avoid another scene reevaluation. This also adds support for hair motion blur which is handled in a similar way as mesh motion blur. The total number of samples is distributed evenly accross all timesteps to avoid sampling weighting issues. For this reason, the sample count is (internally) rounded up to the next multiple of the step count. Only FX Motion BLur: {F8632258} FX Motion Blur + 4 time steps: {F8632260} FX Motion Blur + 32 time steps: {F8632261} Reviewed By: jbakker Differential Revision: https://developer.blender.org/D8079
2020-06-19EEEVEE: Object Motion Blur: Initial ImplementationClément Foucault
This adds object motion blur vectors for EEVEE as well as better noise reduction for it. For TAA reprojection we just compute the motion vector on the fly based on camera motion and depth buffer. This makes possible to store another motion vector only for the blurring which is not useful for TAA history fetching. Motion Data is saved per object & per geometry if using deformation blur. We support deformation motion blur by saving previous VBO and modifying the actual GPUBatch for the geometry to include theses VBOs. We store Previous and Next frame motion in the same motion vector buffer (RG for prev and BA for next). This makes non linear motion blur (like rotating objects) less prone to outward/inward blur. We also improve the motion blur post process to expand outside the objects border. We use a tile base approach and the max size of the blur is set via a new render setting. We use a background reconstruction method that needs another setting (Background Separation). Sampling is done using a fixed 8 dithered samples per direction. The final render samples will clear the noise like other stochastic effects. One caveat is that hair particles are not yet supported. Support will come in another patch. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D7297
2020-06-18Cleanup: redundant parenthesisCampbell Barton
2020-06-02EEVEE: Refactor of eevee_material.cClément Foucault
These are the modifications: -With DRW modification we reduce the number of passes we need to populate. -Rename passes for consistent naming. -Reduce complexity in code compilation -Cleanup how renderpass accumulation passes are setup, using pass instances. -Make sculpt mode compatible with shadows -Make hair passes compatible with SSS -Error shader and lookdev materials now use standalone materials. -Support default shader (world and material) using a default nodetree internally. -Change BLEND_CLIP to be emulated by gpu nodetree. Making less shader variations. -Use BLI_memblock for cache memory allocation. -Renderpasses are handled by switching a UBO ref bind. One major hack in this patch is the use of modified pointer as ghash keys. This rely on the assumption that the keys will never overlap because the number of options per key will never be bigger than the pointed struct. The use of one single nodetree to support default material is also a bit hacky since it won't support concurent usage of this nodetree. (see EEVEE_shader_default_surface_nodetree) Another change is that objects with shader errors now appear solid magenta instead of shaded magenta. This is only because of code reuse purpose but could be changed if really needed. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D7642
2020-03-20Python API: add bl_use_stereo_viewport for RenderEngineBrecht Van Lommel
To indicate if the render engine supports rendering a stereo 3D viewport. This is not currently supported for Cycles. Fixes T62582
2020-03-18Objects: Eevee and workbench rendering of new Volume, Hair, PointCloudBrecht Van Lommel
Only the volume drawing part is really finished and exposed to the user. Hair plugs into the existing hair rendering code and is fairly straightforward. The pointcloud drawing is a hack using overlays rather than Eevee and workbench. The most tricky part for volume rendering is the case where each volume grid has a different transform, which requires an additional matrix in the shader and non-trivial logic in Eevee volume drawing. In the common case were all the transforms match we don't use the additional per-grid matrix in the shader. Ref T73201, T68981 Differential Revision: https://developer.blender.org/D6955
2020-02-27Cleanup: split off hair cache function for reusabilityBrecht Van Lommel
For when we support sources of hair other than particle systems.
2020-02-25EEVEE: First Buffer Drawn IncorrectlyJeroen Bakker
SSS buffers are lazy initialized when needed. When shaders recompile the SSS buffers could be incorrectly drawn. During the render passes project we tried to fix this, but that resulted in incorrect result of the first sample after a shader was compiled. We revert this change knowing that we know the issue, but haven't found a proper solution for it.
2020-02-22EEVEE: Fix memleak when G.is_break is set from another threadClément Foucault
2020-02-21EEVEE: Render PassesJeroen Bakker
This patch adds new render passes to EEVEE. These passes include: * Emission * Diffuse Light * Diffuse Color * Glossy Light * Glossy Color * Environment * Volume Scattering * Volume Transmission * Bloom * Shadow With these passes it will be possible to use EEVEE effectively for compositing. During development we kept a close eye on how to get similar results compared to cycles render passes there are some differences that are related to how EEVEE works. For EEVEE we combined the passes to `Diffuse` and `Specular`. There are no transmittance or sss passes anymore. Cycles will be changed accordingly. Cycles volume transmittance is added to multiple surface col passes. For EEVEE we left the volume transmittance as a separate pass. Known Limitations * All materials that use alpha blending will not be rendered in the render passes. Other transparency modes are supported. * More GPU memory is required to store the render passes. When rendering a HD image with all render passes enabled at max extra 570MB GPU memory is required. Implementation Details An overview of render passes have been described in https://wiki.blender.org/wiki/Source/Render/EEVEE/RenderPasses Future Developments * In this implementation the materials are re-rendered for Diffuse/Glossy and Emission passes. We could use multi target rendering to improve the render speed. * Other passes can be added later * Don't render material based passes when only requesting AO or Shadow. * Add more passes to the system. These could include Cryptomatte, AOV's, Vector, ObjectID, MaterialID, UV. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D6331
2020-02-11DRW: Color Management improvementClément Foucault
Reviewed By: brecht sergey jbakker Differential Revision: http://developer.blender.org/D6729
2020-01-30EEVEE: Test maximum texture size before render.Clément Foucault
This will catch any non renderable size.
2020-01-17Fix T71154: EEVEE Soft Shadows Viewport RenderingJeroen Bakker
EEVEE Soft shadows were not rendered correctly during viewport rendering. The reason for this is that during viewport rendering the shadow buffers were only update once and not per sample. This resulted that all the samples calculated the same shadow. This fix moves the call to `EEVEE_shadows_update` from cache finished to draw scene. This needs to happen before `EEVEE_lightprobes_refresh`. Reviewed By: fclem Differential Revision: https://developer.blender.org/D6538
2019-12-11Cleanup: spellingCampbell Barton
2019-11-28EEVEE: Viewport RenderpassesJeroen Bakker
This patch will allow the user to select the EEVEE renderpass to be shown in the viewport by default the combined pass will be shown. Limitations: * Viewport rendering stores the result in a `RenderResult`. RenderResult is not aware of the type of data it holds. In many places where RenderResult is used it is assumed that it stores a combined pass and the display+view transform are applied. I will propose to fix this in a future patch. But that is still being designed and discussed. Reviewed By: fclem Differential Revision: https://developer.blender.org/D6319
2019-11-27EEVEE: GLSL RenderpassesJeroen Bakker
Most of the renderpasses in EEVEE used post-processing on the CPU. For final image rendering this is sufficient, but when we want to display the data to the user we don't want to transfer to the CPU to do post processing to then upload it back to the GPU to display the result. This patch moves the renderpass postprocessing to a GLSL shader. This is the first step to do, before we will enable the renderpasses in the viewport. Reviewed By: fclem Differential Revision: https://developer.blender.org/D6206
2019-09-05Eevee: Shadow map refactorClément Foucault
Reviewed By: brecht Differential Revision: http://developer.blender.org/D5659
2019-08-14Eevee: Improve Transparent BSDF behaviorClément Foucault
Alpha blended Transparency is now using dual source blending making it fully compatible with cycles Transparent BSDF. Multiply and additive blend mode can be achieved using some nodes and are going to be removed.
2019-07-09Eevee: Fix first sample being accumulated without SSRClément Foucault
We check if the previous iteration (sample) was using a valid double buffer. If it wasn't, we request another iteration. This fix the issue for viewport,viewport render and image render. Related to T65761 Eevee render inconsistency between 3D View, Viewport render, and F12 Render
2019-06-14Fix T64913 Eevee: shader compilation does not reset TAAClément Foucault
This tracks the number of compiling shaders and just reset the TAA if previous number mismatch.
2019-06-06Python API: allow external render engines to use Eevee for LookDev shadingBrecht Van Lommel
This is enabled with bl_use_eevee_viewport = True. It allows external engines to generate an Cycles/Eevee shader node setup to emulate their materials in the realtime viewport, or to leave it to users to do manually. Removed bl_use_exclude_layers and bl_use_shading_nodes that did nothing anymore. This should not break API compatibility, any scripts setting those should continue to work the same as before. Also adds descriptions for some RenderEngine settings.
2019-05-23Eevee: Ignore COW tag when deciding on auto-bakeSergey Sharybin
This is too generic flag, and it might be used by anything, starting from changes in transform ending with changes in ID properties. The check here is to be as specific as possible. If that is not possible the decision must be documented. Related on T63111. Reviewers: brecht Differential Revision: https://developer.blender.org/D4923
2019-05-22Eevee: Make Planar reflections work with the new DRWView systemClément Foucault
Also get rid of clip_block which did the same as clipplanes inside common_view_lib.glsl.
2019-05-22Eevee: Use DRW_view_* API instead of DRW_viewport_matrix_*Clément Foucault
2019-05-17Eevee: Remove the Volumetric Render checkboxClément Foucault
This is to simplify the usage of Volumetrics. Now it automatically detect if there is any Volumetric material in the view and allocate the needed buffer if any.
2019-05-17Eevee: Remove the Subsurface Render checkboxClément Foucault
This is to simplify the usage of SSS. Now it automatically detect if there is any SSS material in the view and allocate the needed buffer if any.
2019-05-16EEVEE: Viewport Rendering TAAJeroen Bakker
EEVEE assumed that the OGL renderer did FSAA, as the FSAA was removed we needed to revalidate this assumption. The temporal sampling only inited the matrices during init phase. As now we need to update the matrices for every sample rendered the code for updating the matrices was isolated in a new function `EEVEE_temporal_sampling_update_matrices`. Reviewed By: fclem Maniphest Tasks: T64646 Differential Revision: https://developer.blender.org/D4871
2019-05-02Workbench,EEVEE: Viewport Render SamplesJeroen Bakker
- Add `render_aa` and `viewport_aa` sampling setting for workbench. 0 samples means no AA, 1 sample uses FXAA and more samples will use TAA. The viewport `gpu_viewport_quality` can still limit viewport anti-aliasing method. - Use TAA when rendering images. (this used to be CPU based FSAA) - Removed `R_OSA` related settings. Reviewers: fclem, brecht Maniphest Tasks: T60847 Differential Revision: https://developer.blender.org/D4773
2019-05-01Eevee: Lookdev: Cleanup implementation & support for Bloom and TAAClément Foucault
Make Lookdev works with bloom and TAA by rendering it before TAA and fixing the motion vectors of the lookdev balls. Rework Lookdev to remove much of its complexity. Use simpler matrices with more understandable setup code.
2019-05-01Eevee: Add support for alpha background in viewportClément Foucault
Viewport now displays alpha checkerboard pattern like Cycles does when film alpha is set to "Transparent". Some small workarounds were necessary for Depth of Field and correct TAA support.
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-03-27Cleanup: style, use braces for drawCampbell Barton
2019-03-22EEVEE: Memleak Volumetrics RenderingJeroen Bakker
Volumetric textures were not freed when doing final rendering. Maniphest Tasks: T62356 Differential Revision: https://developer.blender.org/D4573
2019-03-20Fix T60190 Z-fighting with (Culled) BackfaceClément Foucault
Create a separate pass for backface culled objects.
2019-03-20Cleanup: use lowercase for dimensions in function namesCampbell Barton
Most API's already use this convention.
2019-03-20Fix T59719 Bake Indirect Lighting doesn't update env map reflectionClément Foucault
2019-02-27Cleanup: rename lamp -> lightCampbell Barton