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
2012-01-11Longer names support for all ID and other object namesSergey Sharybin
This commit extends limit of ID and objects to 64 (it means 63 meaning characters and 1 for zero-terminator). CustomData layers names are also extended. Changed DNA structures and all places where length constants were hardcoded. All names which are "generating" from ID block should be limited by MAX_ID_NAME-2, all non-id names now has got own define called MAX_NAME which should be used all over for non-id names to make further name migration stuff easier. All name fields in DNA now have comment with constant which corresponds to hardcoded numeric value which should make it easier to further update this limits or even switch to non-hardcoded values in DNA. Special thanks to Campbell who helped figuring out some issues and helped a lot in finding all cases where hardcoded valued were still used in code. Both of forwards and backwards compatibility is stored with blender versions newer than January 5, 2011. Older versions had issue with placing null-terminator to DNA strings on file load which will lead to some unpredictable behavior or even crashes.
2011-11-29Fix #29028: dupli objects missing speed vectors. Check for avoiding creation ofBrecht Van Lommel
speed vectors was checking object instead of object instance layer, which is the one that is actually used for render layer checks.
2011-11-18Camera: some code refactoring, use an intermediate CameraParams struct insteadBrecht Van Lommel
of long list of variables everywhere. Intention is to also let 3d view use this eventually, instead of duplicating code.
2011-11-04Configurable sensor size:Sergey Sharybin
- Added support of variable size sensor width and height. - Added presets for most common cameras, also new presets can be defined by user. - Added option to control which dimension (vertical or horizontal) of sensor size defines FOV. Old behavior of automatic FOV calculation is also kept. - Renderer, viewport, game engine and collada importer/exporter should deal fine with this changes. Other exporters would be updated soon.
2011-11-02RenderEngine: add .is_animation and .is_preview properties to detect if it'sBrecht Van Lommel
an animation or preview render that is being done.
2011-10-23remove $Id: tags after discussion on the mailign list: ↵Campbell Barton
http://markmail.org/message/fp7ozcywxum3ar7n
2011-09-28Fix #28728: volume precaching took a long time with many objects, changedBrecht Van Lommel
threading to no longer sleep 50ms for each object, using work queue now. Also it was showing SSS preprocessing while actually doing Volume precaching, fixed as well.
2011-09-11minor edits / cleanup - no functional changes.Campbell Barton
- use 'const float *' and array size in some function declarations. - replace macros for BLI_math functions INPF, VECCOPY, VECADD etc. - remove unused VertRen.clip struct member. - remove static squared_dist() from 2 files, replace with BLI_math function len_squared_v3v3(). - use vertex arrays for drawing clipping background in the 3D viewport.
2011-06-28RenderEngine API: add self.report() error reporting function for render engines,Brecht Van Lommel
works the same as for operators. Also includes some refactoring of render error reporting code to use ReportList.
2011-06-11remove backbuf from internal struct's (unused in 2.5x)Campbell Barton
2011-05-01=trunk=Joseph Eagar
Made some improvements to the point density texture. Added support for tweaking the falloff with a custom curve. Also coded new falloff types based on the age or velocity of particles. Also added a test break check to the volumetric shade cache code, to avoid nasty hangups from the preview render (on render, exit, etc).
2011-04-30add back support for rendering local view camera.Campbell Barton
2011-03-25Bugfix #26195Ton Roosendaal
When rendering, during processing scene data, drawing in 3d window is now locked. Can get extended to more areas in UI easily. At least this solves all crashes with conflicting memory access in render && 3d drawing. Deleting objects via operators or delete modifiers isn't locked yet. Also fixed: crash on quitting a renderwindow when it was rendering.
2011-02-27doxygen: blender/render tagged.Nathan Letwory
2011-02-23doxygen: prevent GPL license block from being parsed as doxygen comment.Nathan Letwory
2011-02-05Raytrace modifications from the Render Branch.Brecht Van Lommel
These should not have any effect on render results, except in some cases with you have overlapping faces, where the noise seems to be slightly reduced. There are some performance improvements, for simple scenes I wouldn't expect more than 5-10% to be cut off the render time, for sintel scenes we got about 50% on average, that's with millions of polygons on intel quad cores. This because memory access / cache misses were the main bottleneck for those scenes, and the optimizations improve that. Interal changes: * Remove RE_raytrace.h, raytracer is now only used by render engine again. * Split non-public parts rayobject.h into rayobject_internal.h, hopefully makes it clearer how the API is used. * Added rayintersection.h to contain some of the stuff from RE_raytrace.h * Change Isect.vec/labda to Isect.dir/dist, previously vec was sometimes normalized and sometimes not, confusing... now dir is always normalized and dist contains the distance. * Change VECCOPY and similar to BLI_math functions. * Force inlining of auxiliary functions for ray-triangle/quad intersection, helps a few percentages. * Reorganize svbvh code so all the traversal functions are in one file * Don't do test for root so that push_childs can be inlined * Make shadow a template parameter so it doesn't need to be runtime checked * Optimization in raytree building, was computing bounding boxes more often than necessary. * Leave out logf() factor in SAH, makes tree build quicker with no noticeable influence on raytracing on performance? * Set max childs to 4, simplifies traversal code a bit, but also seems to help slightly in general. * Store child pointers and child bb just as fixed arrays of size 4 in nodes, nearly all nodes have this many children, so overall it actually reduces memory usage a bit and avoids a pointer indirection.
2010-12-26Bugfix #24966Ton Roosendaal
Hair render: using strand "Blender Unit" size didn't correctly clip for larger/wider strands. Now code clips strands based on the maximum width. Also found bad code for using clipping flags, which was mixed up, and probably caused hair strands to be missing in cases.
2010-12-03Enabled GCC -Wwrite-strings warning for CMake and replaced many 'char's for ↵Campbell Barton
'const char's,. Only one functional change where Transform orientations passed "" to BIF_createTransformOrientation() which could then have the value written into.
2010-10-27[#24414] Render hanging on small render border.Campbell Barton
large render sizes could cause an the threaded tile processor to hang because winx * winy wrapped into a negative value. also convert winx/winy to floats before multiplying for vector passs.
2010-08-012.5: code changes to reduce the usage of G.main and pass it alongBrecht Van Lommel
or get it from the context instead.
2010-07-302.5: remove vertex normal flip option, this is more harmful than helpfulBrecht Van Lommel
in many cases, and also gave incorrect rim lighting.
2010-07-22Fix for volume render light cache:Matt Ebb
Now the bounding box for the light cache's voxel grid is calculated in global space, rather than camera space as it was previously. This fixes flickering lighting on static volumes with camera motion, caused by the camera space bounding box changing from frame to frame.
2010-06-27Partial cleanup of timing system, with some guidance from Joshua:Matt Ebb
* Fractional frames support has been changed to use a new var, scene->r.subframe. This is a 0.0-1.0 float representing a subframe interval, used in generating a final float frame number to evaluate animation system etc. * Changed frame_to_float() and some instances of bsystem_time() into a convenience function: float BKE_curframe(scene) which retrieves the floating point current frame, after subframe and frame length corrections. * Removed blur_offs and field_offs globals. These are now stored in render, used to generate a scene->r.subframe before render database processing.
2010-06-14remove remaining unused yafray settings.Campbell Barton
2010-05-27Progress indicators for threaded jobsMatt Ebb
Now, rather than the bit-too-alarming stop sign, threaded wmJobs display a progress indicator in the header. This is an optional feature for each job type and still uses the same hardcoded ui template (could use further work here...). Currently implemented for: Render - parts completed, then nodes comped Compositor - nodes comped Fluid Sim - frames simulated Texture Bake - faces baked Example: http://mke3.net/blender/devel/2.5/progress.mov
2010-03-22spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text)Campbell Barton
2010-03-14Rendering from 3d view in local view or with unlocked layer was notBrecht Van Lommel
working yet, now layer is passed along to render engine, changes quite a few files because simple swapping trick no longer works with threading.
2010-03-05remove viewfac from Render struct, its only used locallyCampbell Barton
2010-02-12correct fsf addressCampbell Barton
2010-02-09J-key render switching back, now with 10 slots.Brecht Van Lommel
Implementation note: this was done by giving each Render a slot number, and for every slot a new Render will be created. Not sure if this is ideal, but it ensures that all passes, render info, etc are separate so you can also compare render layers and passes, in 2.4x only whatever it was currently displaying was backed up.
2010-02-06Fix #20452: motion blur buttons were missing. Motion blur samplesBrecht Van Lommel
are now also decoupled from antialiasing samples. Implemented by Matt, I'm just committing the patch.
2010-01-28Ambient Occlusion split up into:Brecht Van Lommel
Ambient occlusion: multiplied with direct lighting by default, add is also still available and more blending methods might be added if they are useful. This is fundamentally a non physical effect. Environment lighting: always added as you would expect (though you can subtract by specifying negative energy). This can be just white or take colors or textures from the world. Indirect lighting: only supported for AAO at the moment (and is still too approximate), and also is always added. A factor is available to specify how much is added, though value 1.0 is correct. Also: * Material ambient value now defaults to 1.0. * Added Environment, Indirect and Emit pass. * "Both" blending method is no longer available. * Attenuation, sampling parameters are still shared, some could be split up, though if they are different this would affect performance.
2009-11-30Approximate AO: Diffuse Bounce HackBrecht Van Lommel
This brings back the single bounce indirect diffuse lighting for AAO, it's not integrated well but that will be tackled later as part of shading system refactor and subdivision changes. The caveats are the same as AAO, with one extra thing, the diffuse lighting is sampled once per face, so it will not be accurate unless faces are subdivided. I'm committing this now so we can start testing it for Durian, and since changes need to make it work properly are planned.
2009-10-12Deep Shadow BufferBrecht Van Lommel
Since the deep shadow buffer summer of code project is not actively under development anymore, I decided to build my own DSM implementation from scratch, based on reusing as much existing shadow buffer code as possible. It's not very advanced, but implements the basic algorithm. Just enough so we can do shading tests with it, optimizations and other improvements can be done later. Supported: * Classical shadow buffer options: filter, soft, bias, .. * Multiple sample buffers, merged into one. * Halfway trick to support lower bias. * Compression with user defined threshold. * Non-textured alpha transparency, using Casting Alpha value. * Strand render. Not Supported: * Tiling disk cache, so can use a lot of memory. * Per part rendering for lower memory usage during creation. * Colored shadow. * Textured color/alpha shadow. * Mipmaps for faster filtering. * Volume shadows. Usage Hints: * Use sample buffers + smaller size rather than large size. * For example 512 size x 9 sample buffers instead of 2048 x 1. * Compression threshold 0.05 works, but is on the conservative side.
2009-10-06svn merge -r 23528:23646 ↵soc-2009-jaguarandiAndre Susano Pinto
https://svn.blender.org/svnroot/bf-blender/trunk/blender
2009-09-30Render & Compositing Thread FixesBrecht Van Lommel
* Rendering twice or more could crash layer/pass buttons. * Compositing would crash while drawing the image. * Rendering animations could also crash drawing the image. * Compositing could crash * Starting to rendering while preview render / compo was still running could crash. * Exiting while rendering an animation would not abort the renderer properly, making Blender seemingly freeze. * Fixes theoretically possible issue with setting malloc lock with nested threads. * Drawing previews inside nodes could crash when those nodes were being rendered at the same time. There's more crashes, manipulating the scene data or undo can still crash, this commit only focuses on making sure the image buffer and render result access is thread safe. Implementation: * Rather than assuming the render result does not get freed during render, which seems to be quite difficult to do given that e.g. the compositor is allowed to change the size of the buffer or output different passes, the render result is now protected with a read/write mutex. * The read/write mutex allows multiple readers (and pixel writers) at the same time, but only allows one writer to manipulate the data structure. * Added BKE_image_acquire_ibuf/BKE_image_release_ibuf to access images being rendered, cases where this is not needed (most code) can still use BKE_image_get_ibuf. * The job manager now allows only one rendering job at the same time, rather than the G.rendering check which was not reliable.
2009-09-25*Added VlakPrimitive (this rayobject rimitive only stores ↵Andre Susano Pinto
ObjectRenderInstance and VlakRen pointers) - it difers from RayFace that localy stored the vertex coordinates. - basicaly this reduces memory usage
2009-09-15svn merge -r 22571:22800 ↵Andre Susano Pinto
https://svn.blender.org/svnroot/bf-blender/trunk/blender svn merge -r 22800:23207 https://svn.blender.org/svnroot/bf-blender/trunk/blender Merged volumetric with new raytrace code (it compiles and rendered volume-cube.blend withouth problems) Part1: source/blender
2009-08-30* Fixes for shading objects inside volumesMatt Ebb
2009-08-13* First commit merging 2.4-based sim_physics in to volume25 branch.Matt Ebb
Integration is still very rough around the edges and WIP, but it works, and can render smoke (using new Smoke format in Voxel Data texture) --> http://vimeo.com/6030983 More to come, but this makes things much easier to work on for me :)
2009-07-10SUN and HEMI lights back as trunk (i think)Andre Susano Pinto
2009-06-20Voxel data & volume light cacheMatt Ebb
* Added support for additional file types in the voxel data texture. I added support for 8 bit raw files, but most notably for image sequences. Image sequences generate the voxel grid by stacking layers of image slices on top of each other to generate the voxels in the Z axis - the number of slices in the sequence is the resolution of the voxel grid's Z axis. i.e. http://mke3.net/blender/devel/rendering/volumetrics/skull_layers.jpg The image sequence option is particularly useful for loading medical data into Blender. 3d medical data such as MRIs or CT scans are often stored as DICOM format image sequences. It's not in Blender's scope to support the DICOM format, but there are plenty of utilities such as ImageMagick, Photoshop or OsiriX that can easily convert DICOM files to formats that Blender supports, such as PNG or JPEG. Here are some example renderings using these file formats to load medical data: http://vimeo.com/5242961 http://vimeo.com/5242989 http://vimeo.com/5243228 Currently the 8 bit raw and image sequence formats only support the 'still' rendering feature. * Changed the default texture placement to be centred around 0.5,0.5,0.5, rather than within the 0.0,1.0 cube. This is more consistent with image textures, and it also means you can easily add a voxel data texture to a default cube without having to mess around with mapping. * Added some more extrapolation modes such as Repeat and Extend rather than just clipping http://mke3.net/blender/devel/rendering/volumetrics/bradybunch.jpg * Changed the voxel data storage to use MEM_Mapalloc (memory mapped disk cache) rather than storing in ram, to help cut down memory usage. * Refactored and cleaned up the code a lot. Now the access and interpolation code is separated into a separate voxel library inside blenlib. This is now properly shared between voxel data texture and light cache (previously there was some duplicated code). * Made volume light cache support non-cubic voxel grids. Now the resolution specified in the material properties is used for the longest edge of the volume object's bounding box, and the shorter edges are proportional (similar to how resolution is calculated for fluid sim domains). This is *much* more memory efficient for squashed volume regions like clouds layer bounding boxes, allowing you to raise the resolution considerably while still keeping memory usage acceptable.
2009-06-11*Instance support at dupliverts/facesAndre Susano Pinto
*Octree works nicely on hierarchic trees *the old code was quite destructive at the Isect variable changing isec->start, end, vec..now it only changes isec->labda (and hit results) Currently rendering a BVH of all objects, where each object has it own octree.
2009-05-11*new generic raytrace APIAndre Susano Pinto
*Adapted octree to a more generic raytrace API *ray shadow works (other untested stuff disabled atm) On the scene tested the user-cpu time got from 1:24 to 1:19/20 probably because of removed callbacks or sligtly diferente memory usage
2009-02-052.5Ton Roosendaal
Safe method to move render results to the displayed image. It now allocates a single image for display, and on each refresh callback from render, it copies the refreshed section over to this image, in 32 bits. While rendering that image then only shows progress updates, as usual. This also now works for scenes in composte and results for composite. This should solve reported crashes for MBlur or SSS.
2009-01-222.5Ton Roosendaal
Added WM Jobs manager - WM can manage threaded jobs for you; just provide a couple of components to get it work: - customdata, free callback for it - timer step, notifier code - start callback, update callback - Once started, each job runs an own timer, and will for every time step check necessary updates, or close the job when ready. - No drawing happens in jobs, that's for notifiers! - Every job stores an owner pointer, and based on this owner it will prevent multiple jobs to enter the stack. Instead it will re-use a running job, signal it to stop and allow caller to re-initialize it even. - Check new wm_jobs.c for more explanation. Jobs API is still under construction. Fun: BLI_addtail(&wm->jobs, steve); :) Put Node shader previews back using wmJobs - Preview calculating is now fully threaded (1 thread still) - Thanks to new event system + notifiers, you can see previews update even while dragging sliders! - Currently it only starts when you change a node setting. Warning: the thread render shares Node data, so don't delete nodes while it renders! This topic is on the todo to make safe. Also: - bug in region initialize (do_versions) showed channel list in node editor wrong. - flagged the channel list 'hidden' now, it was really in the way! This is for later to work on anyway. - recoded Render API callbacks so it gets handlers passed on, no globals to use anymore, remember? - previewrender code gets now so much nicer! Will remove a lot of stuff from code soon.
2009-01-06Got rid of old multires code, brought in multires modifier from Nicholas Bishop
soc-2008-nicholasbishop branch. Note: any old code with multires_test() or multires_level1_test() can just be deleted, not needed by the multires modifier.
2008-12-22Volume rendering:Matt Ebb
* Multithreaded volume light cache While the render process itself is multithreaded, the light cache pre-process previously wasn't (painfully noticed this the other week rendering on some borrowed octocore nodes!). This commit adds threading, similar to the tiled render - it divides the light cache's voxel grid into 3d parts and renders them with the available threads. This makes the most significant difference on shots where the light cache pre- process is the bottleneck, so shots with either several lights, or a high res light cache, or both. On this file (3 lights, light cache res 120), on my Core 2 Duo it now renders in 27 seconds compared to 49 previously. http://mke3.net/blender/devel/rendering/volumetrics/threaded_cache.jpg
2008-12-13* Volume Rendering: Voxel dataMatt Ebb
This commit introduces a new texture ('Voxel Data'), used to load up saved voxel data sets for rendering, contributed by Raúl 'farsthary' Fernández Hernández with some additional tweaks. Thanks, Raúl! The texture works similar to the existing point density texture, currently it only provides intensity information, which can then be mapped (for example) to density in a volume material. This is an early version, intended to read the voxel format saved by Raúl's command line simulators, in future revisions there's potential for making a more full-featured 'Blender voxel file format', and also for supporting other formats too. Note: Due to some subtleties in Raúl's existing released simulators, in order to load them correctly the voxel data texture, you'll need to raise the 'resolution' value by 2. So if you baked out the simulation at resolution 50, enter 52 for the resolution in the texture panel. This can possibly be fixed in the simulator later on. Right now, the way the texture is mapped is just in the space 0,0,0 <-> 1,1,1 and it can appear rotated 90 degrees incorrectly. This will be tackled, for now, probably the easiest way to map it is with and empty, using Map Input -> Object. Smoke test: http://www.vimeo.com/2449270 One more note, trilinear interpolation seems a bit slow at the moment, we'll look into this. For curiosity, while testing/debugging this, I made a script that exports a mesh to voxel data. Here's a test of grogan (www.kajimba.com) converted to voxels, rendered as a volume: http://www.vimeo.com/2512028 The script is available here: http://mke3.net/projects/bpython/export_object_voxeldata.py * Another smaller thing, brought back early ray termination (was disabled previously for debugging) and made it user configurable. It now appears as a new value in the volume material: 'Depth Cutoff'. For some background info on what this does, check: http://farsthary.wordpress.com/2008/12/11/cutting-down-render-times/ * Also some disabled work-in-progess code for light cache
2008-10-17non-working WIP commit to continue coding at home.Matt Ebb
nothing to see here, move along!