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-05-23OpenGL: documentation for the builtin GPU shadersDalai Felinto
This is intended to help developers to know how and when to use each shader. There are plenty of undocumented shaders, but it's a matter of filling them in. The script I used to quickly find the related shaders for a const is: P700 Original patch: D2318
2018-05-16GPUShader/DRW: Add Transform Feedback support.Clément Foucault
This is a usefull feature that can be used to do a lot of precomputation on the GPU instead of the CPU. Implementation is simple and only covers the most usefull case. How to use: - Create shader with transform feedback. - Create a pass with DRW_STATE_TRANS_FEEDBACK. - Create a target Gwn_VertBuf (make sure it's big enough). - Create a shading group with DRW_shgroup_transform_feedback_create(). - Add your draw calls to the shading group. - Render your pass normaly. Current limitation: - Only one output buffer. - Cannot pause/resume tfb rendering to interleave with normal drawcalls. - Cannot get the number of verts drawn.
2018-05-03Metaball: Move handles shader to draw/modes/shader and reference them in ↵Germano
draw_common.c
2018-05-02GPUShader: Remove unused envelope shaders.Clément Foucault
2018-05-02GPUShader: Add GPU_SHADER_2D_IMAGE_MULTISAMPLE_2/4/8/16Clément Foucault
This shader is used instead of blitting back and forth to a single sample buffer. This means it resolves the color and depth samples and outputs a fragment which can be depth tested and blended on top of an existing framebuffer. We do static shader variation with manual loop unrolling for performance reason. In my test I get 25% more perf with intel integrated gpu and 75% performance gain with dedicated nvidia card compared to a single shader with a uniform for sample count.
2018-04-26UI: desaturate toolbar icons that the mouse is not over.Brecht Van Lommel
This does not look great with light toolbar buttons as in the default, so consider this a work in progress.
2018-04-22Remove unused shaderCampbell Barton
Originally added for icon drawing, no longer used.
2018-04-21View3D: Atenuate banding artifacts on background gradient.Clément Foucault
Dithering the output color for 8bit precision framebuffer with bayer matrix. On my tests the bayer matrux patterns are not noticeable at all. Note that it also does that in opengl rendered mode which can be in a much higher bitdepth. We can fix that if that's a problem in the future but I doubt it will.
2018-04-20UI: Support for runtime geometry iconsCampbell Barton
2018-04-17GPU: Add GPU_SHADER_INSTANCE_VARIYING_ID_VARIYING_SIZE.Clément Foucault
Will be used for probe outline id drawing.
2018-04-06GPUShader: Add GPU_SHADER_2D_WIDGET_BASE_INST shader.Clément Foucault
This will let us draw multiple widget base at once.
2018-04-06UI: Perf: Improve ui_draw_dropshadow.Clément Foucault
Replace the 12 iterations of UI_draw_roundbox_4fv with only one batch. This mean less overdraw and less drawcalls. I had to hack the opacity falloff curve manually to get approximatly the same result as previous technique. I'm sure with a bit more brain power somebody could find the perfect function.
2018-04-05GPUShader: Add 2D Nodelink shader.Clément Foucault
Special shader to draw nodelinks for the node editor. We only pass bezier points to the GPU and vertex position is handled inside the vertex shader. The arrow is also part of the batch to avoid separate drawcalls for it. We still draw 2 pass one for shadow and one for the link color on top. One variation to draw instances of theses links so that we only do one drawcall.
2018-03-31UI: Perf: Batch icons drawcalls together.Clément Foucault
For this we use a new shader that gets it's data from a uniform array. Vertex shader position the vertices using these data. Using glUniform is way faster than using imm for that matter. Like BLF rendering, UI icons are always (as far as I know) non occluded and displayed above everything else. They also does not overlap with texts so they can be batched at the same time.
2018-03-30BFL: Fix broken vertical texts.Clément Foucault
I've made a separate version of the geom shader that works with full 3D modelviewmat. This commit also includes some fixup inside blf_batching_start().
2018-03-29GPUShader: Add specialized widget base shader.Clément Foucault
This vertex shader let us draw widgets with batches instead of imm calls.
2018-03-28UI: Perf: Make icon_draw_texture use GWN_draw_primitive.Clément Foucault
This bypass the use of immediate mode for theses drawcalls. Placement and and icon select (via uvs) is done inside the vertex shader.
2018-03-22GPUCompositing: Remove entire module.Clément Foucault
This module has no use now with the new DrawManager and DrawEngines and it is using deprecated paths. Moving gpu_shader_fullscreen_vert.glsl to draw/modes/shaders/common_fullscreen_vert.glsl
2018-02-26DRW: Add new Draw Manager OpenGL Context.Clément Foucault
This separate context allows two things: - It allows viewports in multi-windows configuration. - F12 render can use this context in a separate thread and do a non-blocking render. The downside is that the context cannot be used while rendering so a request to refresh a viewport will lock the UI. This is something that will be adressed in the future. Under the hood what does that mean: - Not adding more mess with VAOs management in gawain. - Doing depth only draw for operators / selection needs to be done in an offscreen buffer. - The 3D cursor "autodis" operator is still reading the backbuffer so we need to copy the result to it. - All FBOs needed by the drawmanager must to be created/destroyed with its context active. - We cannot use batches created for UI in the DRW context and vice-versa. There is a clear separation of resources that enables the use of safe multi-threading.
2018-02-16Metalball drawing: rename mball helpers to handlesGermano
and also rename some related functions
2018-02-13Code cleanup: stop using rectangle textures in window draw, simplify code.Brecht Van Lommel
2017-11-16Fix T51210: Draw Manager: Support for Metaball DrawingGermano
Differential Revision: D2914
2017-10-08Gawain: Make common uniforms become builtinsClément Foucault
This improves eevee's cache performance by 13% in my test.
2017-08-16DwM: Use Batch's for drawing selectionCampbell Barton
Use mesh batch cache for mesh selection. Note that we could create the batches and free immediately so they don't take up memory. This resolves a problem where selection was limited to immediate-mode buffer size.
2017-07-13Cleanup/rename etc. dashed line shaders.Bastien Montagne
Goal is to make them more modular, to allow more variants (variable single-color, thickness, ...) to be added without having to copy-and-change-one-line of whole chain of shaders.
2017-05-18DwM: Armature: Cleanup envelope bone code a bit.Bastien Montagne
Mainly adding 'wire' suffix to wire/distance drawing func and shader. Also, match wire vertex shader behavior with solid one regarding head/tail only drawing (i.e. alwas expect head bone mat, never tail one, and assume that if a radius is negative, then we only draw on the other end of the bone).
2017-05-18DwM: Armature: add solid envelope bone drawing.Bastien Montagne
Envelope bones are now pretty much identical to old drawing code. Note that currently new DwM drawing code does not seem to care about wire/solid drawing modes at all, guess this is still TODO... For now we hence just get both wire and solid for envelope bones, this can be refined later.
2017-05-17DwM: Armature: Add distance outline and wire drawing of envelope bones.Bastien Montagne
This is not complete, it does not implement 3D solid drawing of envelope bones. 2D wire is hence always drawn for now. Some notes: I did not try to implement the 'capsule' approach suggested by @fclem, because: 1. I spent enough time on this already, and finally got something working. 2. I managed to get rid of geometry shader completely. 3. Current approach allows us to use same shader for distance outline and envelope wire. It's working fine, except for one glitch - superpositions of envelope outlines do not work as expected, not sure what's wrong here, tried to disable zbuff, enable GL_BLEND, no luck so far... I think we need our own 'background' drawpass to get them working (also to avoid them drawing over the wire lines).
2017-05-11Eevee: Add tonemapping using ocio.Clément Foucault
Actually it's done by the Draw Manager, so other engines can use it.
2017-05-10DWM: Use Gawain for sculpt drawingCampbell Barton
Currently only uses the simple shader.
2017-05-04Use mesh draw cache for back-buffer selectionCampbell Barton
Vertex/weight paint now work with core profile, resolves T51380.
2017-05-03Weight painting with draw managerLuca Rood
This implements weight rendering with the draw manager, with all drawing options (Shading, wire, face masking, vertex masking). This is part of T51208 Reviewers: campbellbarton Subscribers: dfelinto Differential Revision: https://developer.blender.org/D2654
2017-04-26Add 3D version of dashed line shader.Bastien Montagne
This is actually nearly same code as 2D version, maybe we can deduplicate that later?
2017-04-19Fix alpha overlay for sculpt/paint when using core profileSergey Sharybin
Same fundamental problem as fonts -- there is no longer GL_ALPHA format.
2017-04-10Object Engine: Ported Force Field object drawing.Clément Foucault
2017-04-08OpenGL: drop support for EXT_geometry_shader4Mike Erwin
See gpu_shader.c for the main changes. EXT_geometry_shader4 brought this feature to GL versions < 3.2, but now it's just cluttering up our code. Soon all platforms will be on version 3.3 so we won't even have to check support at runtime!
2017-04-05Fix rotation manipulators not clippingJulian Eisel
Added new shader for clipping, also cleaned up rotation manipulator drawing code a bit. This code should be replaced by new transform manipulators soon, just keeping this working in the meanwhile.
2017-03-11OpenGL: Convert drawobject.c (cont)Clément Foucault
Particle system (not edit mode)
2017-03-05Clay Engine: More Lamp drawing workClément Foucault
2017-03-05Clay Engine: camera drawingClément Foucault
2017-03-03plug ShaderInterface into GPUShaderMike Erwin
Renamed existing getter/setter that only FX shaders use. We could convert FX code to use the richer new interface or leave it as is. Removed unused GPUShader fields. ShaderInterface tracks the same information.
2017-03-02Edit Mode overlay: Moved Shaders to draw modules and resolved some draw issue.Clément Foucault
We don't want to clutter gpu_shader.c with engine specific code Added face's center dot Simplified loose vert shader
2017-03-02Edit Mode overlay: fast navigateClément Foucault
2017-03-02Edit Mode overlays: separate multiple shaders for loose edges and vertsClément Foucault
2017-02-28rename built-in point shaders, SMOOTH --> AAMike Erwin
Updated shader names and code that uses them. All of these shaders produce round points that are anti-aliased and blended against the background. These were initially named SMOOTH because they replace glEnable(GL_POINT_SMOOTH). But SMOOTH in shader-land refers to vertex attribute interpolation (like glShadeModel(GL_SMOOTH)). Using SMOOTH to mean two things is confusing, so we now use AA to mean "the point is anti-aliased".
2017-02-26Clay Engine: Edit mesh overlaysClément Foucault
Based on the previous overlay shader from merwin. This shader takes care of clipped vertex cases and do all edit mode face info in one pass (except face centers). As the shading is done one the triangle itself the visual can't go beyond the surface of the mesh. That leads to half displayed edges on the outline of the mesh. This problem can be fixed by a second pass. This is work in progress.
2017-02-24OpenGL: wm_gesture uses new imm modeianwill
D2376 by @ianwill, part of T49043 review by @merwin Box select, circle select, etc. Introducing the dashed-line shader! See D2376 for more info.
2017-02-24OpenGL immediate mode: new shader image shuffle colorClément Foucault
new shader to draw an image with one isolated channel
2017-02-22Clay Engine: Renaming shader.Clément Foucault
2017-02-22Clay Engine: Prepare for Armature drawing.Clément Foucault
- Added runtime display matrices to EditBone and bPoseChannel - Added Object space instance vertex shader and modified the simple lighting shader accordingly