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-03-18spelling cleanupCampbell Barton
2012-03-09style cleanup: comment blocksCampbell 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-17unify include guard defines, __$FILENAME__Campbell Barton
without the underscores these clogged up the namespace for autocompleation which was annoying.
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-12-30minor dna header cleanupCampbell Barton
2011-12-28make MOD_dynamicpaint.c use more typical gpl2+ text and some formatting ↵Campbell Barton
edits in DNA
2011-12-04add define for deprecated DNA struct members: DNA_DEPRECATED,Campbell Barton
this means use of deprecated struct members gives a warning. - makesdna.c preprocessor skips this. - DNA_DEPRECATED_ALLOW is used so readfile.c can do versioning without warnings. - this exposes some use of deprecated struct members, will deal with this after.
2011-10-23remove $Id: tags after discussion on the mailign list: ↵Campbell Barton
http://markmail.org/message/fp7ozcywxum3ar7n
2011-09-20changes for materials to treat them as shorts not int/chars (since they are ↵Campbell Barton
stored as shorts intermally) - converting nurbs to mesh was casting the material to unsigned char. - subsurf was casting to char, then int -> short in a loop. - have material functions take & return shorts.
2011-09-19TexFace to Material Settings big patchDalai Felinto
Summary: ======== The idea here is to move the texface options into the material panel. For images with the change please visit: http://code.blender.org/index.php/2011/09/bge-material-texface-changes 1 - Some of the legacy problems 2.49 and 2.5x has with the texface system: ========================================================================== 1.1) Shadow, Bilboard and Halo are mutual exclusive (in the code), yet you can select a face to be more than one mode. 1.2) Sort only works for blend Alpha yet it's an option regardless of the Transparency Blend you pick. 1.3) Shared doesn't affect anything in BGE. 1.4) ObColor only works for Text objects (old bitmap texts) when using Texture Face Materials. (not address yet, I so far ignored obcolor) 2 - Notes: ============ 2.1) Now "Use Face Textures" in material Option panel will work in Multitexture even if there is no texture channel. 2.2) In FaceTexture mode it will use TexFace all the time, even if you don't check the "Use Texture Face" option in the UI. It's a matter of decision, since the code for either way is there. I decided by the solution that makes the creation of a material fast - in this mode the user doesn't need to mess with textures or this "Use Texture Face" option at all. I'm not strong in my opinion here. But I think if we don't have this then what is the point of the Texture Face mode? 2.3) I kept references for tface only when we need the image, UV or the tiling setting. It should help later when/if we split the Image and UV layers from the tface struct (Campbell and Brecht proposal). 3 - Changes in a Nutshell: ========================== 3.1) "Texture Face" panel (in the Mesh/Object Data panel) no longer exists. Those settings are all part of the material properties, visible when Game Render is set. 3.2) "Texture Face" Shading mode (in the Render panel) is now called “Single Texture”, it needs a material for special settings (e.g. Billboard, Alpha Sort, …). 3.3) New options in the Material Panel * Shadeless option in the Material panel is now supported for all three Shading modes. * Physics is now toggleable, this is the old Collision option. * Two Side (on) is now called Back Culling (off). * Alpha Sort is one of the Alpha options, together (and mutually exclusive) to Alpha Blend, Alpha Clip, Add and Opaque (i.e. solid). * Shadow, Billboard and Halo are grouped in the “Face Orientation” property. * "Face Textures" and "Face Textures Alpha" (under Options) can be used for all but GLSL shading mode (to be supported in GLSL eventually). * The backend in the game engine is still the same as before. The only changes are in the interface and in the way you need to think your materials. The bottomline is: It’s no longer possible to share materials between faces that do not share the same game properties. 4 - Acknowledgment: ================== Mike Pan for the design discussions, and testing along the whole development process. Vitor Balbio for the first hands-on code with the interface changes. That helped me a lot to push me into work on that. Benoit Bolsee and Brecht van Lommel for patch review (* no one reviewed the whole patch, or the latest iteractions, so I still hold liability for any problems). Blender artists that gave feedback and helped testing the patch. Patch review and original documentation can be found here: http://wiki.blender.org/index.php/User:Dfelinto/TexFace http://codereview.appspot.com/4289041/
2011-07-04Current situationJeroen Bakker
A mesh can consist out of multiple material. Take a character with clothing's. the skin can be a different material as the different clothing's. During compositing it is a common use-case to only do a part of the composit on only a specific material. Currently this can not be done. In blender movies this feature is known to be implemented, but until now it never got integrated into trunk. Proposal With material index the Blender internal renderer will be capable of creating a buffer containing the material indexes of the first pixel-hit. This will be implemented in the same manner as the object index. In the compositor the ID Mask node can be used to extract the information out of the Render pass. Impact User interface On the properties-space the next changes will be done Scene⇒Render layer⇒Passes⇒Material index will be added Material⇒Options⇒Pass index will be added DNA Material struct will get an new field called “index”. this will be a short-type. Material struct the field pad will be removed. A new Render-layer pass will be added (bit 1«18) RNA Material RNA is updated (based on “pass index” from object) Render layer RNA is updated (based on IndexOB) Blender internal renderer The Blender internal renderer will process the render pass as a copy of the Object index. Blender compositor The render layer input will get a new output socket called “IndexMA” Usage An example on how to use material index can be found at: https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests/compositing/composite_materialindex.blend This is also example of a commit message longer than the commit itself :)
2011-03-08Bugfix & Feature fix: Only Shadow Material optionsTon Roosendaal
Patch from Miika Hämäläinen. The old Material "Only Shadow" used an ancient 'best guess' formula using Lamp Distance and some averaging for converting shadow values to alpha. A couple of bug reporters already complained about the not very predictable renders. Miika fixed this by adding two new options, to only give the true shadow factor exclusively, or to give a result including light intensity values. More info: http://projects.blender.org/tracker/index.php?func=detail&aid=26413&group_id=9&atid=127
2011-02-17DNA header files are now grouped under the same module. No further ↵Nathan Letwory
documentation done.
2010-12-07"Particle" texture coordinates for halo materials:Janne Karhu
* Particle age can now be used as the texture x-coordinate, and location in a particle trail as the y-coordinate. * This finally enables particles in 2.5 to change their color (or any other texturable material property) by their age. * In 2.4x this was accomplished with the "100 frames == particle age", but this was both non-intuitive and slow as the animation system had to be recalculated for every particle. * Currently these are 2d coordinates (age/lifetime == x-coordinate, trail particle index/number of trail particles == y-coordinate), but other particle properties or possibly even a user definable property can be added as coordinates in the future. * On the code side this uses the same coordinate definition number (for halo materials) as strand coordinates (for surface materials). This is also nice as they intuitively mean nearly the same thing, i.e. along strand or during particle life.
2010-02-17Animation Editors - Texture Animation:Joshua Leung
Texture animation is now shown in the animation editors. Texture stacks are shown for each Material/Lamp/World block that uses them. There is currently still a bit of a bug with this which means that unless the owner of the texture stack is animated too, the animation data for the textures won't show up. This will get rectified soon though.
2010-02-12correct fsf addressCampbell Barton
2010-02-11Added an option "Cast Approximate" to control if a material should castBrecht Van Lommel
shadow when using approximate AO, separate from "Traceable".
2010-01-04Patch from Raul Fernandez Hernandez - volume render multiple scattering fixesMatt Ebb
Also: Changed 'Spread' value to be proportional to the light cache voxel grid (i.e. 0.5 spreads half the width of the grid), so that it's independent of light cache resolution. This means that results should be similar as you increase/ decrease resolution.
2009-10-05* changes/additions to volume lightingMatt Ebb
Volumes can now receive shadows from external objects, either raytraced shadows or shadow maps. To use external shadows, enable 'external shadows' in volume material 'lighting' panel. This an extra toggle since it causes a performance hit, but this can probably be revisited/optimised when the new raytrace accelerator is integrated. For shadow maps at least, it's still very quick. Renamed 'scattering mode' to 'lighting mode' (a bit simpler to understand), and the options inside. Now there's: - Shadeless takes light contribution, but without shadowing or self-shading (fast) good for fog-like volumes, such as mist, or underwater effects - Shadowed (new) takes light contribution with shadows, but no self-shading. (medium) good for mist etc. with directional light sources eg. http://vimeo.com/6901636 - Shaded takes light contribution with internal/external shadows, and self shading (slower) good for thicker/textured volumes like smoke - Multiple scattering etc (still doesn't work properly, on the todo).
2009-10-01Texture stack influences are now all separate values, and negativeBrecht Van Lommel
mapped values now have their influence negated instead. Also a few RNA changes for TextureSlot. Bumped subversion for the version patch.
2009-09-30Rework of volume shadingMatt Ebb
After code review and experimentation, this commit makes some changes to the way that volumes are shaded. Previously, there were problems with the 'scattering' component, in that it wasn't physically correct - it didn't conserve energy and was just acting as a brightness multiplier. This has been changed to be more correct, so that as the light is scattered out of the volume, there is less remaining to penetrate through. Since this behaviour is very similar to absorption but more useful, absorption has been removed and has been replaced by a 'transmission colour' - controlling the colour of light penetrating through the volume after it has been scattered/absorbed. As well as this, there's now 'reflection', a non-physically correct RGB multiplier for out-scattered light. This is handy for tweaking the overall colour of the volume, without having to worry about wavelength dependent absorption, and its effects on transmitted light. Now at least, even though there is the ability to tweak things non-physically, volume shading is physically based by default, and has a better combination of correctness and ease of use. There's more detailed information and example images here: http://wiki.blender.org/index.php/User:Broken/VolumeRendering Also did some tweaks/optimisation: * Removed shading step size (was a bit annoying, if it comes back, it will be in a different form) * Removed phase function options, now just one asymmetry slider controls the range between back-scattering, isotropic scattering, and forward scattering. (note, more extreme values gives artifacts with light cache, will fix...) * Disabled the extra 'bounce lights' from the preview render for volumes, speeds updates significantly * Enabled voxeldata texture in preview render * Fixed volume shadows (they were too dark, fixed by avoiding using the shadfac/AddAlphaLight stuff) More revisions to come later...
2009-09-10committing patch #19252-Soft/Linear Light blend modes+Darken mode bug fixRobert Holcomb
2009-08-23* Volume rendering - z transparencyMatt Ebb
This solves one of the last remaining hurdles for volume rendering. Previously it always used ray tracing to shade other objects inside or behind the volume. This meant that said objects would look aliased, unless you used Full OSA on the volume (which is slow!). As well as this, it meant that you didn't get a good alpha channel out of the volume to use for compositing, similar to ray refracting materials. This commit enables z transparency for volume materials. Although it can be potentially less physically correct, in most situations there's no difference, and you get the benefit of nice sampling for other objects and an alpha channel for compositing too.
2009-08-19svn merge -r 22450:22627 ↵Matt Ebb
https://svn.blender.org/svnroot/bf-blender/branches/blender2.5/blender
2009-08-16volume materialMatt Ebb
* data reorganisation - uses own values now instead of reusing surface material properties (i.e. an individual density value, rather than reusing alpha) Files saved with the old system won't load up the same after this. * improved defaults and ui
2009-08-152.5: Material buttonsBrecht Van Lommel
* Transparency is now it's own panel, with a boolean toggle + enum for z/ray transparency (following mockup made by William). Also had to change DNA flags for this. * Disabled radiosity a bit more in render engine, it still had some effects like auto autosmooth. * Make some sliders in material buttons percentages in RNA. * Some other small tweaks in layout and naming.
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-08-07Added material game physics options in RNA and layout. William Reynish
Thanks to the new render API system these options don't clutter up the layout when you're not doing games.
2009-07-262.5: MaterialsBrecht Van Lommel
* Diffuse/specular ramps works again. * Wire is now a material type next to Surface and Halo. * Removed Volume material type option until it is actually there. * Some button layout tweaks.
2009-07-22remove scriptlinks,Campbell Barton
they were not working and we have plans for better script integration in 2.5
2009-07-212.5: Texture ButtonsBrecht Van Lommel
* World and Lamp previews now working here too. * Experiment with list template, showing only icons. Unfortunately texture icon render crashes combined with preview render so it shows all icons the same. * Influence panels updated, with slider for each option. The values are still linked though, will fix that later. * Image texture controls a bit more complete, still WIP. * Color ramp back.
2009-07-212.5: Texture buttons preview now has an option to display theBrecht Van Lommel
texture, the material, or both side by side.
2009-07-132.5Brecht Van Lommel
* Objects now support up to 32767 material slots. It's easy to increase this further, but I prefer not to increase the memory usage of mesh faces, it seems unlikely that someone would create 32767 distinct materials? * Forward compatibility: the only thing you can potentially lose reading a 2.5 file in 2.4 is object linking (instead of default data), though usually that will go fine too. Reading files with > 32 material slots in 2.4 can start giving issues. * The ob->colbits variable is deprecated by the array ob->matbits but I didn't remove the ob->colbits updates in very few places it is set. * I hope I changed all the relevant things, various places just hardcoded the number 16 instead of using the MAXMAT define. * Join Objects operator back. This is using the version from the animsys2 branch coded by Joshua, which means it now supports joining of shape keys. * Fix for crash reading file saved during render.
2009-05-202.5 Material:Brecht Van Lommel
* Added material "type" property, with Surface/Volume/Halo options, compatible with sim_physics, as requested for material buttons layout. Obviously the Volume setting does nothing currently. * Deprecated MA_HALO flag in favor of this.
2009-01-26Volume rendering: multiple scatteringMatt Ebb
This is mostly a contribution from Raul 'farsthary' Hernandez - an approximation for multiple scattering within volumes. Thanks, Raul! Where single scattering considers the path from the light to a point in the volume, and to the eye, multiple scattering approximates the interactions of light as it bounces around randomly within the volume, before eventually reaching the eye. It works as a diffusion process that effectively blurs the lighting information that's already stored within the light cache. A cloudy sky setup, with single scattering, and multiple scattering: http://mke3.net/blender/devel/rendering/volumetrics/vol_sky_ss_ms.jpg http://mke3.net/blender/devel/rendering/volumetrics/sky_ms.blend To enable it, there is a menu in the volume panel (which needs a bit of cleanup, for later), that lets you choose between self-shading methods: * None: No attenuation of the light source by the volume - light passes straight through at full strength * Single Scattering: (same as previously, with 'self-shading' enabled) * Multiple Scattering: Uses multiple scattering only for shading information * Single + Multiple: Adds the multiple scattering lighting on top of the existing single scattered light - this can be useful to tweak the strength of the effect, while still retaining details in the lighting. An example of how the different scattering methods affect the visual result: http://mke3.net/blender/devel/rendering/volumetrics/ss_ms_comparison.jpg http://mke3.net/blender/devel/rendering/volumetrics/ss_ms_comparison.blend The multiple scattering methods introduce 3 new controls when enabled: * Blur: A factor blending between fully diffuse/blurred lighting, and sharper * Spread: The range that the diffuse blurred lighting spreads over - similar to a blur width. The higher the spread, the slower the processing time. * Intensity: A multiplier for the multiple scattering light brightness Here's the effect of multiple scattering on a tight beam (similar to a laser). The effect of the 'spread' value is pretty clear here: http://mke3.net/blender/devel/rendering/volumetrics/ms_spread_laser.jpg Unlike the rest of the system so far, this part of the volume rendering engine isn't physically based, and currently it's not unusual to get non-physical results (i.e. much more light being scattered out then goes in via lamps or emit). To counter this, you can use the intensity slider to tweak the brightness - on the todo, perhaps there is a more automatic method we can work on for this later on. I'd also like to check on speeding this up further with threading too.
2009-01-172.5 - AnimData fixesJoshua Leung
* Made AnimData blocks be stored as pointer instead of directly in the ID-datablock, so that fewer files will need to be recompiled everytime some animation settings change. * Tried to fix some of the compiler errors that pop up in Yafray code. If this commit doesn't fix it, just disable Yafray code for now (WITH_BF_YAFRAY=0 for scons)...
2009-01-172.5: Blender "Animato" - New Animation System Joshua Leung
Finally, here is the basic (functional) prototype of the new animation system which will allow for the infamous "everything is animatable", and which also addresses several of the more serious shortcomings of the old system. Unfortunately, this will break old animation files (especially right now, as I haven't written the version patching code yet), however, this is for the future. Highlights of the new system: * Scrapped IPO-Curves/IPO/(Action+Constraint-Channels)/Action system, and replaced it with F-Curve/Action. - F-Curves (animators from other packages will feel at home with this name) replace IPO-Curves. - The 'new' Actions, act as the containers for F-Curves, so that they can be reused. They are therefore more akin to the old 'IPO' blocks, except they do not have the blocktype restriction, so you can store materials/texture/geometry F-Curves in the same Action as Object transforms, etc. * F-Curves use RNA-paths for Data Access, hence allowing "every" (where sensible/editable that is) user-accessible setting from RNA to be animated. * Drivers are no longer mixed with Animation Data, so rigs will not be that easily broken and several dependency problems can be eliminated. (NOTE: drivers haven't been hooked up yet, but the code is in place) * F-Curve modifier system allows useful 'large-scale' manipulation of F-Curve values, including (I've only included implemented ones here): envelope deform (similar to lattices to allow broad-scale reshaping of curves), curve generator (polynomial or py-expression), cycles (replacing the old cyclic extrapolation modes, giving more control over this). (NOTE: currently this cannot be tested, as there's not access to them, but the code is all in place) * NLA system with 'tracks' (i.e. layers), and multiple strips per track. (NOTE: NLA system is not yet functional, as it's only partially coded still) There are more nice things that I will be preparing some nice docs for soon, but for now, check for more details: http://lists.blender.org/pipermail/bf-taskforce25/2009-January/000260.html So, what currently works: * I've implemented two basic operators for the 3D-view only to Insert and Delete Keyframes. These are tempolary ones only that will be replaced in due course with 'proper' code. * Object Loc/Rot/Scale can be keyframed. Also, the colour of the 'active' material (Note: this should really be for nth material instead, but that doesn't work yet in RNA) can also be keyframed into the same datablock. * Standard animation refresh (i.e. animation resulting from NLA and Action evaluation) is now done completely separate from drivers before anything else is done after a frame change. Drivers are handled after this in a separate pass, as dictated by depsgraph flags, etc. Notes: * Drivers haven't been hooked up yet * Only objects and data directly linked to objects can be animated. * Depsgraph will need further tweaks. Currently, I've only made sure that it will update some things in the most basic cases (i.e. frame change). * Animation Editors are currently broken (in terms of editing stuff). This will be my next target (priority to get Dopesheet working first, then F-Curve editor - i.e. old IPO Editor) * I've had to put in large chunks of XXX sandboxing for old animation system code all around the place. This will be cleaned up in due course, as some places need special review. In particular, the particles and sequencer code have far too many manual calls to calculate + flush animation info, which is really bad (this is a 'please explain yourselves' call to Physics coders!).
2008-12-192.5Joshua Leung
Merged 'backend' changes from AnimSys2. Many of these changes are necessary for the Dopesheet and other changes I'm currently still stabilising. Those will come in due course.
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-11-28* add diffuse shader properties for materialNathan Letwory
2008-11-27* add beginning of Material RNA and Nodetree+Node RNANathan Letwory
2008-11-12* Added a button to the volume material controls 'Alpha' to generate an Matt Ebb
alpha channel based on the volume's transmission properties, allowing you to use it in comp etc. I'd rather not have this button at all, and make it just work properly by default, however it causes problems with overlapping volumes when 'premul' is on (stoopid thing..) so for the time being, there's the button. I'll try and fix this up later on when I have more time.
2008-10-19Another WIP commit, nothing to see yet.Matt Ebb
2008-10-17non-working WIP commit to continue coding at home.Matt Ebb
nothing to see here, move along!
2008-10-13* Added support for solid objects casting shadows within a volume.Matt Ebb
Currently it only supports solid shadows - if it's a solid object, it will cast 100% shadow. Support for transparent shadows can potentially be added down the track. http://mke3.net/blender/devel/rendering/volumetrics/vol_shad_internal.jpg
2008-10-13* New option for step size: RandomizedMatt Ebb
This is on by default, and trades random noise for banding. It jitters the step size from 75% to 125% of its original amount, and since it uses the threaded random seeds, shouldn't flicker during animation. These two images took roughly the same time to render: http://mke3.net/blender/devel/rendering/volumetrics/vol_stepsize_randomized.jpg
2008-10-13* A few volume rendering tweaks:Matt Ebb
- modified point density so that it returns a more consistent density with regards to search radius. Previously larger radii would give much higher density but this is equalised out now. - Added a new volume material option 'density scale'. This is an overall scale multiplier for density, allowing you to (for example) crank down the density to a more desirable range if you're working at a large physical scale. Volume rendering is fundamentally scale dependant so this lets you correct to get the right visual result. - Also tweaked a few constants, old files won't render exactly the same, just minor things though.
2008-10-04* New volumetrics feature: scattering typesMatt Ebb
Otherwise known as a phase function, this determines in which directions the light is scattered in the volume. Until now it's been isotropic scattering, meaning that the light gets scattered equally in all directions. This adds some new types for anisotropic scattering, to scatter light more forwards or backwards towards the viewing direction, which can be more similar to how light is scattered by particles in nature. Here's a diagram of how light is scattered isotropically and anisotropically: http://mke3.net/blender/devel/rendering/volumetrics/phase_diagram.png The new additions are: - Rayleigh describes scattering by very small particles in the atmosphere. - Mie Hazy / Mie Murky more generalised, describes scattering from large particle sizes. - Henyey-Greenstein a very flexible formula, that can be used to simulate a wide range of scattering. It uses an additional 'Asymmetry' slider, ranging from -1.0 (backward scattering) to 1.0 (forward scattering) to control the direction of scattering. - Schlick an approximation of Henyey-Greenstein, working similarly but faster. And a description of how they look visually (just an omnidirectional lamp inside a volume box) http://mke3.net/blender/devel/rendering/volumetrics/phasefunctions.jpg * Sun/sky integration Volumes now correctly render in front of the new physical sky. Atmosphere still doesn't work correctly with volumes, due to something that i hope can be fixed in the atmosphere rendering, but the sky looks quite good. http://mke3.net/blender/devel/rendering/volumetrics/sky_clouds.png This also works very nicely with the anisotropic scattering, giving clouds their signature bright halos when the sun is behind them: http://mke3.net/blender/devel/rendering/volumetrics/phase_cloud.mov in comparison here's a render with isotropic scattering: http://mke3.net/blender/devel/rendering/volumetrics/phase_cloud_isotropic.png * Added back the max volume depth tracing limit, as a hard coded value - fixes crashes with weird geometry, like the overlapping faces around suzanne's eyes. As a general note, it's always best to use volume materials on airtight geometry, without intersecting or overlapping faces.
2008-09-30* Removed the volume 'layer depth' control' (was used to Matt Ebb
limit ray intersections like as for ray transparency). It remains to be seen if it's even that useful, and was preventing refracting materials behind volumes from working easily.