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-01-07Cleanup: remove redundant const qualifiers for POD typesCampbell Barton
MSVC used to warn about const mismatch for arguments passed by value. Remove these as newer versions of MSVC no longer show this warning.
2022-01-06Cleanup: spelling in commentsCampbell Barton
2021-12-09Cleanup: move public doc-strings into headers for 'imbuf'Campbell Barton
Ref T92709
2021-05-21Cleanup: spellingLeon Zandman
Includes fixes to misspelled function names. Ref D11280
2020-09-04Cleanup: Clang-Tidy readability-inconsistent-declaration-parameter-name fixSebastian Parborg
No functional changes
2020-08-07Code Style: use "#pragma once" in source directoryJacques Lucke
This replaces header include guards with `#pragma once`. A couple of include guards are not removed yet (e.g. `__RNA_TYPES_H__`), because they are used in other places. This patch has been generated by P1561 followed by `make format`. Differential Revision: https://developer.blender.org/D8466
2020-07-09EEVEE: Implement the missing Sky textureSzymon Ulatowski
I'm not sure if the Sky was deliberately left out or was just waiting for a better moment, but so many I was disappointed that Sky in EEVEE is completely white. There are already 2 implementations (osl and gpu) so this is the third one. Looking at other cases it seems that we are not supposed to share sources between cycles and the rest? So the new util_sky_model files are just copies of what is already in cycles, except that the data file uses the RGB variant of the Hosek/Wilkie model, because we output RGB anyway (but can be easily changed to XYZ if desired - the results are nearly identical). I am not sure if it is okay to pass 3*9 float values as 3 mat4 uniforms (I wanted to use mat3 but it does not work). Also, should I cache the sky model data between renders if the parameters do not change? Reviewed By: fclem, brecht Differential Revision: https://developer.blender.org/D7108
2020-05-15Fix T76698: Movie clip stabilize display ignore footage colorspacePhilipp Oeser
settings Stabilized ImBuf just needs to use the same colorspace and alpha settings as the original one. Maniphest Tasks: T76698 Differential Revision: https://developer.blender.org/D7713
2020-03-25Cleanup: use 'r_' prefix for output argumentsCampbell Barton
Also pass some args as 'const'.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-02Cleanup: make remaining imbuf headers work in C++Jacques Lucke
2020-02-11DRW: Color Management improvementClément Foucault
Reviewed By: brecht sergey jbakker Differential Revision: http://developer.blender.org/D6729
2019-06-18Cleanup: remove unused render buffersBrecht Van Lommel
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-18Fix T64762: incorrect textures for non-color images with an alpha channelBrecht Van Lommel
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
2019-04-21Cleanup: comments (long lines) in imbufCampbell Barton
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-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-01Color management: change view transform for color pickers and display modes.Brecht Van Lommel
* Use simple default view transform for color pickers, as Filmic does not work well for all types of colors. We better handle this with an option and tagging of colors as emissive or albedo like. * For solid/workbench we also no longer use Filmic, as there is not enough contrast and it's not really needed since this is not physically based lighting. * For lookdev always take into account the view transform and look. Other view settings like exposure are only taken into account if scene lighting is used, since these are often dependent on scene light intensity. Fixes T61022, T57649, T59363.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-28Cleanup: sort forward declarations of enum & structCampbell Barton
Done using: source/tools/utils_maintenance/c_sort_blocks.py
2018-12-13Color management: add OCIO aware utility functions for transform to/from XYZ.Brecht Van Lommel
2018-12-13Fix T58549, T56741: HSV color picker issues with Filmic view transform.Brecht Van Lommel
In 2d655d3 the color picker was changed to use display space HSV values. This works ok for a simple sRGB EOTF, but fails with view transforms like Filmic where display space V 1.0 maps to RGB 16.292. Instead we now use the color_picking role from the OCIO config when converting from RGB to HSV in the color picker. This role is set to sRGB in the default OCIO config. This color space fits the following requirements: * It is approximately perceptually linear, so that the HSV numbers and the HSV cube/circle have an intuitive distribution. * It has the same gamut as the scene linear color space. * Color picking values 0..1 map to scene linear values in the 0..1 range, so that picked albedo values are energy conserving.
2018-12-06Color management: Use default view with no extra transform when not specifiedSergey Sharybin
2018-12-05Color management: Query default view from displaySergey Sharybin
Solves weird situation when default display name is queried from OCIO, but Default view being assumed to be set for it. Now view is initialized to a default view of that display.
2018-12-05Color management: Cleanup, typosSergey Sharybin
2017-05-07Color management: add Filmic view transform to Blender configuration.Brecht Van Lommel
* "Filmic" and "False Color" view transforms added (sRGB display device only). * "Very Low/Low/Base/High/Very High Contrast" looks added. * Added filtering so that Filmic only shows look names prefixed with "Filmic - ". Filmic Dynamic Range LUT configuration created by Troy James Sobotka with special thanks and feedback from Guillermo, Claudio Rocha, Bassam Kurdali, Eugenio Pignataro, Henri Hebeisen, Jason Clarke, Haarm-Peter Duiker, Thomas Mansencal, and Timothy Lottes. Differential Revision: https://developer.blender.org/D2659
2017-02-07Color management: Add utility function to convert byte to float with ↵Sergey Sharybin
processor applied
2017-02-07Color management: Implement threaded byte buffer conversionSergey Sharybin
The title says it all actually: now we can convert byte buffer directly, without need of temporary float buffer.
2016-05-06Implement threaded partial display buffer updateSergey Sharybin
This speeds up update of display buffer when affected area is big enough. Mainly helpful for cases when doing long fast strokes when painting.
2016-01-25ImBuf: Make luminance calculation inlinedSergey Sharybin
Title actually tells it all, it is rather simple function which totally makes sense to be inlined. This gives up to 5% of speedup when updating scopes for a large image. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D1310
2015-03-28Cleanup: redundant struct declarationsCampbell Barton
2015-03-17Part 2 of D1082 by Troy Sobotka, remove our functions that do lumaAntony Riakiotakis
calculations and use the OCIO one instead.
2014-01-01Fix deadlock happening when using Save Buffers for renderSergey Sharybin
Summary: Issue was caused by the same tile being written twice to the EXR file. This was happening because of partial update of work-in-progress tiles was merging result to the final render result in order to make color management pipeline happy. We need to avoid such a merges and keep memory usage as low as possible when Save Buffers is enabled. Now render pipeline will allocate special display buffer in render layer which will contain combined pass in the display space. This keeps memory usage as low as we can do at this moment. There's one weak thing which is changing color management settings during rendering would lead to lossy conversion. This is because render result's display buffer uses color space from the time when rendering was invoked. This is actually what was happening in previous release already actually so not a big issue. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D162
2013-12-18Color management: added utility function to apply processor on a pixelSergey Sharybin
It applies color management on a pixel in a way, based on number of channels of this pixel. Simplifies partial update code a bit.
2013-12-18Color management: get rid of original byte buffer partial updateSergey Sharybin
It was only used by opengl render and in fact it needed just to set DISPLAY_BUFFER_INVALID flag for the image buffer. In theory it wouldn't make any change to opengl render speed (because this change just moved rect_from_float from color management code to image save code). And could not see any speed changes on my laptop.
2013-12-13Implement GPU-side ditherSergey Sharybin
Summary: Uses some magic pseudo-random which is actually a texture coordinate hashing function. TODOs: - Dither noise is the same for all the frames. - It's different from Floyd's dither we've been using before. - Currently CPU and GPU dithering used different implementation. Ideally we need to use the same dither in CPU. Reviewers: brecht Reviewed By: brecht Differential Revision: http://developer.blender.org/D58
2013-12-04Code cleanup: remove unused color management functionsSergey Sharybin
2013-10-09Implementation of curve mapping in GLSLSergey Sharybin
The title says it all, now having curve mapping enabled in color management settings wouldn't force fallback from GLSL to CPU based color space conversion.
2013-09-12code cleanup: headers - doxy comments.Campbell Barton
2013-09-09Film response curves implemented as a looksSergey Sharybin
This commit implement's OCIO's Looks idea which is about applying some color correction on the buffer before it get's affected by a display transform. This is mainly used to modify images in an artistics way. Currently we've got looks generated from film response curves for all sorts of cameras. Patch by both of me and Brecht.
2013-09-05Code cleanup: use boolean instead of int for colormanagementSergey Sharybin
2013-09-02Fix #36124: VSE - Input Color option does not work for video filesSergey Sharybin
Byte images and movies will now fully follow input color space. Before this non-sRGB input colorspace for byte images and movies behave really doggy (results in preview and final render were totally different). To prevent data loss, if byte image is set not stored in sequencer's space it'll be internally converted to float buffer. In theory some setups might be rendering a bit different now, but new behavior is totally expected and someone used non-sRGB input space for byte images/movies had Convert Float enabled anyway.
2013-08-31RenderEngine API: add viewport draw utility functions to bind a GLSL fragmentBrecht Van Lommel
shader for converting colors from linear to display space, based on the scene color management settings. if engine.support_display_space_shader(scene): # test graphics card support engine.bind_display_space_shader(scene) # draw pixels .. engine.unbind_display_space_shader()
2013-05-12Speedup for rendered viewport for blender internalSergey Sharybin
Display code was a bottleneck here, so made it so render result draw follows Image Draw settings.
2013-04-04Use GLSL display for compositor backdrop and sequencer previewSergey Sharybin
Now only background images remained to be ported. Plus implement GLSL for dithering and RGB curves.
2013-04-04code cleanup: use bools in UI and WM code, quiet some shadow warnings, ↵Campbell Barton
remove unused function uiEmboss()
2013-04-03Bunch of fixes for GLSL display transformSergey Sharybin
- GLSL shader wasn't aware of alpha predivide option, always assuming alpha is straight. Gave wrong results when displaying transparent float buffers. - GLSL display wasn't aware of float buffers with number of channels different from 4, crashing when trying to display image with different number of channels. This required a bit larger changes, namely now it's possible to pass format (GL_RGB, GL_RGBAm GL_LUMINANCE) to glaDrawPixelsTex, This also implied adding format to glaDrawPixelsAuto and modifying all places where this functions are called. Now GLSL will handle both 3 and 4 channels buffers, single channel images are handled by CPU. - Replaced hack for render result displaying with a bit different hack. Namely CPU conversion will happen only during render, once render is done GLSL would be used for displaying render result on a screen. This is so because of the way renderer updates parts of the image -- it happens without respect to active render layer in image user. This is harmless because only display buffer is modifying, but this is tricky because we don't have original buffer opened during rendering. One more related fix here was about when rendering multiple layers, wrong image would be displaying when rendering is done. Added a signal to invalidate display buffer once rendering is done (only happens when using multiple layers). This solves issue with wrong buffer stuck on the display when using regular CPU display space transform and if GLSL is available it'll make image displayed with a GLSL shader. - As an additional change, byte buffers now also uses GLSL display transform. So now only dutehr and RGB curves are stoppers for using GLSL for all kind of display transforms.