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
2015-04-21Metadata display support - patch by Julian and me.Antony Riakiotakis
Basically, blender adds a few metadata fields to images when we render an image. Those metadata can now be viewed in the image editor. Also, made sure metadata are available when we write imbufs to disc with "Save As". There may be more cases here that need fixing, but this means that loading an image with metadata will now properly preserve them in blender.
2015-04-06Multi-View and Stereo 3DDalai Felinto
Official Documentation: http://www.blender.org/manual/render/workflows/multiview.html Implemented Features ==================== Builtin Stereo Camera * Convergence Mode * Interocular Distance * Convergence Distance * Pivot Mode Viewport * Cameras * Plane * Volume Compositor * View Switch Node * Image Node Multi-View OpenEXR support Sequencer * Image/Movie Strips 'Use Multiview' UV/Image Editor * Option to see Multi-View images in Stereo-3D or its individual images * Save/Open Multi-View (OpenEXR, Stereo3D, individual views) images I/O * Save/Open Multi-View (OpenEXR, Stereo3D, individual views) images Scene Render Views * Ability to have an arbitrary number of views in the scene Missing Bits ============ First rule of Multi-View bug report: If something is not working as it should *when Views is off* this is a severe bug, do mention this in the report. Second rule is, if something works *when Views is off* but doesn't (or crashes) when *Views is on*, this is a important bug. Do mention this in the report. Everything else is likely small todos, and may wait until we are sure none of the above is happening. Apart from that there are those known issues: * Compositor Image Node poorly working for Multi-View OpenEXR (this was working prefectly before the 'Use Multi-View' functionality) * Selecting camera from Multi-View when looking from camera is problematic * Animation Playback (ctrl+F11) doesn't support stereo formats * Wrong filepath when trying to play back animated scene * Viewport Rendering doesn't support Multi-View * Overscan Rendering * Fullscreen display modes need to warn the user * Object copy should be aware of views suffix Acknowledgments =============== * Francesco Siddi for the help with the original feature specs and design * Brecht Van Lommel for the original review of the code and design early on * Blender Foundation for the Development Fund to support the project wrap up Final patch reviewers: * Antony Riakiotakis (psy-fi) * Campbell Barton (ideasman42) * Julian Eisel (Severin) * Sergey Sharybin (nazgul) * Thomas Dinged (dingto) Code contributors of the original branch in github: * Alexey Akishin * Gabriel Caraballo
2015-03-25Allow multiple strips to use the same directory when custom proxyAntony Riakiotakis
directory is used. This is done by appending the name of the file as extra folder. Existing projects may need to regenerate their proxies but it should be possible now to have all proxies nicely in the same custom folder. Next commits will include operators to copy directory settings between selected strips, making the process faster.
2015-02-23Move allocation of imbuf from array to allocimbuf.Antony Riakiotakis
Skip allocation of temporary imbuf
2015-02-23After discussion on irc change new function to only allocate from aAntony Riakiotakis
buffer only. scaling can be done separately
2015-02-23IMB library: Add function that scales an array of byte or float pixels.Antony Riakiotakis
Function just wraps the array in an imbuf and does regular imbuf scaling.
2015-01-30Get rid of the file touch hack.Antony Riakiotakis
If user cancels, there's an issue with leftover files. Instead use a hash to record files that have akready been registered for generation and skip them if so. That should guarantee things will go smoothly and when a file exists it is assumed to be valid.
2015-01-28Sequencer: Option to skip strip proxy generation if they already existsSergey Sharybin
This is a per-strip option next to the build proxy size which tells blender whether to skip building proxy size if the file for it already exists or not. The option is called "Overwrite" for simplicity. This option is enabled by default to avoid changes in the file behavior. TODO: Would be nice to do something like that for movie clips as well.
2014-07-21GSOC 2013 paintAntony Riakiotakis
Yep, at last it's here! There are a few minor issues remaining but development can go on in master after discussion at blender institute. For full list of features see: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.72/Painting Thanks to Sergey and Campbell for the extensive review and to the countless artists that have given their input and reported issues during development.
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-30Correct issue with IMB_ispic returning boolCampbell Barton
2014-04-11Code cleanup: use boolCampbell Barton
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2013-10-09Photoshop PSD supportDalai Felinto
We now support the combined layer of Photoshop files (stored as layer 0 in the file). This way users can keep their files as multilayer PSD and Blender always handle them as flat images. For perfect alpha this requires an OpenImageIO update: https://github.com/OpenImageIO/oiio/commit/342cc2633ff590a3bb278481c61ae798c7148361 Photoshop sample files: https://github.com/OpenImageIO/oiio-images Brecht has some pending fixes to push for OIIO as well, so we may as well wait to update our libraries. What works: =========== * 8bit images (with or without alpha) * 16bits images (alpha discarded) * Photoshop files saved with 'Maximum Compatibility' * Cycles, Blender internal, BGE (and player) Known limitations (due to OIIO dependency): ========================= * Images with less than 4 channels show a wrong thumbnail (bug may be in OIIO) * Packed images are not supported * We do not write PSD files. Note: old Blenders have support for PSD via Quicktime library. But due to license issues this was discontinued. Many thanks for Brecht van Lommel for reviewing the patch, suggesting multiple improvements and to help solving the alpha issue.
2013-09-10code cleanup: use bool for imbuf allocation functions.Campbell Barton
2013-05-12Image paint: 2D painting now supports texture masks and does masking moreBrecht Van Lommel
consistent with projection painting. Also did some refactoring of this code, moving the brush image creation code out of brush.c and making it consistent with image updating code.
2013-04-30More image painting fixes:Brecht Van Lommel
* 2D image painting support for masking to limit the max contribution of a stroke to a pixel, to get it working compatible with projection painting. Not strictly a bugfix, but the inconsistency here was annoying. * Fix python errors in Texture Mask panel in image editor, was missing overlay options. * Clamp paint mask to 0..1 in case some texture exceeds it, this could give black pixels due to integer overflow.
2013-04-28Fix #34233: bad alpha blending for 3D texture painting. Same changes as theBrecht Van Lommel
previous fix for 2D image painting were done, and also: * For brushes that do masking (keeping the max contribution to a pixel limited), the alpha from textures is now part of the mask. In many cases the logic worked out the same and where it didn't it used to cause artifacts. * Color interpolation for smear and soften tools now happens in premultipied space, to avoid bleeding of RGB colors from zero alpha areas. * Fix a few cases where byte <=> float conversion was not doing the proper straight <=> premul conversion. * Replace some float division by constants with multiplications, is faster. Note: float texture painting seems to have some issues updating the OpenGL texture, but issue was already there before this commit.
2013-04-27Fix part of #34233: bad alpha blending for 2D image painting. This is a veryBrecht Van Lommel
old issue, the formulas here were never quite right, should all work ok now with byte and float images. Some differences: * Colors with zero alpha from the background will never have an influence, so you don't get alpha fringes when painting over such areas. This does give hard edges when looking at the RGB channels alone, but there's no way to avoid that and fringes at the same time, same behavior as other painting apps. * Add/Subtract/Multiply/Lighten/Darken now leave the alpha channel unchanged and work only the RGB channels, again same behavior as many other apps. * Erase/Add alpha now compensates for premultiplied float images to keep the straight RGB colors the same. Next: fix projection painting.
2013-03-26style cleanup:Campbell Barton
also rename mesh_getVertexCos() --> BKE_mesh_vertexCos_get() to match curve function.
2013-03-15Multi-threaded frame calculation for movie clip proxiesSergey Sharybin
This commit implements multi-threaded calculation of frames when building proxies. Both scaling and undistortion steps are now threaded. Frames and proxy resolution are still handled one-by-one, saving files after every single step. So if HDD is not so fast, this commit could have not so much benefit. Internal changes: - Added IMB_scaleImBuf_threaded which scales given image buffer in multiple threads and uses bilinear filtering. - libmv's camera intrinsics now have SetThreads() method which is used to specify how many OpenMP threads to use for buffer distortion/undistortion. And yeah, this code is using OpenMP for threading. - Reshuffled a bit libmv-capi calls and added function BKE_tracking_distortion_set_threads to specify number of threads used by intrinscis.
2013-01-08Remove unused IMB function which wasn't ported to new color managementSergey Sharybin
Also marked some TODOs as actually solved.
2013-01-05Changes for opengl render to reflect new alpha premul pipelineSergey Sharybin
without hurting quick texture painting - ED_view3d_draw_offscreen will now output buffer with transparent alpha, if sky needed it should be alpha-undered later. - ED_view3d_draw_offscreen_imbuf now accepts alpha mode as an argument which could be either R_ADDSKY or R_PREMULALPHA - OpenGL render and sequencer's opengl preview will now reflect scene's Alpha Mode - Quick Edit will use OpenGL with transparent alpha mode
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-11code cleanup: neareast -> nearestCampbell Barton
2012-11-05Change a way how image sequence/movie source is detecting for movie clipSergey Sharybin
Use IMB_testiffname to check whether file could be handled by ImBuf or whether it should be handled by anim routines. It solves the issue when file without extension is used for movie clip.
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-01style cleanup: define float sizes for interpolation functions, add retirn's ↵Campbell Barton
on newlines (to better add breakpoints).
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-04fix for building on msvc2008 (also style cleanup)Campbell Barton
2012-08-26Some FFmpeg changesSergey Sharybin
- Make FFmpeg initialization called from creator, not from functions which requires FFmpeg. Makes it easier to follow when initialization should happen. - Enable DNxHD codec. It was commented a while ago due to some strange behavior on some platforms. Re-tested it on Linux and Windows and it seemd to be working quite nice. Would let it be tested further, if it wouldn't be stable enough, easy to comment it again. - Make non-error messages from writeffmpeg.c printed only if ffmpeg debug argument was passed to blender. Reduces console pollution with messages which are not useful for general troubleshooting. Error messages would still be printed to the console. - Show FFmpeg error message when video stream failed to allocate. makes it easier to understand what exactly is wrong from Blender interface, no need to restart blender with FFmpeg debug flag and check for console messages. Used custom log callback for this which stores last error message in static variable. This is not thread safe, but with current design FFmpeg routines could not be called form several threads anyway, so think it's fine solution/
2012-08-13fix [#32126] STAMP: Setting a background color causes color flickerCampbell Barton
when rendering the sequencer can output float or char buffers which stamp wasn't accounting for.
2012-08-07Made image buffer threaded processor generic function,Sergey Sharybin
so color management could use the same routines. Should be no functional changes.
2012-05-29finish cleanup for pluginsCampbell Barton
2012-05-26code cleanup: use array size and const for vector argsCampbell Barton
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-03-09style cleanup: comment blocksCampbell Barton
2012-03-09style cleanup: spelling.Campbell Barton
also remove large, duplicate comments from sunsky.h
2012-03-04style cleanup - comment spelling + translate some dutch.Campbell Barton
2012-03-02style cleanupCampbell Barton
- spelling - turns out we had tessellation spelt wrong all over. - use \directive for doxy (not @directive) - remove BLI_sparsemap.h - was from bmesh merge IIRC but entire file commented and not used.
2012-02-29Code Cleanup: remove non existing function declarations.Campbell Barton
added some missing functions too - which are not used yep but should be there for api completeness. * CDDM_set_mloop * CDDM_set_mpoly * BLI_mempool_count
2012-02-29Refactor of proxies build operatorsSergey Sharybin
Split proxy build operator into three parts: - Prepare context (IMB_anim_index_rebuild_context) which prepares all needed data and stores it in an anonymous structure used by specific builder lately. - Build proxies/timecodes into temporary files (IMB_anim_index_rebuild) This function will build all selected proxies/timecodes into a temporary files so old proxies will be still available during building. - Finish building proxies (IMB_anim_index_rebuild_finish) which copies temporary files over old proxies filed and releases all resources used by a context. Context creation and finishing building happens in a main thread so it's easy and safe to close all opened handles of proxies files and refresh cache after rebuilding is finished. This should finally fix #30315: Temporary proxy files are not erased and old proxys are not updated if the proxy is built more then once (windows)
2012-02-23Fix #30315: Temporary proxy files are not erased and old proxys are not ↵Sergey Sharybin
updated if the proxy is built more then once (windows) Two issues are fixed here: - On windows rename() doesn't actually renames file if destination file is already exist. Solved by ulinking previously built proxy/timecode. - IMB_TC_MAX_SLOT was set to incorrect value leading to record run timecode calculating several times.
2012-02-17unify include guard defines, __$FILENAME__Campbell Barton
without the underscores these clogged up the namespace for autocompleation which was annoying.
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-06use warnigns for all msvc configurationsCampbell Barton
2012-01-05Fix mistake in recent refactoring, dither needs to be float not int.Brecht Van Lommel
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-12-15Free run no gaps time code implementationSergey Sharybin
This commit adds new timecode type which counts frames in gapless mode (counting actually decoded frames instead of using pts to find frame number) which might resolve issues with files which have got broken or incorrect base time value stored in the header. This timecode allows to deal with movies from #29388: Abnormal frame length on MP4 files