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
2009-09-16UIBrecht Van Lommel
* Node buttons can now use the layout engine. a few simple ones are converted. We'll keep this code in C for now, python wouldn't help much here. * For node buttons not using the layout engine, manually computing the button height is not longer needed. * Node inputs are still not RNA wrapped, would be good to have these available as well for keying, but makesrna does not have access to the bNodeTypes.
2009-01-272.5Ton Roosendaal
Compositor now uses threaded jobs. - updates happen per preview node! Check this file for fun: http://www.blender.org/bf/composite_image.blend (any compo node could get preview!) - had to ensure the composite data gets fully copied before it executes thread, so editing is not frustrated. - put back node buttons (missing init) - added WM_jobs api call to check for running job, illustrated with red light icon in 'use nodes' button. - added another callback to WM_jobs, to initialize. use this init to ensure you only do it when job really starts. - added an extra notifier option for WM_jobs, to signal finished job (like redraw image view) - fixed file read error, it copied the screen it read, instead of using it. - commented out annoying prints for missing ops in imagewin
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-182.5 - AnimSys Data management stuff...Joshua Leung
* Removed nAction struct. We'll be using good ol' bAction structs again, but putting new data in a different list. Apart from that, the data is similar enough to do so. * Rearranged code in DNA_action_types.h while renaming the structs to avoid confusion over what is currently in use... * Added freeing and AnimData execution loops for many other ID-types too. (NOTE: I've added AnimData in NodeTree struct too, but it's not clear to me where the relevant data-management calls should go in Nodes code). * File writing code should now only write the new data to files
2009-01-132.5 / NodesNathan Letwory
* add a list area for material/texture/scene selection.
2008-11-132.5: merge with trunk, previous merge was only up to yesterday.Brecht Van Lommel
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r17416:HEAD
2008-03-17Fix for bug #6758: material nodes were not working correct withBrecht Van Lommel
ray mirror and transparency, was using the same stack for all recursion depths, now creates new stacks as needed. Fix for bug #8592: crash saving non-float image as 16bit tiff.
2008-03-08Long on the wishlist, quite simple even, and there it finally is:Ton Roosendaal
Compositor: Muting option to temporary disable/enable nodes. Hotkey: press M on selection. It toggles. Note: no menu entry yet, and drawing style could be tweakered...
2008-02-25Fix for bug #6747: make single button for node groups didn't work,Brecht Van Lommel
functionality was not implemented.
2008-02-10* Merge of PyNodes to trunk. Finally!Nathan Letwory
See http://wiki.blender.org/index.php/BlenderDev/PyNodes and http://wiki.blender.org/index.php/BlenderDev/PyNodes/API For current documentation. Very very big thanks go to William Germano for fixing the memory issues left and for improving on the code. In the coming time documentation will be finalised and further stabilising of PyNodes is to be expected.
2008-02-04AlphaOver node feature: "Premul" slider allows to mix between theTon Roosendaal
using alpha as premul or nonpremul. Quite useful for brightness tweaks. Todo: version-patch this so ConvertPremul button goes away Todo: make entire compositer accept non-premul by default... or both
2008-01-21Vector Blur now has option to be curved!Ton Roosendaal
Especially for fast moving objects (as we have here in Peach) the art department demanded nice curved vector blur. This formula uses a quadratic bezier function, which is not giving perfect circles, but certainly useful results. Also on todo: get this blur code to do nicer accumulation...
2008-01-07Custom Names for NodesJuho Vepsalainen
This commit makes it possible to add a custom name to a node. The feature can be accessed either by using a menu or shortcut ctrl-r. It currently works only when a single node is selected. Invoking the feature gives a popup menu in which a new name can be entered. If the given name is not empty, it will be shown like "(myCustomName) NodeName" in the node header. This feature is particularly useful when documenting complex node setups. I also fixed the size of blur node. It was too short before due to my previous commit. Thanks to David Millan Escriva for contribution!
2008-01-07Blur Node to support Relative (percent) valuesJuho Vepsalainen
This commit makes it possible to use relative values when using a Blur node. There is a new toggle in the node that can be used to enable the feature. Thanks to David Millan Escriva for contribution!
2007-12-27Bilateral Blur NodeJuho Vepsalainen
Bilateral Blur node allows the user to blur images while retaining their sharp edges. Blurring can be controlled by following controls: *Iterations *Color Sigma *Space Sigma Also image input to blur and a determinator image is provided. The node produces a blurred image as its output. The more iterations are provided, the smoother the result. Use color and space sigmas to control the amount of blur. One way to use the determinator input is to feed a mix (add) of Z and normal passes to it. Examples of usage: Ambient Occlusion smoothing - http://wiki.blender.org/index.php/Image:Bilateral_blur_example_01.blend Blurry Refraction - http://wiki.blender.org/index.php/Image:Bilateral_blur_example_02.blend Smoothed shadows and smoothed Ambient Occlusion combined - http://wiki.blender.org/index.php/Image:Bilateral_blur_example_03.blend If you check out the examples, render the image and alter the values to see how they affect. More information about the algorithm can be found at http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html . Thanks to Vilem Novak for contributing the patch.
2007-12-27Directional Blur NodeJuho Vepsalainen
Directional Blur node allows the users to do various blur operations on the input image. It essentially offers three different kind of ways of blurring in one node. It is possible to blur using a certain direction, spin and zoom. These three ways can be used in conjunction. The node contains following controls: *Iterations, Wrap *Center: X, Y *Distance, Angle *Spin *Zoom Iterations is used to determine the smoothness of the result. The more iterations, the smoother result. Low values are good for preview. Wrap means that the image is wrapped as if it was tiled on both x and y directions. To see better what this means, try it with spin for instance. Center values (X and Y) determine the location which is used as a pivot point for the operations. It is center (0.5) of the image by default. Distance and angle are used to adjust directional blur. The result can be described as a sweep that varies based on given distance (bigger distance, longer sweep) and angle. Angle is given in degrees. Spin produces rotating blur based on given angle. Yet again it is in degrees. Also negative values work. Zoom causes the image to be zoomed towards set center point (Center values). Thanks to Alfredo de Greef (eeshlo) for contribution. Possible development ideas: *Make an algorithm to extend image in case spin is used. Extend would temporarily change the size of the canvas of the input image. Canvas would be filled based on colors on the edges of the input image. After the blur operation has been done, the image would be cropped back to normal size. The advantage of this would be nicer result of spin (no problems with image size) on a computational cost. *Make values animatable. This is something that is better solved on more general level. ("everything is animatable" paradigm) *Provide an option to calculate automatic value for iterations. A good value that produces a smooth result could be calculated based on direction deltas. This would be useful in conjuction of animatable values.
2007-12-27Toggle links tool for Node EditorJuho Vepsalainen
This commit adds a new tool, Toggle Links, to the node editor. This tool allows the user to toggle the status (linked/not linked) between desired sockets. The tool can be used either by using the f key or the menus. This functionality is analogue to one found in object editing modes except for its additional toggle functionality. To use this tool, the user has to first select an input and an output socket. Selecting is done by clicking with right mouse button on a socket. After the tool has been invoked, the link between those two sockets is toggled. The result may vary based on existing linkage. There can be only one input and one output selected at maximum in a node tree. This means that if the user selects a socket while one of the same type is already selected, the old one will be deselected. The tool complements the current way of connecting nodes. One possible use for it is to use it to review output of nodes by using a viewer node. Just select wanted input socket of a viewer node, set it visible and use selection of an output socket in conjuction with f key to show the output in the viewer node. Select another output and hit f to see its output and so on.
2007-10-29Crop Compositing Node:Juho Vepsalainen
This commit adds a new node, crop, to the compositor. This node can be used to crop input image. It has two modes of operation. It can either crop image size (Crop Image Size option) or crop while retaining original size of the image. This latter mode can be used to preview the crop. Use X1, Y1, X2, Y2 controls to manage the area to be cropped. Note that I added a check for image preview min and max values to node_update. This is because it could give inappropriate values in certain cases when Crop Image Size option was toggled (values such as x1=0, y1=0, x2=60, y2=0 would result in eternal loop due to bad min and max (min bigger than max!)). The check makes sure that min and max values are always valid.
2007-10-26nodes from eechloCampbell Barton
* glare * tonemap * lense distort * fast gauss blur http://projects.blender.org/tracker/?func=detail&atid=127&aid=7505&group_id=9 made fast gauss blur an option for the blur node rather then a separate node.
2007-03-26Changed node type definitions to use a dynamic list.Ton Roosendaal
This will allow python or plugin defined nodes to work as well. (And fixes compile issues with MSVC in yesterdays commit for nodes) Code provided by Nathan L. Fixes in his code: - free_nodesystem() was called too late (after guarded alloc was closed) - free_nodesystem() was freeing nodes that were not malloced even - free_nodesystem was using free, not freeN :) - the typedefs needed to be malloced yes, to allow duplicate nodes like group but also for dynamic nodes.
2007-01-14Fix for bug #5680:Brecht Van Lommel
Vertex color node worked only if VCol Paint/Light was enabled. Fixed that, and removed the vertex color node making it part of the geometry node instead. Also, preview.blend had black vertex colors for the sphere, so set them to white like the other primitives.
2006-12-22Added Vertex Color material node, making render engine support for multipleBrecht Van Lommel
vertex color layers actually useful.
2006-12-21Defocus Composite Node, by Alfredo de GreefTon Roosendaal
Log: http://www.blender3d.org/cms/Composite__Defocus.836.0.html An incredible quality composite effect, might be slow but worth waiting for!
2006-12-21Added names to UV and vertex color layers, and display them as a list.Brecht Van Lommel
Added support for multiple UVs in the render engine. This also involved changing the way faces are stored, to allow data to be added optionally per 256 faces, same as the existing system for vertices. A UV layer can be specified in the Map Input panel and the Geometry node by name. Leaving this field blank will default to the active UV layer. Also added sharing of face selection and hiding between UV layers, and at the same time improved syncing with editmode selection and hiding. Still to do: - Multi UV support for fastshade. - Multires and NMesh preservation of multiple UV sets.
2006-12-20The Big Image refactor!Ton Roosendaal
Please read: http://www.blender3d.org/cms/Imaging.834.0.html Or in short: - adding MultiLayer Image support - recoded entire Image API - better integration of movie/sequence Images Was a whole load of work... went down for a week to do this. So, will need a lot of testing! Will be in irc all evening.
2006-12-09Node editing usablity!Ton Roosendaal
- Removed stupid idea to insert convertor nodes in Node Shaders, when a link is created by non-matching sockets. Now it works like Compositor, doing a default conversion. Works like this: 1 from 3 or 4 values: take average 3 from 1: copy to all 3 from 4: copy 3 4 from 1: copy to 3, set alpha to 1 4 from 3: copy 3, set alpha to 1 - Added select-linked in Nodes. Lkey or Shift+L. Also in pulldown menus
2006-12-06Node editor: when adding a new node, automatic links are created:Ton Roosendaal
- from all selected nodes - only connections between highest order socket types; so if there's RGBA and Value sockets, only RGBA sockets are connected. This because in these cases the Value sockets usually are for user input. Example: Mix node. Thanks Trip for the hint!
2006-12-05Damn! Commit for render passes in wrong dir....Ton Roosendaal
2006-11-29Material Nodes and Composite now also supports unlimited threads.Ton Roosendaal
Maybe we should add for Composite a seperate "Max threads" button though... having 8 nodes allocating temp buffers at the same time might give issues.
2006-11-15Patch #2307, by Bob HolcombTon Roosendaal
Loadsa new compo nodes, most added in new menu "Mattes". - Seperate into YCC - Combine YCC - Seperate into YUV - Combine YUV - (Chroma) Difference Matte - Chroma Key - Luminance Key - Color Spill correction Main problem is missing docs still... Bob is working on it, he'll also make tooltips for all buttons. Some UI things might change too, like more clear names.
2006-10-26Coding work while on the trip to london (based on Plumiferos wishlist);Ton Roosendaal
- Icon previews for Images were created always for old files, which made browsing (menus) incredible slow. Added a minor change in the flow, so icons only get created when the user invokes loading images. Andrea; you might check this, probably not al cases are covered yet? - Compositor: the 'File Output' node now has a min/max frame for which it writes files - Compositor: fixed a very bad bug (even in 2.42a release) that made the depsgraph for nodes not work... while editing, only the nodes that change should be recalculated, but accidentally all of them were done each time.
2006-08-10Compositor: finished work on node "File Output".Ton Roosendaal
- It saves a file with indicated type on each change, with number appended denoting the current frame (like ANIM saving). - Output filename button supports relative paths ("//") - Shows optional preview image too - For now, added a print on each file save as feedback To make this option work nicely, changed the BKE_makepicstring() function to have less globals inside, so it is more generic. Todo: allow amount of digits in filenames to be set (to support files like tmp_123456.jpg)
2006-08-02renamed struct bNode->new to struct bNode->new_nodeKent Mein
so it doesn't conflict with c++ (Needed for SkyGen coded) Kent
2006-07-31A couple of compositing nodes:Matt Ebb
* Combine RGBA Basically the opposite of separate RGBA, brings 4 value channels into a single RGBA image). Has interesting possibilities for reordering channels, when used with separate RGBA! * Dilate/Erode Originally written by Brecht van Lommel, with some minor modifications and tweaking by myself. Positive distances dilate, negative distances erode. * I also added the 'value' field to the hue/saturation node. Minimal extra cost, and can be handy.
2006-06-17Solved bad design decision in Node Editor:Ton Roosendaal
The buttons uiBlock was stored in a Node, for retrieval of node buttons, however that won't work when multiple windows show same Nodes. Now implemented more correct unique Block names (as all over in UI), and use that name to retrieve buttons with API call uiGetBlock().
2006-05-06==Bugfix==Peter Schlaile
Made the frame boost from short to int (30000 -> 300000 frames) complete by walking through the source and finally changing all frame-variables to ints. This should finally fix the framecounter warp around seen in some buttons. If you step on any further problems that may arise starting from frame 32768 please just give me a hint and I'll fix it. (Sorry about that, didn't know enough about Blender, when I did it the first time...)
2006-03-09Compositing goodie: ESC now works to stop, but it will finish the node itTon Roosendaal
was working on.
2006-02-20Compositor upgrade;Ton Roosendaal
- Links now can be made between any socket type. The nodes recognize amount of channels, and will convert types if needed. Conversions from RGBA to 1 channel will use the 'RGB to BW' formula. Also note that conversions only happen when required. So you can blur an alpha channel, filter it, and put this in a 1-channel socket without any conversion to happen, which saves memory & cpu time. http://www.blender.org/bf/rt.jpg The blur nodes don't accept Vector input yet... But filter does. - RGB Curve Nodes now have the premultiply option resored, 2 x faster - Fixed some confusing code in Node Group handling... much stabler now
2006-02-18Four-in-one commit:Ton Roosendaal
(NOTE: new include dependency in Render module, might need MSVC update! It has to include the imbuf/intern/openexr/ directory in search path) -> New Composite node: "Hue Saturation". Works like the former 'post process' menu. There's no gamma, brightness or multiply needed in this node, for that the Curves Node functions better. -> Enabled Toolbox in Node editor This now also replaces the SHIFT+A for adding nodes. The nodes are automatically added to the menus, using the 'class' category from the type definition. Current classes are (compositor examples): Inputs: RenderResult, Image Outputs: Composite, Viewer Color Ops: RGB Curves, Mix, Hue Saturation, AlphaOver Vector Ops: Normal, Vector Curves, Map Value Filters: Filter, Blur, VectorBlur Convertors: ColorRamp, RGBtoBW, Separate RGBA, Separate HSVA, Set Alpha Generators: RGB, Value, Time Groups: the list of custom defined nodes -> OpenEXR tile saving support Created an API for for saving tile-based Images with an unlimited amount of layers/channels. I've tested it for 'render result' now, with the idea that this can (optionally) replace the current inserting of tiles in the main result buffers. Especially with a lot of layers, the used memory for these buffers can easily go into the 100s of megs. Two other advantages: - all 'render result' layers can be saved entirely in a single file, for later use in compositing, also for animation output. - on each render, per scene, a unique temp file can be stored, allowing to re-use these temp files on starting Blender or loading files, showing the last result of a render command. The option is currently disabled, needs more work... but I had to commit this because of the rest of the work I did! -> Bug fix The Image node didn't call an execute event when browsing another image.
2006-02-14Added callback to compositor, so it can print in RenderWindow header theTon Roosendaal
current to-be composited node and amount of memory in use.
2006-02-11Two significant improvements in vectorblur:Ton Roosendaal
1) Accumulation buffer alpha handling Accumulating colors in an accumulation is simple; a weighting factor can make sure colors don't over- or undersaturate. For alpha this is a bit more complex... especially because the masks for vectorblur are anti-aliased themselves with alpha values. Up to now I just premultiplied the mask-alpha with the actual color alpha, which worked OK for solid masks, but not for transparent ones. I thought that would be an acceptable situation, since 'ztra' faces only get blurred with alpha==1. However, it gives bad results when using 'mist' in Blender, which just gives pixels an alpha value based on camera distance. In these cases the alpha became oversaturated, accumulating into too high values. The solution is to store the mask-alpha separately, only premultiply this alpha with the weighting factor to define the accumulation amount. This is the math: blendfactor: the accumulation factor for a vectorblur pass passRGBA: color and alpha value of the current to be accumulated pass accRGBA: color and alpha value of accumulation buffer (initialized with original picture values) maskA: the mask's alpha itself accRGBA = (1 - maskA*blendfactor)*accRGBA + (maskA*blendfactor)*passRGBA This formula accumulates alpha values equally to colors, only using the mask-alpha as 'alpha-over' operation. It all sounds very logical, I just write this extensive log because I couldn't find any technical doc about this case. :) 2) Creating efficient masks with camera-shake Vector blur can only work well when there's a clear distinction between what moves, and what doesn't move. This you can solve for example by rendering complex scenes in multiple layers. This isn't always easy, or just a lot of work. Especially when the camera itself moves, the mask created by the vectorblur code becomes the entire image. A very simple solution is to introduce a small threshold for moving pixels, which can efficiently separate the hardly-moving pixels from the moving ones, and thus create nice looking masks. You can find this new option in the VectorBlur node, as 'min speed'. This mimimum speed is in pixel units. A value of just 3 will already clearly separate the background from foreground. Note; to make this work OK, all vectors in an image are scaled 3 pixels smaller, to ensure everything keeps looking coherent. Test renders; 'Elephants Dream' scene with lotsof moving parts; rendered without OSA, image textures, shadow or color correction. No vectorblur: http://www.blender.org/bf/vblur.jpg With vectorblur, showing the alpha-saturation for mist: http://www.blender.org/bf/vblur1.jpg New accumulation formula: http://www.blender.org/bf/vblur2.jpg Same image, but now with a 3 pixel minimum speed threshold: http://www.blender.org/bf/vblur3.jpg Next frame, without minimum speed http://www.blender.org/bf/vblur4.jpg Same frame with speed threshold: http://www.blender.org/bf/vblur5.jpg (Only 20 steps of vectorblur were applied for clarity).
2006-02-07Added "Blur factor" button in Vector Blur node, which scales the speedTon Roosendaal
vectors. It's actually shutter speed, but in this case works identical to the old motionblur 'blur fac' button. Note; the "Max Speed" button only clips speed, use this to prevent extreme speed values. Max speed applied before the scaling happens.
2006-02-03Redoing the blur filters for composit;Ton Roosendaal
http://www.blender.org/bf/filters/ I found out current blur actually doesn't do gauss, but more did regular quadratic. Now you can choose common filter types, but more specifically; - set gamma on, to emphasize bright parts in blur more than darker parts - use the bokeh option for (current circlular only) blur based on true area filters (meaning, for each pixel it samples the entire surrounding). This enables more effects, but is also much slower. Have to check on optimization for this still... use with care!
2006-01-29Three-in-one commit:Ton Roosendaal
- Compositor now is threaded Enable it with the Scene buttons "Threads". This will handle over nodes to individual threads to be calculated. However, if nodes depend on others they have to wait. The current system only threads per entire node, not for calculating results in parts. I've reshuffled the node execution code to evaluate 'changed' events, and prepare the entire tree to become simply parsed for open jobs with a call to node = getExecutableNode() By default, even without 'thread' option active, all node execution is done within a separate thread. Also fixed issues in yesterdays commit for 'event based' calculations, it didn't do animated images, or execute (on rendering) the correct nodes when you don't have Render-Result nodes included. - Added generic Thread support in blenlib/ module The renderer and the node system now both use same code for controlling the threads. This has been moved to a new C file in blenlib/intern/threads.c. Check this c file for an extensive doc and example how to use it. The current implementation for Compositing allows unlimited amount of threads. For rendering it is still tied to two threads, although it is pretty easy to extend to 4 already. People with giant amounts of cpus can poke me once for tests. :) - Bugfix in creating group nodes Group node definitions demand a clear separation of 'internal sockets' and 'external sockets'. The first are sockets being linked internally, the latter are sockets exposed as sockets for the group itself. When sockets were linked both internal and external, Blender crashed. It is solved now by removing the external link(s).
2006-01-28Orange: made Compositing more interactive. It now has an event basedTon Roosendaal
system tracking changes in nodes, making sure only these nodes and the ones that depend, are executed. Further the 'time cursor' now counts down to indicate which node is being done. Also: you now can disable the "use nodes" button in the header, edit all changes, and when you press that button again it nicely executes the changes. Still on the todo: - make compositing threaded - find a way to nicely exit compositing on input events... so the UI keeps being responsive - idea; a 'percentage' menu in header to enforce calculations on smaller images temporally
2006-01-27Orange; more render & compo stuff!Ton Roosendaal
-> Rendering in RenderLayers It's important to distinguish a 'render layer' from a 'pass'. The first is control over the main pipeline itself, to indicate what geometry is being is rendered. The 'pass' (not in this commit!) is related to internal shading code, like shadow/spec/AO/normals/etc. Options for RenderLayers now are: - Indicate which 3d 'view layers' have to be included (so you can render front and back separately) - "Solid", all solid faces, includes sky at the moment too - "ZTransp", all transparent faces - "Halo", the halos - "Strand", the particle strands (not coded yet...) Currently only 2 'passes' are exported for render, which is the "Combined" buffer and the "Z. The latter now works, and can be turned on/off. Note that all layers are still fully kept in memory now, saving the tiles and layers to disk (in exr) is also todo. -> New Blur options The existing Blur Node (compositor) now has an optional input image. This has to be a 'value buffer', which can be a Zbuffer, or any mask you can think of. The input values have to be in the 0-1 range, so another new node was added too "Map Value". The value input can also be used to tweak blur size with the (todo) Time Node. Temporal screenies: http://www.blender.org/bf/rt.jpg http://www.blender.org/bf/rt1.jpg http://www.blender.org/bf/rt2.jpg BTW: The compositor is very slow still, it recalulates all nodes on each change still. Persistant memory and dependency checks is coming!
2006-01-25Orange; fresh morning feature:Ton Roosendaal
Image Node now supports animations as well. Press the 'Sequence' Icon in the node to see the options: - Frs: the amount of images involved in the sequence - SFra: start frame, the Blender frame number - First: the number in the name of the first image in the sequence - Cycl: make the sequence go cyclic The images are refreshed on each call to execute the node tree, but not on advancing frames in Blender... I suspect that might make it to slow now, will first have to code nice threaded/optimized updates in compositor.
2006-01-24Giant commit!Ton Roosendaal
A full detailed description of this will be done later... is several days of work. Here's a summary: Render: - Full cleanup of render code, removing *all* globals and bad level calls all over blender. Render module is now not called abusive anymore - API-fied calls to rendering - Full recode of internal render pipeline. Is now rendering tiles by default, prepared for much smarter 'bucket' render later. - Each thread now can render a full part - Renders were tested with 4 threads, goes fine, apart from some lookup tables in softshadow and AO still - Rendering is prepared to do multiple layers and passes - No single 32 bits trick in render code anymore, all 100% floats now. Writing images/movies - moved writing images to blender kernel (bye bye 'schrijfplaatje'!) - made a new Movie handle system, also in kernel. This will enable much easier use of movies in Blender PreviewRender: - Using new render API, previewrender (in buttons) now uses regular render code to generate images. - new datafile 'preview.blend.c' has the preview scenes in it - previews get rendered in exact displayed size (1 pixel = 1 pixel) 3D Preview render - new; press Pkey in 3d window, for a panel that continuously renders (pkey is for games, i know... but we dont do that in orange now!) - this render works nearly identical to buttons-preview render, so it stops rendering on any event (mouse, keyboard, etc) - on moving/scaling the panel, the render code doesn't recreate all geometry - same for shifting/panning view - all other operations (now) regenerate the full render database still. - this is WIP... but big fun, especially for simple scenes! Compositor - Using same node system as now in use for shaders, you can composit images - works pretty straightforward... needs much more options/tools and integration with rendering still - is not threaded yet, nor is so smart to only recalculate changes... will be done soon! - the "Render Result" node will get all layers/passes as output sockets - The "Output" node renders to a builtin image, which you can view in the Image window. (yes, output nodes to render-result, and to files, is on the list!) The Bad News - "Unified Render" is removed. It might come back in some stage, but this system should be built from scratch. I can't really understand this code... I expect it is not much needed, especially with advanced layer/passes control - Panorama render, Field render, Motion blur, is not coded yet... (I had to recode every single feature in render, so...!) - Lens Flare is also not back... needs total revision, might become composit effect though (using zbuffer for visibility) - Part render is gone! (well, thats obvious, its default now). - The render window is only restored with limited functionality... I am going to check first the option to render to a Image window, so Blender can become a true single-window application. :) For example, the 'Spare render buffer' (jkey) doesnt work. - Render with border, now default creates a smaller image - No zbuffers are written yet... on the todo! - Scons files and MSVC will need work to get compiling again OK... thats what I can quickly recall. Now go compiling!
2006-01-04Orange: more Node goodies;Ton Roosendaal
- New Node: "Mapping". Allows input vector to be translated, rotated and scaled. And optional be clipped to a range. Works for colors too! - The button "Normal" now allows incremental input, so a click in the button won't change the normal anymore - Connecting wires now show selection state for Nodes, with nice blended colors. Both colors were added in Themes, but default to black and white
2006-01-02Orange: enabled thread render for node trees.Ton Roosendaal
Works with groups too! But, discovered a bug with texture nodes inside of groups... will do that next.