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-11-01Refactor: Rename Object->obmat to Object->object_to_worldSergey Sharybin
Motivation is to disambiguate on the naming level what the matrix actually means. It is very easy to understand the meaning backwards, especially since in Python the name goes the opposite way (it is called `world_matrix` in the Python API). It is important to disambiguate the naming without making developers to look into the comment in the header file (which is also not super clear either). Additionally, more clear naming facilitates the unit verification (or, in this case, space validation) when reading an expression. This patch calls the matrix `object_to_world` which makes it clear from the local code what is it exactly going on. This is only done on DNA level, and a lot of local variables still follow the old naming. A DNA rename is setup in a way that there is no change on the file level, so there should be no regressions at all. The possibility is to add `_matrix` or `_mat` suffix to the name to make it explicit that it is a matrix. Although, not sure if it really helps the readability, or is it something redundant. Differential Revision: https://developer.blender.org/D16328
2022-10-30Fix T102126 Regression: Grease Pencil: Broken 2D LayeringClément Foucault
This was because `stroke_id` was not using `vertex_start`. But since `vertex_start` is not 1 based like it used to be, we need to add 1 to it to avoid a fragment depth of `0.0` which would be equal to the background and not render.
2022-10-30DRW: Manager: Add possibility to record a framebuffer change inside a passClément Foucault
This is a convenience when one needs to often change the current framebuffer and avoid the overhead of creating many Main/Simple passes.
2022-10-30Fix T102160: Regression: GPencil gradient fill not workingClément Foucault
Was caused by uvs not being sourced from the correct buffer.
2022-10-30DRW: Manager: Allow custom draw command in PassMainClément Foucault
This allows using drawcalls with non default vertex range. These calls will be culled like any other instance by the GPU culling pipeline. But they will not be batched together since the vertex range is part of the group.
2022-10-28Cleanup: formatCampbell Barton
2022-10-26Fix T101925: sculpt color painting not updating with Cycles viewport renderBrecht Van Lommel
* External engines do not use the PBVH and need slower depsgraph updates. * Final depsgraph tag after stroke finishes was missing for sculpt color painting, caused missing updates for other viewports as well as any modifiers or nodes on other objects using the colors.
2022-10-26Sculpt: fix T102067: Set material properly in new pbvh drawJoseph Eagar
Note: Still need to fix PBVH_BMESH.
2022-10-25Cleanup: formatChris Blackbourn
2022-10-25Cleanup: Curves: Remove GPUTexture wrappers for buffer textureClément Foucault
These are unecessary now that we can bind buffers as textures directly.
2022-10-25Fix T102052 GPencil: stroke outline glitches in object modeClément Foucault
Was caused by an extra point per stroke being drawn.
2022-10-25DRW: Pointcloud: Refactor drawing to remove instancingClément Foucault
This change the attribute binding scheme to something similar to the curves objects. Attributes are now buffer textures sampled per points. The actual geometry is now rendered using an index buffer that avoid too many vertex shader invocation. Drawcall is wrapped in a DRW function to reduce complexity of future changes.
2022-10-24GPencil: Fix crash when using circle or rectangle toolClément Foucault
This was caused by a wrongly sized vertex buffer for the stroke buffer.
2022-10-24GPencil: Fix missing fillsClément Foucault
For some reason stroke_id needs to be the triangle index, not the vertex index.
2022-10-24GPencil: Fix regression (part3) with edit mode introduced in rB0ee9282b5c51Clément Foucault
Vertex indexing has not been updated and stroke_start usage was wrong. Update all `stroke_start` usage.
2022-10-24Pencil: Fix regression (part2) with stroke buffer introduced in rB0ee9282b5c51Clément Foucault
`vert_len` was being shadowed and index_min & max wasn't correctly set.
2022-10-24GPencil: Fix regression with stroke buffer introduced in rB0ee9282b5c51Clément Foucault
2022-10-24GPencil: Fix regressions introduced in rB0ee9282b5c51Clément Foucault
Batching was broken / disabled and starting indices were wrong.
2022-10-24GPencil: Fix build errors caused by designated initializer in C++Clément Foucault
2022-10-24GPencil: Use indexed rendering instead of instancesClément Foucault
This allows using instancing in other ways, like resources indexing.
2022-10-24GPencil: Port draw_cache_impl_gpencil.cc to C++Clément Foucault
2022-10-21EEVEE: Fix ill defined blend in cubemap array workaroundClément Foucault
This fixes some firefly issues on corners of the cubemaps where the blending factors would go above 1 or below 0.
2022-10-20Fix T93382: Blender still generates subsurface render passesLukas Stockner
In T93382, the problem was that the Blender-side rendering code was still generating the subsurface passes because the old render pass flags were set, even though Cycles doesn't generate them anymore. After a closer look, it turns out that the entire hardcoded pass creation code can be removed. We already have an Engine API function to query the list of render passes from the engine, so we might as well just call that and create the returned passes. Turns out that Eevee already did this anyways. On the Cycles side, it allows to deduplicate a lot of `BlenderSync::sync_render_passes`. Before, passes were defined in engine.py and in sync.cpp. Now, all passes that engine.py returns are created automatically, so sync.cpp only needs to handle a few special cases. I'm not really concerned about affecting external renderer addons, since they already needed to handle the old "builtin passes" in their Engine API implementation anyways to make them show up in the compositor. So, unless they missed that for like 10 releases, they should not notice any difference. Differential Revision: https://developer.blender.org/D16295
2022-10-19EEVEE: Depth Of Field: Replace ambiguous select with manual checkClément Foucault
This is an attempt to remove a driver bug.
2022-10-19Fix T101896 Eevee: Custom object properties don't work in shader for Curves ↵Clément Foucault
objects Move the material resources binding inside the `DRW_shgroup_curves_create_sub` so that `DRW_shgroup_call_no_cull` extracts the attributes.
2022-10-18Metal: MTLBatch and MTLDrawList implementation.Jason Fielder
MTLBatch and MTLDrawList implementation enables use of Metal Viewport for UI and Workbench. Includes Vertex descriptor caching and SSBO Vertex Fetch mode draw call submission. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D16101
2022-10-17FIX T101445: halo Particles are not working.Jason Fielder
color uniform assignment needing to be changed to ucolor was missed. Ref T101445 Reviewed By: fclem Maniphest Tasks: T101445 Differential Revision: https://developer.blender.org/D16236
2022-10-17Cleanup: spelling in comments, unused arg warningCampbell Barton
2022-10-16Fix T99450: Animated Holdout not updating on frame changeLukas Stockner
Problem here was that layer_collection_objects_sync wasn't called when the holdout property is updated due to frame change, so the changed visibility flag was never applied to ob->base_flag. Turns out there's no real reason to handle the per-object holdout property through the layer system. So, instead of merging both the layer holdout and object holdout into base_flag and checking that from the render engines, only handle the layer holdout (which can't be animated, so no issue here) through base_flag and explicitly also check the object holdout in the render engines.
2022-10-15Cleanup: comment out unused lambda parameterJoseph Eagar
2022-10-15Sculpt: Fix draw artifacts when drawing multires maskJoseph Eagar
2022-10-15Sculpt: do not validate PBVH draw data in mesh_batch_cache_validJoseph Eagar
Turns out PBVH drawing and normal mesh batches are not mutually exclusive inside the draw cache; there are edge cases with modifiers and instancing where you need both, and forcing one or the other inside this function leads to memory corruption.
2022-10-14Fix: Draw: Initialize StencilSet in the correct orderMiguel Pozo
tmp
2022-10-14Cleanup: Small changes to curves draw cacheHans Goudey
- Remove unused include - Avoid repeating blender:: namespace - Remove timer left in by mistake in previous commit
2022-10-14Curves: Multithread position vertex buffer extractionHans Goudey
On a Ryzen 3700x I observed a 4ms improvement (from 5ms to 1ms) on every redraw when sculpting with 88000 curves.
2022-10-13Fix: Crash updating draw cache of original curves dataHans Goudey
Error in c67e5628d22f8348492 which mistook clearing the pointer for clearing the values in the struct.
2022-10-13Cleanup: Use std::mutex for mesh runtime mutexesHans Goudey
Instead of allocating three separate ThreadMutex pointers, just embed std::mutex into the struct directly.
2022-10-13Mesh: Move runtime data out of DNAHans Goudey
This commit replaces the `Mesh_Runtime` struct embedded in `Mesh` with `blender::bke::MeshRuntime`. This has quite a few benefits: - It's possible to use C++ types like `std::mutex`, `Array`, `BitVector`, etc. more easily - Meshes saved in files are slightly smaller - Copying and writing meshes is a bit more obvious without clearing of runtime data, etc. The first is by far the most important. It will allows us to avoid a bunch of manual memory management boilerplate that is error-prone and annoying. It should also simplify future CoW improvements for runtime data. This patch doesn't change anything besides changing `mesh.runtime.data` to `mesh.runtime->data`. The cleanups above will happen separately. Differential Revision: https://developer.blender.org/D16180
2022-10-13Draw: Add missing TBB define to draw moduleHans Goudey
Allows improving performance with BLI_task.hh in draw extraction code. Threading added in c15a63d21eae49ffd improved performance by 3-4x for me, but didn't make a difference until now.
2022-10-12Cleanup: EEVEE-Next: Add precision to commentClément Foucault
2022-10-12DRW: View: Expose matrices through interfaceClément Foucault
2022-10-12DRW: Wrappers: Add TextureRef to wrap around GPUTexture pointersClément Foucault
This adds the possibility to use the C++ API for other GPUTexture.
2022-10-12DRW: Fix gl error related to incorrect uniform sizeClément Foucault
2022-10-12Cleanup: DRW: Improve state_stencil documentationClément Foucault
2022-10-12ImageEngine: Clamp image data to fit half float range.Jeroen Bakker
When image data exceeds half float ranges values are set to +/- infinity that could lead to artifacts later on in the pipeline. Color management for example. This patch adds a utility function `IMB_gpu_clamp_half_float` that clamps full float values to fit within the range of half floats. This fixes T98575 and T101601.
2022-10-12UV: add grid shape source to the uv editor, and add new "pixel" optionChris Blackbourn
This change is part of a wider set of changes to implement Grid and Pixel snapping in the UV Editor. This particular change adds a new third option, `pixel grid`, to the previous grid options, `dynamic grid` and `fixed grid`. Maniphest Tasks : T78391 Differential Revision: https://developer.blender.org/D16197
2022-10-11Cleanup: Move draw_cache_impl_volume.c to C++Hans Goudey
2022-10-11Sculpt: Fix mask from cavity not redrawing viewport with modifiersJoseph Eagar
2022-10-11Sculpt: Fix T101674: Passing null to GPU_batch_elembuf_setJoseph Eagar
2022-10-10EEVEE-Next: Fix surface deferred shader compilation in debug modeClément Foucault