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
2018-11-16Fix crash when rendering a scene first and then goes to eevee preview modes ↵mano-wii
and cleanup The crash only occurs with Intel 3rd generation GPUs. It occurs because the program needs to be used at least once in the opengl context in which it is created.
2018-10-12Edit Mesh: Refactor edit mesh drawingClément Foucault
This decouple the vertex display from the face+edges. This is to reduce the number of triangles required to fix the edges artifacts (aliasing) and increase viewport reactivity when not actively navigating (ie. mouse scroll). Also it makes all vertices visible (not cut-off) even when navigating. However it makes the navigation drawing a bit slower because it has to render twice. Also add a depth bias to the wires to avoid depth fighting when previewing final mesh (modifiers applied).
2018-10-11GP: New Glow Shader FX (wip)Antonioya
New shader to simulate a glow of the color. The glow can be generated by luminance threshold or using a selection color.
2018-10-03Pose Mode: Add back IK Degrees of freedom displayClément Foucault
2018-09-30GP: implement Shadow FX (wip)Antonioya
Initial implementation of effect to create a drop shadow of the strokes
2018-09-27Implement a new dedicated weight painting shader.Jeroen Bakker
Move the weight paint drawing to the fragment shader. The shader uses a texture that uses the U.coba_weight custom color band, or an internal color band. In addition to actual weights, the shader has to display two alert colors: missing vertex group, and zero weight. The zero weight alert has to be blended with regular weight colors, so that a single alert vertex surrounded by weighted ones is still visible. Reviewers: campbellbarton, fclem Differential Revision: https://developer.blender.org/D3675
2018-09-26Cleanup: Edit Surface & Curve engines unused codeClément Foucault
2018-09-26Curve Edit: Cleanup/Improve/Fix handles drawingClément Foucault
Now handles are drawn using index buffer instead of duplicating memory requirement. Also make use of shader tricks to draw handles antialiased, and respond to UI scalling. Make vertex point match edit mesh vertex size.
2018-09-06CMake: add missing headersCampbell Barton
2018-09-05Fix T56692: The edges are not highlighted in Mark Freestyle EdgeClément Foucault
This was not ported yet.
2018-08-24Sculpt: Optimize Mask Overlay drawingClément Foucault
* Remove support for diffuse color in the pbvh buffers. * Upload raw data to GPU. * Only draw nodes that have mask data when drawing the overlay. This should fix T56466
2018-08-17Object Mode: Use same empty (arrow) drawing as the bone axes displayClément Foucault
2018-08-17Overlays: Support for wireframes and edit mode overlay on xray objectsClément Foucault
2018-08-14Workbench: Add support for the xray object optionClément Foucault
Xray object can be see through other objects. They cast shadows as well but cannot receive then.
2018-07-31New Grease Pencil object for 2D animationAntonioya
This commit merge the full development done in greasepencil-object branch and include mainly the following features. - New grease pencil object. - New drawing engine. - New grease pencil modes Draw/Sculpt/Edit and Weight Paint. - New brushes for grease pencil. - New modifiers for grease pencil. - New shaders FX. - New material system (replace old palettes and colors). - Split of annotations (old grease pencil) and new grease pencil object. - UI adapted to blender 2.8. You can get more info here: https://code.blender.org/2017/12/drawing-2d-animation-in-blender-2-8/ https://code.blender.org/2018/07/grease-pencil-status-update/ This is the result of nearly two years of development and I want thanks firstly the other members of the grease pencil team: Daniel M. Lara, Matias Mendiola and Joshua Leung for their support, ideas and to keep working in the project all the time, without them this project had been impossible. Also, I want thanks other Blender developers for their help, advices and to be there always to help me, and specially to Clément Foucault, Dalai Felinto, Pablo Vázquez and Campbell Barton.
2018-07-17Render: add "OpenGL" render engine.Brecht Van Lommel
This is intended for quick renders for previsualization, animation previews or sequencer previews. It provides the same settings as found in the 3D view Shading popover in solid display mode, but in the scene render properties. The "Workbench" engine was removed, and this name no longer appears in the user interface, it's purely an internal name. We might come up with a better name for this OpenGL engine still, but it's good to be consistent with the OpenGL Render operator name since this has a similar purpose.
2018-07-16Smoke: Port display to Workbench + object modeClément Foucault
This does not fix the smokesim. It only port the drawing method. The Object mode engine is in charge of rendering the velocity debugging. Things left to do: - Flame rendering. - Color Ramp coloring of volume data. - View facing slicing (for now it's only doing sampling starting from the volume bounds which gives a squarish look) - Add option to enable dithering (currently on by default.
2018-07-10Eevee: LightCache: Initial ImplementationClément Foucault
This separate probe rendering from viewport rendering, making possible to run the baking in another thread (non blocking and faster). The baked lighting is saved in the blend file. Nothing needs to be recomputed on load. There is a few missing bits / bugs: - Cache cannot be saved to disk as a separate file, it is saved in the DNA for now making file larger and memory usage higher. - Auto update only cubemaps does update the grids (bug). - Probes cannot be updated individually (considered as dynamic). - Light Cache cannot be (re)generated during render.
2018-06-28Workbench: Anti-aliasing refactorJeroen Bakker
- TAA is also enabled for Forward rendering - Uses less GPU memory (removed one history buffer) - TAA is done after the color management - consolidated the aa code between forward and deferred rendering (workbench_effects_aa.c)
2018-06-26Workbench: Tempural Anti AliasingJeroen Bakker
- FXAA is now also done in the workbench_forward engine. - User can enable TAA8 in the userpref by setting their max viewport AA to TAA8. FXAA will still be used when navigating
2018-06-15MeshEditMode: refactorJeroen Bakker
- added a lib for shaded functions - decreased active face inner size
2018-06-15Workbench: FXAAJeroen Bakker
FXAA implementation in the deferred renderpass of the workbench. Can be enabled per 3dview. Eventually this will also be a user setting as it is more a system/performance setting than a scene setting.
2018-06-12T55454: removal of clay engineJeroen Bakker
The ClayEngine was introduced to test the blender2.8 architecture during development. As currently we have the wanted features implemented with matcaps we are going to remove the clay engine as it was never intended to be an official releasable engine Note: The test cases are never run. But when enabled will be skipped as they were implemented over the Clay Engine
2018-06-10Workbench: Xray: Add selected/active non-occluded outlinesClément Foucault
This Fix the problem when multiple objects are selected and one of them occlude the others. You cannot see clearly what is selected. With this option, selection is more clear when Xray mode is enabled.
2018-06-10Workbench: Xray: Optimize and fix implementation.Clément Foucault
There was a method explained in the Weighted Blended Order-Independent Transparency paper to support hardware that does not support per render target blending function. So now only 2 geometry passes are required instead of 3 (one being the outline/depth fill pass). This also fix how the blending is done. There was some premult confusion in the implementation.
2018-06-09Eevee: Improve compilation time (reduce branching).Clément Foucault
This patch reduce the branching in the lamp loop, improving compilation time noticeably (2372ms to 1785ms for the default shader). This should not change the appearance of the shader. Performance impact is negligeable.
2018-06-06T55333 Workbench: Cavity ShaderJeroen Bakker
A cavity shader based on SSAO. Works on all workbench deferred passes. Per 3d viewport the cavity shader options can be set as different shading needed different options. Some global options are in the Viewport Display of the scene like num samples and distance. Experimental: Naming of Ridges and Valleys
2018-06-03Wireframe: Optimization for intel GPUs.Clément Foucault
Intel GPU take more advantage of the geometry shader than other vendors. Using a simple geom shader approach in this case is more performant.
2018-06-01T54991: Restore support for Motion Path drawing in 2.8Joshua Leung
This commit restores support for Motion Path drawing in 2.8 (as it wasn't ported over to the new draw engines earlier, and the existing space_view3d/drawanimviz.c code was removed during the Blender Internal removal). Notes: * Motion Paths are now implemented as an overlay (enabled by default). Therefore, you can turn all of them on/off from the "Overlays" popover * By and large, we have kept the same draw style as was used in 2.7 Further changes can happen later following further design work. * One change from 2.7 is that thicker lines are used by default (2px vs 1px) Todo's: * There are some bad-level calls introduced here (i.e. the actgroup_to_keylist() stuff). These were introduced to optimise drawing performance (by avoiding full keyframes -> keylist conversion step on each drawcall). Instead, this has been moved to the calculation step (in blenkernel). Soon, there will be some cleanups/improvements with those functions, so until then, we'll keep the bad level calls. Credits: * Clément Foucault (fclem) - Draw Engine magic + Shader Conversion/Optimisation * Joshua Leung (Aligorith) - COW fixes, UI integration, etc. Revision History: See "tmp-b28-motionpath_drawing" branch (rBa12ab5b2ef49ccacae091ccb54d72de0d63f990d)
2018-05-31Overlay: Add Wireframe overlay.Clément Foucault
This overlay is showing mesh topology. It is usable with transparency even if the mesh order can mess up with the expected result (some object more prominent than others). Edge thickness and alpha values are hardcoded for now but can easily be added to theme or object settings.
2018-05-30DRW: Add new GPU hair system.Clément Foucault
This new system use transform feedback to compute subdivided hair points position. For now no smoothing is done between input points. This new system decouple the strands data (uv, mcol) with the points position, requiring less update work if only simulation is running. In the future, we can have compute shader do the work of the feedback transform pass since it's really what it's meant to. Also we could generate the child particles during this pass, releasing some CPU time. draw_hair.c has been created to handle all of the Shading group creations as well as subdivision shaders. We store one final batch per settings combination because multiple viewport or render could use the same particle system with a different subdivision count or hair shape type.
2018-05-28EEvEE: LookDevJeroen Bakker
2018-05-27DRW: Add new DRW_debug API.Clément Foucault
This new API aim to provide simple function that can be called by the draw engines during any phase of the draw pipeline. All calls are saved and issued after all engines have finished rendering. This removes the need of setuping special passes and shading groups for some simple debug drawing.
2018-05-24Workbench: Revealage bufferJeroen Bakker
2018-05-23Workbench: Checkboard pattern for supporting objectsJeroen Bakker
2018-05-22Workbench: SeeThrough draw optionJeroen Bakker
Option to see through all meshes (transparency) Works for OB_SOLID and OB_TEXTURED. Does not work for V3D_SHADING_SHADOW. TODO: Fresnel effect
2018-05-20Workbench: Shadow: Add Depth Fail methodClément Foucault
Also add new debug visualisation. Depth fail method is not used for the moment but has nice benefits. It will be used efficiently in the future.
2018-05-13Eevee: Depth of field: Change final blending.Clément Foucault
This new blending allows background to fill the gaps left by forground objects. However this has a drawback, background objects that should be partially occluded in this case can be seen through the blurred objects. This does not fix the problem of blurred foreground over sharp background. Also cleanup code to be simpler and remove unused geometry shader.
2018-05-09Draw manager: Initial implementation of key points visualizationSergey Sharybin
Does all points all the time, ignoring the setting in viewport header. This is to be addressed by the next commit.
2018-05-09Draw manager: Initial implementation of particle edit modeSergey Sharybin
Gets edit more from the current object and displays it as a path. this is how both hair and particle edit modes are supposed to work. This only covers path itself, it doesn't do anything like keys visualization or selection. However, it's already possible to comb and such. Only implements particle mode. There are also some settings to do soft body and cloth. No idea yet what that all is about. Copy-on-write is not supported either, this is due to some edit mode ownership problems which are to be addressed from dependency graph side. Shading is dead-simple: uses tangent as a color. This is where i hope to get some help from Clément.
2018-05-08Armature: Add back Stick bone draw type.Clément Foucault
The actual code is a bit convoluted but allows good and "pseudo efficient" drawing. (pseudo efficient because rendering instances with that amount of vertices is really inneficient. We should go full procedural but need to have bufferTexture implemented first) But drawing speed is not a bottleneck here and it's already a million time less crappy than the old (2.79) immediate mode method. Instead of drawing actual wires with different width we render a triangle fan batch (containing 3 fans: bone, head, tail) which is then oriented in screen space to the bone direction. We then interpolate a float value accross vertices giving us a nice blend factor to blend the colors and gives us really smooth interpolation inside the bone. The outside edge still being geometry will be antialiased by MSAA if enabled.
2018-05-06Armature: Fix/Change bone axes display.Clément Foucault
Now the axes are displayed correctly at the tip of the bone and with the axes names. I've made some modifications though: - Axes are colored. (should not be in object mode but that's TODO) - Axes ends are not flat arrows anymore. Replaced with a small diamond. - Axes names are now scale by their respective axes instead of being affected by other axes. - Changed axes names "font" to be a bit more sexy.
2018-05-05Armature: Rename bone shaders and add 2 colors smooth blending.Clément Foucault
This will enable us to do more nice stuff in future commits. This commit is a temporary commit, it will compile but will crash if trying to display any armature. Next commit does work.
2018-05-04Workbench: ShadowsJeroen Bakker
Initial review of the shard shadows in the workbench engine. Speed optimizations like transform feedback are not implemented yet. I first want this part to be reviewed and merged. @fclem please check the note in drw_stencil_set it was holding back nequal == 0 as by default DST.stencil_mask was set to 0. questioin is should we remove the whole check or not. Also I am still looking for a better name (or split the enum) for DRW_STATE_STENCIL_DEPTH_FAIL_INCR_DECR_WRAP Reviewers: fclem Reviewed By: fclem Tags: #code_quest Differential Revision: https://developer.blender.org/D3198
2018-05-03Workbench: selection method for studio lightingJeroen Bakker
2018-05-03Workbench: studiolightJeroen Bakker
2018-05-03Metaball: Move handles shader to draw/modes/shader and reference them in ↵Germano
draw_common.c
2018-05-02Armature: More work and cleanup on envelope bones drawing.Clément Foucault
- Draw tail & head sphere with point shader (no needs for another way). - Use the same function for issuing the calls for wire and solid envelope.
2018-05-02Armature: Envelope Bones: Change drawing method.Clément Foucault
We now use a more pleasant and efficient way to display enveloppe bones and their radius. For this we use a capsule geometry that is displaced (in the vertex shader) to a signed distance field that represents the bone shape. The bone distance radius are now drawn in 3D using a "pseudo-fresnel" effect. This gives a better understanding of what is inside the radius of influence. When capsules are not needed, we switch to default raytraced points. The capsules are not distorded by the bone's matrix (same as their actual influence radius) and are correctly displayed even with complex scaled parents hierarchy.
2018-05-02Armature: "Raytrace" bones endpoint spheres.Clément Foucault
Here is how it works: We render a high poly disc that we orient & scale towards the camera so that it covers the same pixel of the sphere it's supposed to represent. Then the pixel shader raytrace the sphere (effectively starting from the poly disc depth) and outputs the depth to gl_FragDepth. This approach has many benefit: - high quality obviously: per pixel accurate depth! - compatible with MSAA: since the sphere horizon is delimited by polygons, we get the coverage computed by the rasterizer. However we still gets aliasing if the sphere intersect directly other meshes. - virtually no overdraw: there is no backface to shade but we still get overdraw because by little triangle [gpus rasterize pixel by groups of 4]. - allows early depth test: since the poly disc is set at the nearest depth we can output, we can use GL_ARB_conservative_depth to enable early depth test and discard pixels that are already behind geometry. - can draw outline pretty easily without geometry shader.