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
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-11Performance: Use parallel range for ImBuf scanline processor.Jeroen Bakker
Scanline processor did its own heurestic what didn't scale well when having a multiple cores. In stead of using our own code this patch will leave it to TBB to determine how to split the scanlines over the available threads. Performance of the IMB_transform before this change was 0.002123s, with this change 0.001601s. This change increases performance in other areas as well including color management conversions. Reviewed By: zeddb Differential Revision: https://developer.blender.org/D11578
2020-09-14Cleanup: use doxy sections for imbufCampbell Barton
2020-08-08Cleanup: use array syntax for sizeof with fixed valuesCampbell Barton
Also order sizeof(..) first to promote other values to size_t.
2020-05-20Cleanup: remove legacy mmap memory allocation for 32 bitBrecht Van Lommel
This helped to go beyond the 4GB limit, but is no longer relevant for 64 bit.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-02-17ColorManagement: Dithering ImprovementClément Foucault
- Unlock property range. - Use triangular noise to keep perceptual noise error more uniform. Remap range to preserve perceptual intensity. - Center noise distribution around 0 for GPU implementation because of rounding. - Do dithering after merging overlays. Effect of using triangular noise is not really noticeable if you don't use really low bitdepth. But doing a test in the shader were we artificially reduce the bitdepth (`col = (col * 16) / 16;`) reveals the real difference. Reviewed By: brecht Differential Revision: https://developer.blender.org/D6850
2019-05-19Images: change alpha settings to support channel packingBrecht Van Lommel
This also replaces the Use Alpha setting. We now have these alpha modes: * Straight: store RGB and alpha channels separately with alpha acting as a mask, also known as unassociated alpha. * Premultiplied: transparent RGB pixels are multiplied by the alpha channel. The natural format for renders. * Channel Packed: different images are packed in the RGB and alpha channels, and they should not influence each other. Channel packing is commonly used by game engines to save memory. * None: ignore alpha channel from the file and make image fully opaque. Cycles OSL does not correctly support Channel Packed and None yet, we are missing fine control over the OpenImageIO texture cache to do that. Fixes T53672
2019-05-19Cleanup: remove unused image buffer codeBrecht Van Lommel
2019-04-23Cleanup: style, use braces for imbufCampbell Barton
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-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.
2018-07-10Cleanup: remove unused interlace code after removal of fields.Brecht Van Lommel
2018-06-17Cleanup: trailing space for imbuf moduleCampbell Barton
2018-05-07Cleanup: rename char/float conversion functionsCampbell Barton
- FTOCHAR -> unit_float_to_uchar_clamp - F3TOCHAR3 -> unit_float_to_uchar_clamp_v3 (swap args) - F4TOCHAR4 -> unit_float_to_uchar_clamp_v4 (swap args) - FTOUSHORT -> unit_float_to_ushort_clamp - USHORTTOUCHAR -> unit_ushort_to_uchar
2016-05-06Multi-thread generated image creationSergey Sharybin
Gives about 2x speedup on laptop when creating new hires generated image, regardless of it's type (color, color grid, uv grid).
2016-05-05Optimize projection painting with big brushesSergey Sharybin
Multi-threaded partial buffer update, gives about 2x speedup with big brushes. Thanks Campbell for testing and benchmarking!
2015-04-30Fix T44541 aka gigapixel image render support in blender.Antony Riakiotakis
Moral of the story: Make sure that size_t is used whenever pointer arithmetic is involved. For images, that basically means whenever any squared dimensions are involved. Casting an operand to size_t early in the operation is usually sufficient to force the entire operation to size_t. There might still be places lurking where we don't support this correctly. This has been tested with render pipeline, quite a few image functions (meaning we can paint on such images now, albeit somewhat slowly ;) ) and export to jpeg. Too many places in code to check so I guess we'll be handling cases as they come. Don't try this at home unless you have an immense ammount of RAM. First GPixel render of suzanne in the multiverse can be found here: http://download.blender.org/demo/test/suzanne-billion-pixel.jpg Can be viewed from blender (takes about 3.3 GB after loading but may take more during loading so 8GB might be more safe to try this).
2015-03-17Part 2 of D1082 by Troy Sobotka, remove our functions that do lumaAntony Riakiotakis
calculations and use the OCIO one instead.
2015-02-11cleanup: style/indentationCampbell Barton
2015-01-29Gooseberry request: Dithering support for byte images when painting onAntony Riakiotakis
projection painting (2D will be separate commit).
2014-11-29Cleanup: unused headersCampbell Barton
2014-08-12Fix T41414, T41386.Antony Riakiotakis
There were a few issues to fix here: * We did not really unpremultiply float image dabs prior to sending them to the GPU. That made float and byte image result different in texture painting and undoing could change the result. * To make textures nicely composited over the mesh, I used decal mode in OpenGL texture environment for the texture unit. This uses the texture's alpha channel with a nice over operator. * Texture creation used to override the alpha setting due to the display restrictions. Not so anymore, people can now create transparent byte images. Also, made alpha zero default for new textures now, since it has such a nice effect here.
2014-05-03IMB buffer functions to take a mask as inputDalai Felinto
The mask make sure the conversion only happens in a few areas of the buffer. New Functions: * IMB_buffer_byte_from_float_mask * IMB_buffer_float_from_float_mask The functions are an adaptation of their maskless counterparts without accepting different profiles for the input and output buffers. Review: Sergey Sharybin
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-26Code cleanup: use 'const' for arrays (blenloader, gpu, imbuf, makesdna, ↵Campbell Barton
modifiers, nodes)
2014-04-11Code cleanup: use boolCampbell Barton
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-01-23Fix for IMB_(un)premultiply_rect_float() not doing right businessSergey Sharybin
- Made them receive number of channels rather than number of planes. This matches to how ImBuf structure stored planes and channels. - IMB_premultiply_rect_float() was called with channels passed instead of planes already :S.
2014-01-21Fix T38298: crash saving float image with 3 channels from exr to png/jpeg.Brecht Van Lommel
2013-12-13Code cleanup: float<>double promotionCampbell Barton
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-09-05Code cleanup: use boolean instead of int for colormanagementSergey Sharybin
2013-04-11Fix issue with bright frames appearing in clip editor when compositor is open.Sergey Sharybin
Allocate float buffer outside of image buffer, so work-in-progress color space conversion doesn't interfere with other parts of blender. Covers most of cases -- since image buffer wouldn't have partially-update float buffer all the rest areas would be happy. However, if there're places which updates float buffer from byte buffer, it's still possible some WIP color space conversion is displayed on the screen. But what a heck someone will do such a crappy conversion anyway!
2013-04-04code cleanup: use bools in UI and WM code, quiet some shadow warnings, ↵Campbell Barton
remove unused function uiEmboss()
2013-01-15Follow general mathutils rules for naming straight<->premul functionsSergey Sharybin
2013-01-08Remove unused IMB function which wasn't ported to new color managementSergey Sharybin
Also marked some TODOs as actually solved.
2012-12-31Alpha premul pipeline cleanupSergey Sharybin
This assumptions are now made: - Internally float buffers are always linear alpha-premul colors - Readers should worry about delivering float buffers with that assumptions. - There's an input image setting to say whether it's stored with straight/premul alpha on the disk. - Byte buffers are now assumed have straight alpha, readers should deliver straight alpha. Some implementation details: - Removed scene's color unpremultiply setting, which was very much confusing and was wrong for default settings. Now all renderers assumes to deliver premultiplied alpha. - IMB_buffer_byte_from_float will now linearize alpha when converting from buffer. - Sequencer's effects were changed to assume bytes have got straight alpha. Most of effects will work with bytes still, however for glow it was more tricky to avoid data loss, so there's a commented out glow implementation which converts byte buffer to floats first, operates on floats and returns bytes back. It's slower and not sure if it should actually be used -- who're using glow on alpha anyway? - Sequencer modifiers should also be working nice with straight bytes now. - GLSL preview will predivide float textures to make nice shading, shading with byte textures worked nice (GLSL was assuming straight alpha). - Blender Internal will set alpha=1 to the whole sky. The same happens in Cycles and there's no way to avoid this -- sky is neither straight nor premul and doesn't fit color pipeline well. - Straight alpha mode for render result was also eliminated. - Conversion to correct alpha need to be done before linearizing float buffer. - TIFF will now load and save files with proper alpha mode setting in file meta data header. - Remove Use Alpha from texture mapping and replaced with image datablock setting. Behaves much more predictable and clear from code point of view and solves possible regressions when non-premultiplied images were used as textures with ignoring alpha channel.
2012-12-02Silent a bunch of gcc warnings (usually dummy, but noisy!).Bastien Montagne
2012-11-09style cleanup: indentationCampbell Barton
2012-10-25Fix issue after commit 50282: float texture painting non-color data textures didBrecht Van Lommel
not do correct partial updates, now it remembers if the opengl texture is a non-color data texture or not and takes that into account for the update. Also includes some renaming ncd => is_data for consistency with color space terminology used elsewhere.
2012-10-23rename api functions...Campbell Barton
- minf, maxf, mini, maxi --> min_ff, max_ff, min_ii, max_ii
2012-10-21style cleanup: trailing tabs & expand some non prefix tabs into spaces.Campbell Barton
2012-10-05Fix #32763: Image flickering appears if Movie Clip Editor and compositor openedSergey Sharybin
The issue was caused by compositor was allocating float buffer for image and then this buffer was filled with data converted from byte buffer. If display happens at time between float was allocated and it was filled black areas were appearing on the screen. Made it so IMB_float_from_rect locks color management thread so display transform wouldn't use uninitialized buffer anymore.
2012-09-15Color Management, Stage 2: Switch color pipeline to use OpenColorIOSergey Sharybin
Replace old color pipeline which was supporting linear/sRGB color spaces only with OpenColorIO-based pipeline. This introduces two configurable color spaces: - Input color space for images and movie clips. This space is used to convert images/movies from color space in which file is saved to Blender's linear space (for float images, byte images are not internally converted, only input space is stored for such images and used later). This setting could be found in image/clip data block settings. - Display color space which defines space in which particular display is working. This settings could be found in scene's Color Management panel. When render result is being displayed on the screen, apart from converting image to display space, some additional conversions could happen. This conversions are: - View, which defines tone curve applying before display transformation. These are different ways to view the image on the same display device. For example it could be used to emulate film view on sRGB display. - Exposure affects on image exposure before tone map is applied. - Gamma is post-display gamma correction, could be used to match particular display gamma. - RGB curves are user-defined curves which are applying before display transformation, could be used for different purposes. All this settings by default are only applying on render result and does not affect on other images. If some particular image needs to be affected by this transformation, "View as Render" setting of image data block should be set to truth. Movie clips are always affected by all display transformations. This commit also introduces configurable color space in which sequencer is working. This setting could be found in scene's Color Management panel and it should be used if such stuff as grading needs to be done in color space different from sRGB (i.e. when Film view on sRGB display is use, using VD16 space as sequencer's internal space would make grading working in space which is close to the space using for display). Some technical notes: - Image buffer's float buffer is now always in linear space, even if it was created from 16bit byte images. - Space of byte buffer is stored in image buffer's rect_colorspace property. - Profile of image buffer was removed since it's not longer meaningful. - OpenGL and GLSL is supposed to always work in sRGB space. It is possible to support other spaces, but it's quite large project which isn't so much important. - Legacy Color Management option disabled is emulated by using None display. It could have some regressions, but there's no clear way to avoid them. - If OpenColorIO is disabled on build time, it should make blender behaving in the same way as previous release with color management enabled. More details could be found at this page (more details would be added soon): http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management -- Thanks to Xavier Thomas, Lukas Toene for initial work on OpenColorIO integration and to Brecht van Lommel for some further development and code/ usecase review!
2012-09-15quiet -Wmissing-prototypes warnings, and enable this warning by default for ↵Campbell Barton
C with gcc. helps for finding unused functions and making functions static, also did some minor code cleanup.
2012-08-13code cleanup: includes for imbuf, also remove double promotion.Campbell Barton