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
2019-12-02Overlay Engine: Refactor & CleanupClément Foucault
This is the unification of all overlays into one overlay engine as described in T65347. I went over all the code making it more future proof with less hacks and removing old / not relevent parts. Goals / Acheivements: - Remove internal shader usage (only drw shaders) - Remove viewportSize and viewportSizeInv and put them in gloabl ubo - Fixed some drawing issues: Missing probe option and Missing Alt+B clipping of some shader - Remove old (legacy) shaders dependancy (not using view UBO). - Less shader variation (less compilation time at first load and less patching needed for vulkan) - removed some geom shaders when I could - Remove static e_data (except shaders storage where it is OK) - Clear the way to fix some anoying limitations (dithered transparency, background image compositing etc...) - Wireframe drawing now uses the same batching capabilities as workbench & eevee (indirect drawing). - Reduced complexity, removed ~3000 Lines of code in draw (also removed a lot of unused shader in GPU). - Post AA to avoid complexity and cost of MSAA. Remaining issues: - ~~Armature edits, overlay toggles, (... others?) are not refreshing viewport after AA is complete~~ - FXAA is not the best for wires, maybe investigate SMAA - Maybe do something more temporally stable for AA. - ~~Paint overlays are not working with AA.~~ - ~~infront objects are difficult to select.~~ - ~~the infront wires sometimes goes through they solid counterpart (missing clear maybe?) (toggle overlays on-off when using infront+wireframe overlay in solid shading)~~ Note: I made some decision to change slightly the appearance of some objects to simplify their drawing. Namely the empty arrows end (which is now hollow/wire) and distance points of the cameras/spots being done by lines. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D6296
2019-11-11Fix T71461: Add IN_PLACE_INSTANCES to `part_prim` and `part_axis` object ↵Kevin Buhr
mode particle shaders For `Particle Properties -> Viewport Display -> Display As` set to circle/cross/axis, particle instances are associated with a single resource handle (and, in particular, a single model matrix), so define `IN_PLACE_INSTANCES` to get the right index for `ModelMatrix` and `ModelInverseMatrix` in the shader. Differential Revision: https://developer.blender.org/D6220
2019-11-06Viewport: Fix stereo 3d camera framings when pivot is not centerDalai Felinto
As reported by Clément Foucault. This is a small thing but since we are refactoring the draw manager for the next blender is nice to have it fully working before the refactor for comparison. Note: Camera volume and render were both fine, the camera frame is the one thing that was not working. Also in toe-in the convergence plane is always facing the original camera orientation. It is a known small annoyance.
2019-11-02Fix T48034: Camera image offsets were scaled by image aspectCampbell Barton
Offset now matches Blender 2.7x.
2019-10-17Volumetric: Debug Voxel Size and LocationJeroen Bakker
When displaying the voxel size for an adaptive domain the resolution of the adaptive domain was used to calculate the world size of the voxel. This patch changes this to use the initial size of the domain. When using adaptive domain the overlay was not rendered in the right place. Thanks to sebbas for part of the patch! Reviewed By: sebbas, fclem Differential Revision: https://developer.blender.org/D6076
2019-10-16Fix T70543 Rigid Body Collision Shape Not Displayed In ViewportClément Foucault
2019-10-10Fix T64901: Nesting collection instances could clutter object displayDalai Felinto
2019-10-05Show Background Image Beneath Transparent Objects (Cycles only)Jeroen Bakker
Camera background images were not shown under transparent objects. This patch performs an alpha under for background images for cycles. In order to see the difference the Film transparency needs to be turned on. Note that workbench and EEVEE still needs to be adapted as they don't write store alpha value in the viewport. Side note. This implementation is already an improvement of the current behavior, what users are requesting. (Show background images underneath cycles viewport rendering.) It is clear that this patch still needs to be extended to workbench and eevee. For now that should be marked as a known limitation. Reviewed By: fclem Differential Revision: https://developer.blender.org/D5437
2019-09-26Object Mode: Fix missing ubo assert with irradiance gridClément Foucault
2019-09-23Cleanup: remove unimplemented texture space rotation variablesBrecht Van Lommel
2019-09-23Cleanup: remove Mesh.bb and Curve.bb, no reason for these to be persistentBrecht Van Lommel
These were only strictly valid for texture space calculation, don't store them since they should not be used after that. Only store a flag to indicate if the auto texture space has been evaluated. In the future it might make sense to store bounding boxes at the mesh level to speed up bounding box computation for multiple objects using the same mesh, but then it will need to be implemented differently.
2019-09-20Fix T70112: Spot cone prevents selectionCampbell Barton
2019-09-17DRW: Refactor to support draw call batchingClément Foucault
Reviewers: brecht Differential Revision: D4997
2019-09-14Cleanup: use const args, variablesCampbell Barton
2019-09-14Revert "DRW: Refactor to support draw call batching"Clément Foucault
This reverts commit ce34a6b0d727bbde6ae373afa8ec6c42bc8980ce.
2019-09-13DRW: Refactor to support draw call batchingClément Foucault
Reviewers: brecht Differential Revision: D4997
2019-09-12Object Mode: don't use origin axis helpers for selectionCampbell Barton
2019-09-123D View: only show origin axes when in object modeCampbell Barton
2019-09-07Cleanup: use post increment/decrementCampbell Barton
When the result isn't used, prefer post increment/decrement (already used nearly everywhere in Blender).
2019-08-263D View: show selected object axis when affect origins is enabledCampbell Barton
This replaces temporarily enabling draw-axis.
2019-08-26DRW: check exact draw flags before getting wire-frame colorCampbell Barton
Only some options need this.
2019-08-19View3D Grid: fix imperial grid drawingmano-wii
This is a step to finish the D4325 and fix the T61286. Currently the grid is highlighted in steps of 10 out of 10, which is wrong for the imperial units as seen in `buImperialLenDef`. The idea of the code is to pass the steps of the grid already dimensioned as a uniform. Another important thing to note is that subdivisions now only affect the grid without unity. This matches the 2.7x Blender versions. No performance loss (almost no gain too). Reviewers: fclem Subscribers: zlsa, rl.amorato Differential Revision: https://developer.blender.org/D4379
2019-08-08Fix T67638: Stretched Camera Background ImagesJeroen Bakker
The matrices that projects background images in the 3d view were incorrect. The root cause was that the coordinate systems were not respected, that was most noticeable when rotating a stretched image. We re-validated conversions of coordinate spaces (UV -> Image -> Camera -> Window) and made sure that the rotation is done in image space. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D5431
2019-08-06DrawManager: Fix Camera Images Interfere During SelectionJeroen Bakker
When drawing the selection buffer the camera images were drawn. This resulted in unneeded extra clicking for the user. This change will ignore camera images during the selection. Reviewed By: fclem Differential Revision: https://developer.blender.org/D5276
2019-08-01Cleanup: misc spelling fixesCampbell Barton
T68035 by @luzpaz
2019-07-24Fix background image rotation and offsetCampbell Barton
- Offset was halved & not compensating for non-square aspect. - Rotation was flipped.
2019-07-24Fix T67548: Camera background-image ignores shiftCampbell Barton
Regression from 2.79
2019-07-08Revert "Revert "Fix T63447 Particle system: No particles after switching ↵mano-wii
from hair to ..."" This reverts commit 45761e4c7cbbed2141afc97fb20b2bf26ce19ac2.
2019-07-08Revert "Fix T63447 Particle system: No particles after switching from hair ↵mano-wii
to ..." Problems with clang style This reverts commit 8d6a5fb5d3c45cdfb0d06dd7f1f18aa8c870f8c1.
2019-07-08Fix T63447 Particle system: No particles after switching from hair to ...Clément Foucault
... emitter type
2019-07-02Fix T66295 Collection instance duplicates don't have selection outlineClément Foucault
Was cause by shgroup reuse even if select state changed from previous dupli. Also fixes T64438 Collection Instance object highlight wrong
2019-06-27Cleanup: fix compiler warningsBrecht Van Lommel
2019-06-27ObjectMode: Fix selection points of LightGridsClément Foucault
2019-06-24Fix T65812: Image empty has wrong aspect with limit texture sizeCampbell Barton
2019-06-21Fix T62876: Camera Background ImagesJeroen Bakker
Migrate old legacy code to the draw mamager/object mode. The old legacy version did not work with wireframe. By migrating the code to modern draw manager code we have mode control on the drawing process. Still background images do not work with OIT, the cause seems to be that the transparent pixels are treated as background pixels. Also There are some artifacts when working with Holdouts and DoF, this is because the draw engines do not pass the correct alpha values. Reviewers: fclem, brecht Differential Revision: https://developer.blender.org/D4638
2019-06-19Fix T65918 DRW: Crash when add a any modifier to a curveClément Foucault
2019-06-07Fix T64625: Eevee image textures with alpha have dark edgesBrecht Van Lommel
Now texture storage of images is defined by the alpha mode of the image. The downside of this is that there can be artifacts near alpha edges where pixels with zero alpha bleed in. It also adds more code complexity since image textures are no longer all stored the same way. This changes allows us to keep using sRGB texture formats, which have edge darkening when stored with premultiplied alpha. Game engines seems to generally do the same thing, and we want to be compatible with them.
2019-05-30Fix T64510 Armature: Empty Not Visible as Bone custom shapeClément Foucault
2019-05-30DRW: Refactor to use object pointer for drawcall by defaultClément Foucault
This cleans up a bit of duplicated code and some confusion about what was culled and what wasn't. Now everything is culled based on the given object pointer. If the object pointer is NULL there is no culling performed.
2019-05-303D View: Support light probe data clippingCampbell Barton
2019-05-28Cleanup: DRW: CodestyleClément Foucault
2019-05-28Cleanup: DRW: Rename DRW_STATE_BLEND_* for API clarityClément Foucault
2019-05-27Fix T65177: Camera frame visible in viewport renderJacques Lucke
2019-05-27Cleanup: DRW: Move WorldClipPlanes to builtin uniformClément Foucault
2019-05-22DRW: Remove some usage of DRW_viewport_matrix_getClément Foucault
2019-05-17Cleanup: DRW: Remove uneeded DRWState valuesClément Foucault
This removes: - DRW_STATE_TRANS_FEEDBACK - DRW_STATE_WIRE - DRW_STATE_POINT
2019-05-14Cleanup: DRW: Add and use DRW_shgroup_uniform_vec2_copyClément Foucault
2019-05-14Cleanup: DRW: Remove uneeded _add suffix from DRW_shgroup_call_addClément Foucault
2019-05-14DRW: Refactor: Use DRWCall to accumulate per instance attributesClément Foucault
This is a big change that cleanup a lot of confusing code. - The instancing/batching data buffer distribution in draw_instance_data.c. - The selection & drawing code in draw_manager_exec.c - Prety much every non-meshes object drawing (object_mode.c). Most of the changes are just renaming but there still a chance a typo might have sneek through. The Batching/Instancing Shading groups are replace by DRWCallBuffers. This is cleaner and conceptually more in line with what a DRWShadingGroup should be. There is still some little confusion in draw_common.c where some function takes shgroup as input and some don't.
2019-05-13Cycles/Eevee: unified and improved texture image color space handlingBrecht Van Lommel
Cycles now uses the color space on the image datablock, and uses OpenColorIO to convert to scene linear as needed. Byte images do not take extra memory, they are compressed in scene linear + sRGB transfer function which in common cases is a no-op. Eevee and workbench were changed to work similar. Float images are stored as scene linear. Byte images are compressed as scene linear + sRGB and stored in a GL_SRGB8_ALPHA8 texture. From the GLSL shader side this means they are read as scene linear, simplifying the code and taking advantage of hardware support. Further, OpenGL image textures are now all stored with premultiplied alpha. Eevee texture sampling looks a little different now because interpolation happens premultiplied and in scene linear space. Overlays and grease pencil work in sRGB space so those now have an extra conversion to sRGB after reading from image textures. This is not particularly elegant but as long as engines use different conventions, one or the other needs to do conversion. This change breaks compatibility for cases where multiple image texture nodes were using the same image with different color space node settings. However it gives more predictable behavior for baking and texture painting if save, load and image editing operations have a single color space to handle. Differential Revision: https://developer.blender.org/D4807