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
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
2012-07-29code cleanup: replace MIN2/MAX2 with minf/maxfCampbell Barton
2012-07-27Move sRGB conversion initialization to init_exit routinesSergey Sharybin
It was a threading issue in color management project which potentially could happen in trunk as well.
2012-06-11minor fixesCampbell Barton
- new compositor could use uninitialized var - profile conversion could use uninitialized var - set better warnings for clang+cmake. - remove picky warnings from sphinx doc gen shell script.
2012-05-26add vector versions of hsv_to_rgb, rgb_to_hsv & rgb_to_hsv_compatCampbell Barton
2012-05-14style cleanup: imbuf & iconsCampbell Barton
2012-03-24style cleanup: follow style guide for formatting of if/for/while loops, and ↵Campbell Barton
else if's
2012-03-17== Sequencer ==Peter Schlaile
Bugfix: [#28159] sequencer strip crop values on proxy not scene render size Also: IMB saturation change moved into imbuf-module.
2012-02-25style cleanup, use { on newline after function definition.Campbell Barton
spelling 'impliment' -> 'implement'
2012-02-14Fix related to #30152, rainbow colours produced when loading hdr image to 3D ↵Antony Riakiotakis
viewport/ the Nyan cat bug. Issue is caused by scaling for power of 2 dimensions and mipmapping that happens through GLU. It looks like the library cannot handle float colour values above 1.0 correctly. Since we are close to release I will just clamp the srgb result for now even though it will result in a small performance loss for 16 bit textures only. I tried a few things before that, glGenerateMipmaps + no scaling (supported for 2.0 GL hardware and up), or using our own scaling instead of glu among them which worked very nicely and gave a speedup too. However, since we are close to release and there may be issues with GPU mipmap generation, see: http://www.gamedev.net/topic/495747-another-glgeneratemipmap-question/ (old discussion but better be sure than sorry) I went for the most compatible solution. Maybe after release this can be tested if other devs agree.
2012-01-20comment some dead assibnment and set dummy values for image profile ↵Campbell Barton
conversion in case of invalid input.
2012-01-19use color conversions functions in more places.Campbell Barton
also add rgba_float_to_uchar, rgba_uchar_to_float
2012-01-10Fix regressions in the color management / dither patch.Brecht Van Lommel
2012-01-08Color:Brecht Van Lommel
* Accelerated sRGB <=> linear conversion using lookup table, this can speed up loading of images in the compositor and simple renders quite a bit. * Dithering now uses the Floyd-Steinberg algorithm. Previously it would simply randomize each pixel slightly, adding noise, now that should be reduced. Patch #29309 by David M.
2012-01-05Fix mistake in recent refactoring, dither needs to be float not int.Brecht Van Lommel
2011-12-30Color management: add "Color Unpremultiply" option for images and render ↵Brecht Van Lommel
settings. For premultiplied alpha images, this makes any color space conversion for the image or render output work on color without alpha multiplied in. This is typically useful to avoid fringing when the image was or will be composited over a light background. If the image will be composited over a black background on the other hand, leaving this option off will give correct results. In an ideal world, there should never be any color space conversion on images with alpha, since it's undefined what to do then, but in practice it's useful to have this option. Patch by Troy Sobotka, with changes by me.
2011-12-28Code refactoring: add unified image buffer functions for doing float => byte,Brecht Van Lommel
byte => float, float => float, byte => byte conversions with profile, dither and predivide. Previously code for this was spread out too much. There should be no functional changes, this is so the predivide/table/dither patches can work correctly.
2011-10-23remove $Id: tags after discussion on the mailign list: ↵Campbell Barton
http://markmail.org/message/fp7ozcywxum3ar7n
2011-06-24fix [#27746] Black and White Render doesn't work and/or Saves as a Blank screenCampbell Barton
convert to grayscale when saving renders rather then only writing the red channel.
2011-06-07fix for float projection painting, now updating correctly. Antony Riakiotakis
This fix also allows for partial update of the image, speeding up painting. The different code path implemented will be used to upload high resolution images to OpenGL when onion branch is merged. Due to conversion of float textures to/from sRGB, corrections made to brush color sampling to take account of the image profile. This is not 100% correct yet as texture images used for projection painting strokes are not converted to/from sRGB yet(This has been decided due to loss of precision for 8-bit formats). It will have to do for now, though. last-minute update, exr image loading is broken, will fix asap
2011-03-27imbuf, mathutils & readfile: floats were being implicitly promoted to ↵Campbell Barton
doubles, adjust to use floats.
2011-03-03replace 0 with NULL when used as a pointerCampbell Barton
2011-02-27doxygen: blender/imbuf tagged.Nathan Letwory
2011-02-23doxygen: prevent GPL license block from being parsed as doxygen comment.Nathan Letwory
2011-01-17Bugfix #25657Ton Roosendaal
Three code fixes for 1 report. User experienced crashes while painting on float buffer + having preview renders on. - Texture Nodes: Image was re-allocated without using proper thread lock - Paint code: old convention to free the byte rect from a float image as signal to re-create now is a proper flag. This keeps image memory unchanged. Nice for render. - Imbuf: call to make a byte rect from float was freeing mipmaps unnecessary.
2011-01-12remove redundant assignments & unused vars.Campbell Barton
also minor functional changes - OBJECT_OT_make_links_data() type property is now assigned to the operator property (so popup menu can find it) - removing BG image now returns cancelled if no image is removed.
2011-01-08fix for crash when converting sequencer profiles with non-float buffers.Campbell Barton
2011-01-07remove references to BKE_utildefines where its not needed.Campbell Barton
- move GS() define into DNA_ID.h - add BLI_utildefines as an automatic include with makesrna generated files.
2011-01-07split BKE_utildefines.h, now it only has blender specific defines like GS() ↵Campbell Barton
MAKE_ID, FILE_MAXDIR, moved the generic defines to BLI_utildefines.h. no functional changes.
2010-12-05Bugfix #25041Ton Roosendaal
Sequencer crash when combining a scene strip with image strip and cross. Code lacked proper check for byte buffer in scene...
2010-12-01bugfix [#23406] DPX Images load darker then saved, UI broken.Campbell Barton
- a linear float buffer was being created and saved into a non-linear DPX/Cineon file. - removed the UI since the settings are not used at the moment. added a utility function IMB_float_profile_ensure(), which returns a float buffer in the requested profile, using the existing if needed or returning an allocated buffer if the profile is different to that of the ImBuf. - Useful this case where the save function has its own linear setting.
2010-11-02fix for compiling with the c90 standard, support for non-static variable ↵Campbell Barton
initializers is a c99 feature.
2010-10-16most unused arg warnings corrected.Campbell Barton
- removed deprecated bitmap arg from IMB_allocImBuf (plugins will need updating). - mostly tagged UNUSED() since some of these functions look like they may need to have the arguments used later.
2010-07-12sequencer float conversion was only using rgb -> float conversion ↵Campbell Barton
inconsistantly, some places used colorspace conversion, some not. Added IMB_float_from_rect_simple() for the sequencer to use.
2010-05-07Merge image related changes from the render branch. This includes the imageBrecht Van Lommel
tile cache code in imbuf, but it is not hooked up to the render engine. Imbuf module: some small refactoring and removing a lot of unused or old code (about 6.5k lines). * Added a ImFileType struct with callbacks to make adding an file format type, or making changes to the API easier. * Move imbuf init/exit code into IMB_init()/IMB_exit() functions. * Increased mipmap levels from 10 to 20, you run into this limit already with a 2k image. * Removed hamx, amiga, anim5 format support. * Removed colormap saving, only simple colormap code now for reading tga. * Removed gen_dynlibtiff.py, editing this is almost as much work as just editing the code directly. * Functions removed that were only used for sequencer plugin API: IMB_anim_nextpic, IMB_clever_double, IMB_antialias, IMB_gamwarp, IMB_scalefieldImBuf, IMB_scalefastfieldImBuf, IMB_onethird, IMB_halflace, IMB_dit0, IMB_dit2, IMB_cspace * Write metadata info into OpenEXR images. Can be viewed with the command line utility 'exrheader' For the image tile cache code, see this page: http://wiki.blender.org/index.php/Dev:2.5/Source/Imaging/ImageTileCache
2010-03-22spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text)Campbell Barton