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
2016-04-25Refactor BKE_blender into separate headersCampbell Barton
- BKE_blender_version.h (only version defines & versionstr). - BKE_blender_copybuffer.h (currently only used for view3d copy/paste). - BKE_blender_undo.h (global undo functions). - BKE_blendfile.h (high level blend file read/write API).
2015-12-27Split id->flag in two, persistent flags and runtime tags.Bastien Montagne
This is purely internal sanitizing/cleanup, no change in behavior is expected at all. This change was also needed because we were getting short on ID flags, and future enhancement of 'user_one' ID behavior requires two new ones. id->flag remains for persistent data (fakeuser only, so far!), this also allows us 100% backward & forward compatibility. New id->tag is used for most flags. Though written in .blend files, its content is cleared at read time. Note that .blend file version was bumped, so that we can clear runtimeflags from old .blends, important in case we add new persistent flags in future. Also, behavior of tags (either status ones, or whether they need to be cleared before/after use) has been added as comments to their declaration. Reviewers: sergey, campbellbarton Differential Revision: https://developer.blender.org/D1683
2015-09-14Fix T45699: own regression w/ looptri updateCampbell Barton
Baking was still checking tessface in parts.
2015-07-27Don't allocate MFace's by defaultCampbell Barton
This removes CD_MASK_MFACE from CD_MASK_BAREMESH, CD_MASK_DERIVEDMESH and others. Callers that need it must explicitly add it to their data-masks.
2014-11-29Cleanup: unused headersCampbell Barton
2014-11-28Cleanup: unused headersCampbell Barton
2014-11-16Cleanup: use BLI_listbase_*** prefix for count,sort,sort_rCampbell Barton
2014-09-19Fix T40751 preview image not generated after baking.Antony Riakiotakis
A DAG_id_tag_update here is enough to fix the problem.
2014-07-19Defines: replace ELEM3-16 with ELEM(...), that can take varargsCampbell Barton
2014-05-03Bake API - bpy.ops.object.bake()Dalai Felinto
New operator that can calls a bake function to the current render engine when available. This commit provides no feature for the users, but allows external engines to be accessed by the operator and be integrated with the baking api. The API itself is simple. Blender sends a populated array of BakePixels to the renderer, and gets back an array of floats with the result. The Blender Internal (and multires) system is still running independent, but we eventually will pipe it through the API as well. Cycles baking will come next as a separated commit Python Operator: ---------------- The operator can be called with some arguments, or a user interface can be created for it. In that case the arguments can be ommited and the interface can expose the settings from bpy.context.scene.render.bake bpy.ops.object.bake(type='COMBINED', filepath="", width=512, height=512, margin=16, use_selected_to_active=False, cage_extrusion=0, cage="", normal_space='TANGENT', normal_r='POS_X', normal_g='POS_Y', normal_b='POS_Z', save_mode='INTERNAL', use_clear=False, use_split_materials=False, use_automatic_name=False) Note: external save mode is currently disabled. Supported Features: ------------------ * Margin - Baked result is extended this many pixels beyond the border of each UV "island," to soften seams in the texture. * Selected to Active - bake shading on the surface of selected object to the active object. The rays are cast from the lowpoly object inwards towards the highpoly object. If the highpoly object is not entirely involved by the lowpoly object, you can tweak the rays start point with Cage Extrusion. For even more control of the cage you can use a Cage object. * Cage Extrusion - distance to use for the inward ray cast when using selected to active * Custom Cage - object to use as cage (instead of the lowpoly object). * Normal swizzle - change the axis that gets mapped to RGB * Normal space - save as tangent or object normal spaces Supported Passes: ----------------- Any pass that is supported by Blender renderlayer system. Though it's up to the external engine to provide a valid enum with its supported passes. Normal passes get a special treatment since we post-process them to converted and "swizzled" Development Notes for External Engines: --------------------------------------- (read them in bake_api.c) * For a complete implementation example look at the Cycles Bake commit (next). Review: D421 Reviewed by: Campbell Barton, Brecht van Lommel, Sergey Sharybin, Thomas Dinge Normal map pipeline "consulting" by Andy Davies (metalliandy) Original design by Brecht van Lommel. The entire commit history can be found on the branch: bake-cycles
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-19Code cleanup: unreachable break/returnCampbell Barton
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2013-12-26Code Cleanup: remove object arg to CDDM_from_mesh mesh_create_derivedCampbell Barton
2013-10-29Enable multires bake to level 0Sergey Sharybin
Uses trick with crating simple subdivided mesh with level 1 and bakes against it. From quick tests seems to be working correct, more tests are welcome.
2013-10-17Fix #37123: UV editor view does not update when using large facesSergey Sharybin
Update tagging was happening only after full triangle was handled. Now made it so images are updating once in 0.5sec, progress bar will still update only after the whole triangle is done.
2013-10-09Derivative map bakerSergey Sharybin
Added support for derivative map baking, which is accessable as a dedicated baker type. Works pretty much the same as displacement map baker, but gives you derivative map. In fact, inernally this baker is just a filter which applies on the result of displacement map. Both regular and multires baking are supported. Patch by Morten Mikkelsen and self.
2013-09-20Images didn't get clear when using multires baker from python scriptSergey Sharybin
Seems to be a regression since BMesh merge.
2013-09-20Clear color to gray when baking displacement mapSergey Sharybin
This makes more sense to have no displacement if baking non-normalized displacement map or have mid-level displacement (which is likely be close to no displacement as well) when baking normalized displacement. In any way it's better than using default black color.
2013-07-31Use bool instead of int.Sergey Sharybin
2013-07-31Fix #36302: Multires baking to zero 0 was showing error but still was bakingSergey Sharybin
We do not support baking to level 0, disabled this completely now.
2013-06-13Rephrased error message for clarityGaia Clary
2013-05-08Fix #35240: command line -t number of threads option did not work for cycles.Brecht Van Lommel
Now it works for blender internal, cycles and other multithreading code in Blender in both background and UI mode.
2013-04-29minor adjustment to vertex color baking, tag the meshes directly, no need to ↵Campbell Barton
do via the objects.
2013-04-24fix relating to r56260, when in vertex paint mode the mesh would have ↵Campbell Barton
tessfaces allocated, which prevented baking from updating vertex colors. baking now clears tessfaces.
2013-03-22code cleanup: use NULL rather then 0 for pointers, and make vars static ↵Campbell Barton
where possible. also found unintentionally defined enum/struct variables that where only meant to be defining the type.
2013-03-21py api: add Object.update_from_editmode(),Campbell Barton
Useful for python exporters to avoid toggling editmode on export, moved into own function ED_object_editmode_load(obedit).
2013-03-13code cleanup: use const events for modal and invoke operators.Campbell Barton
2013-03-09code cleanup: favor braces when blocks have mixed brace use.Campbell Barton
2013-02-20Fix visible seams on normal map bake due to clear colour being black:Antony Riakiotakis
This is a special case, tangent space normal maps should be cleared to 0.5, 0.5, 1.0. This is good practice but there's no reason why not to automate this (for artists whose bump map fu may be a bit shallow). Thanks to Morten Mikkelsen for reporting.
2013-01-21Support normalized displacement maps in cases maximal distance is not setSergey Sharybin
This will calculate maximal distance automatically and normalize displacement to it. Before this change normalization will not happen at all in cases max distance is not set manually. This affects on "regular" baker only, there are still some fixes to come for multiresolution baker, but that could be solved separately.
2012-12-27Fix: after multires baking, gpu textures were not getting invalidatedAntony Riakiotakis
for images and viewport was not getting refreshed with new baked textures. Now made sure this happens. The image list is copied to the job custom data so that the custom data cleanup function can properly delete them (if gpu image texture deletion does not happen on main thread, image bindcodes will remain intact for original images)
2012-12-19Multires baker: renamed Number of Rays to Samples after discussion with BrechtSergey Sharybin
2012-12-19Multirs baker: support for threaded bakingSergey Sharybin
2012-12-18Multires baker: made octree aware of user-defined resolution in performance ↵Sergey Sharybin
panel
2012-12-18Ambient occlusion baker from multi-resolution meshSergey Sharybin
This implements AO baking directly from multi-resolution mesh with much less memory overhead than regular baker. Uses rays distribution implementation from Morten Mikkelsen, raycast is based on RayObject also used by Blender Internal. Works in single-thread yet, multi-threading would be implemented later.
2012-12-18Move multires baker into own file in render/Sergey Sharybin
Currently will only keep object editor a bit clearer, but in the future will be needed because of using some internal renderer data structures.
2012-11-15Image thread safe improvementsSergey Sharybin
This commit makes BKE_image_acquire_ibuf referencing result, which means once some area requested for image buffer, it'll be guaranteed this buffer wouldn't be freed by image signal. To de-reference buffer BKE_image_release_ibuf should now always be used. To make referencing working correct we can not rely on result of image_get_ibuf_threadsafe called outside from thread lock. This is so because we need to guarantee getting image buffer from list of loaded buffers and it's referencing happens atomic. Without lock here it is possible that between call of image_get_ibuf_threadsafe and referencing the buffer IMA_SIGNAL_FREE would be called. Image signal handling too is blocking now to prevent such a situation. Threads are locking by spinlock, which are faster than mutexes. There were some slowdown reports in the past about render slowdown when using OSX on Xeon CPU. It shouldn't happen with spin locks, but more tests on different hardware would be really welcome. So far can not see speed regressions on own computers. This commit also removes BKE_image_get_ibuf, because it was not so intuitive when get_ibuf and acquire_ibuf should be used. Thanks to Ton and Brecht for discussion/review :)
2012-11-15code cleanup: move local math functions into math_geom.c, math_vector.c, no ↵Campbell Barton
functional changes.
2012-10-30remove CD_POLYINDEX customdata layer:Campbell Barton
reported as [#29376] BMESH_TODO: remove tessface CD_ORIGINDEX layer for a single mesh there could be 3 origindex mappings stored, one on the polygons and 2 on the tessfaces. (CD_POLYINDEX and CD_ORIGINDEX). as Andrew suggests, now tessfaces (which are really a cache of polygons), using origindex to point to polygons on the same derived mesh, and polygons only store the original index values.
2012-10-26Big i18n commit: add "reports" from bmesh/readfile/tracking/dynapaint (and a ↵Bastien Montagne
few others), and another bunch of UI messages tweaks/fixes, as well as some BKE_report()<->BKE_reportf()...
2012-10-26Show warning message when multires baking happens for preview level of 0Sergey Sharybin
2012-10-14More UI messages and BKE_reportf->BKE_report fixes...Bastien Montagne
2012-10-14Fixed missing display buffer and mipmaps invalidation in cases onlySergey Sharybin
few of selected objects failed to bake.
2012-10-13And more UI messages spell check.Bastien Montagne
2012-10-01mask data is no longer automatically added when sculpting (except when there ↵Campbell Barton
is a multi-res modifier).
2012-09-23fix for crash backing in background mode.Campbell Barton
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-13fix for missing NULL check in own recent commit, thanks Gaia for pointing ↵Campbell Barton
this out.