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
2014-12-25Cleanup: Fix Cycles Apache header.Thomas Dinges
This was already mixed a bit, but the dot belongs there.
2014-10-06Cycles: Move system headers include to the top of the filesSergey Sharybin
This is a good practice to do anyway, plus it'll help with the upcoming change.
2014-09-05Cycles: Split caustics option, to allow separate control for Reflection and ↵Thomas Dinges
Refraction caustics. This way artists can only disable/enable refraction or reflection caustics. See Cycles logs for an example: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.72/Cycles Differential revision: https://developer.blender.org/D766
2014-06-14Cycles: internal code support for anisotropic Beckmann and GGX reflectionBrecht Van Lommel
Based on: Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs E. Heitz, Research Report 2014
2014-05-04Style cleanup: indentation, bracesCampbell Barton
2014-03-29Cycles code refactor: replace magic ~0 values in the code with defines.Brecht Van Lommel
2014-03-29Cycles code refactor: changes to make adding new primitive types easier.Brecht Van Lommel
2014-03-29Cycles code refactor: move geometry related kernel files into own directory.Brecht Van Lommel
2013-12-31Cycles Volume Render: generated texture coordinates for volume render.Brecht Van Lommel
This does not support staying fixed while the surface deforms, but for static meshes it should match up with the surface texture coordinates. Implemented as a matrix transform from objects space to mesh texture space. Making this work for deforming surfaces would be quite complicated, you might need something like harmonic coordinates as used in the mesh deform modifier, probably will not be possible anytime soon.
2013-12-30Fix cycles volume emission not working with OSL.Brecht Van Lommel
2013-12-28Cycles Volume Render: add support for overlapping volume objects.Brecht Van Lommel
This works pretty much as you would expect, overlapping volume objects gives a more dense volume. What did change is that world volume shaders are now active everywhere, they are no longer excluded inside objects. This may not be desirable and we need to think of better control over this. In some cases you clearly want it to happen, for example if you are rendering a fire in a foggy environment. In other cases like the inside of a house you may not want any fog, but it doesn't seem possible in general for the renderer to automatically determine what is inside or outside of the house. This is implemented using a simple fixed size array of shader/object ID pairs, limited to max 15 overlapping objects. The closures from all shaders are put into a single closure array, exactly the same as if an add shader was used to combine them.
2013-12-28Cycles Volume Render: work on nodes and closures.Brecht Van Lommel
* Henyey-Greenstein scattering closure implementation. * Rename transparent to absorption node and isotropic to scatter node. * Volume density is folded into the closure weights. * OSL support for volume closures and nodes. * This commit has no user visible changes, there is no volume render code yet. This is work by "storm", Stuart Broadfoot, Thomas Dinges and myself.
2013-12-18Fix T37790: OSL not rendering subsurface scattering color correct since ↵Brecht Van Lommel
upgrade to 1.4.
2013-11-29Cycles OSL: fix mistake in recent refactoring, parameters are not set before ↵Brecht Van Lommel
setup.
2013-11-29Cycles OSL: refactoring to remove all dependencies on builtin OSL closures.Brecht Van Lommel
These were removed in new OSL versions. We only used these as base classes, not using them at all simplifies the code a bit.
2013-10-08Cycles / SSS:Thomas Dinges
* Remove the compatible falloff SSS implementation. We shouldn't support two implementations in the long term, and 2.7x is a good release number do break some compatibility as well. * Version patch added, so Files with Compatible falloff will automatically use Cubic now. It was already mentioned in the manual, that Compatible is deprecated. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#BSSRDF
2013-09-16Cycles Hair: Two basic bair shaders addedStuart Broadfoot
A new hair bsdf node, with two closure options, is added. These closures allow the generation of the reflective and transmission components of hair. The node allows control of the highlight colour, roughness and angular shift. Llimitations include: -No glint or fresnel adjustments. -The 'offset' is un-used when triangle primitives are used.
2013-09-10Cycles OSL: update to build with latest OSL master branch.Brecht Van Lommel
2013-09-04Fix a few issues reported by coverity scan.Brecht Van Lommel
2013-09-04Cycles: add a sharpness input to the Cubic SSS falloff. When set to 1 this willBrecht Van Lommel
give a result more similar to the Compatible falloff option. The scale is x2 though to keep the perceived scatter radius roughly the same while changing the sharpness. Difference with compatible will be mainly on non-flat geometry.
2013-08-20Fix compiler warning due to undefined BVH_FUNCTION_FEATURES with patch by ↵Brecht Van Lommel
Campbell, and a coverity warning about use of uninitialized variables with OSL.
2013-08-18Cycles: relicense GNU GPL source code to Apache version 2.0.Brecht Van Lommel
More information in this post: http://code.blender.org/ Thanks to all contributes for giving their permission!
2013-08-18Cycles: Subsurface ScatteringBrecht Van Lommel
New features: * Bump mapping now works with SSS * Texture Blur factor for SSS, see the documentation for details: http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#Subsurface_Scattering Work in progress for feedback: Initial implementation of the "BSSRDF Importance Sampling" paper, which uses a different importance sampling method. It gives better quality results in many ways, with the availability of both Cubic and Gaussian falloff functions, but also tends to be more noisy when using the progressive integrator and does not give great results with some geometry. It works quite well for the non-progressive integrator and is often less noisy there. This code may still change a lot, so unless you're testing it may be best to stick to the Compatible falloff function. Skin test render and file that takes advantage of the gaussian falloff: http://www.pasteall.org/pic/show.php?id=57661 http://www.pasteall.org/pic/show.php?id=57662 http://www.pasteall.org/blend/23501
2013-08-05Cycles OSL: image texture lookup optimization, acquire the per thread handleBrecht Van Lommel
for texture system in advance. Patch by Martijn Berger, with some tweaks. There was about a 10% performance improvement on OS X in my tests with the images.blend test file. This may be less on other platforms because OS X has particularly slow mutex locks.
2013-06-28Fix #35896: cycles crash with OSL image textures and viewport + preview renderBrecht Van Lommel
running at the same time.
2013-04-22Attempt to fix #35041 and #34725: cycles crash with OSL and both a 3D viewportBrecht Van Lommel
and preview running at the same time. It seems there's something in OSL/LLVM that's not thread safe, but I couldn't figure out what exactly. Now all renders share the same OSL ShadingSystem which should avoid the problem.
2013-04-02Cycles: initial subsurface multiple scattering support. It's not working asBrecht Van Lommel
well as I would like, but it works, just add a subsurface scattering node and you can use it like any other BSDF. It is using fully raytraced sampling compatible with progressive rendering and other more advanced rendering algorithms we might used in the future, and it uses no extra memory so it's suitable for complex scenes. Disadvantage is that it can be quite noisy and slow. Two limitations that will be solved are that it does not work with bump mapping yet, and that the falloff function used is a simple cubic function, it's not using the real BSSRDF falloff function yet. The node has a color input, along with a scattering radius for each RGB color channel along with an overall scale factor for the radii. There is also no GPU support yet, will test if I can get that working later. Node Documentation: http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#BSSRDF Implementation notes: http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles/Subsurface_Scattering
2013-01-10Cycles: multiple importance sampling for lamps, which helps reduce noise forBrecht Van Lommel
big lamps and sharp glossy reflections. This was already supported for mesh lights and the background, so lamps should do it too. This is not for free and it's a bit slower than I hoped even though there is no extra BVH ray intersection. I'll try to optimize it more later. * Area lights look a bit different now, they had the wrong shape before. * Also fixes a sampling issue in the non-progressive integrator. * Only enabled for the CPU, will test on the GPU later. * An option to disable this will be added for situations where it does not help. Same time comparison before/after: http://www.pasteall.org/pic/show.php?id=43313 http://www.pasteall.org/pic/show.php?id=43314
2013-01-03Cycles Hair: refactoring to store curves with the index of the first key and theBrecht Van Lommel
number of keys in the curve, rather than curve segments with the indices of two keys. ShaderData.segment now stores the segment number in the curve.
2013-01-03Cycles Hair: refactoring to support generic attributes for hair curves. ThereBrecht Van Lommel
should be no functional changes yet. UV, tangent and intercept are now stored as attributes, with the intention to add more like multiple uv's, vertex colors, generated coordinates and motion vectors later. Things got a bit messy due to having both triangle and curve data in the same mesh data structure, which also gives us two sets of attributes. This will get cleaned up when we split the mesh class.
2012-12-16Cycles OSL: small optimization to geometry node, tangent output still wasBrecht Van Lommel
not properly optimized out in some cases. For reference, setting this will give detailed information about OSL shaders: export OSL_OPTIONS="statistics:level=1,debug=1,llvm_debug=1"
2012-12-15Cycles OSL minor optimizations: recycle shading context, don't do memoryBrecht Van Lommel
allocations for trace data, avoid some virtual function calls. Only helps a few percentages.
2012-12-10Fix cycles OSL + AO enabled in world settings not working correct.Brecht Van Lommel
2012-12-03Fix cycles issue when NaN is used for RGB ramp, can access array out of ↵Brecht Van Lommel
bounds then. OSL noise() function is generating NaN's in certain cases, fix for that goes to our OSL branch. Also add missing minimum weight and max closure checks to OSL, forgot to add these when fixing another bug.
2012-12-01Fix #33375: OSL geom:trianglevertices gave wrong coordinates for static BVH.Brecht Van Lommel
Also some simple OSL optimization, passing thread data pointer directly instead of via thread local storage, and creating ustrings for attribute lookup.
2012-11-29Fix cycles motion blur + OSL + object texture coordinates issue.Brecht Van Lommel
2012-11-09Fix #33125: cycles OSL crash with multiple render sessions running at the ↵Brecht Van Lommel
same time.
2012-11-06Cycles OSL: support for the trace(point pos, vector dir, ...) function, to traceBrecht Van Lommel
rays from the OSL shader. The "shade" parameter is not supported currently, but attributes can be retrieved from the object that was hit using the getmessage("trace", ..) function. As mentioned in the OSL specification, this function can't be used instead of lighting, the main purpose is to allow shaders to "probe" nearby geometry, for example to apply a projected texture that can be blocked by geometry, apply more “wear” to exposed geometry, or make other ambient occlusion-like effects. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/OSL#Trace Example .blend and render: http://www.pasteall.org/blend/17347 http://www.pasteall.org/pic/show.php?id=40066
2012-11-06Cycles: 4 new nodes.Brecht Van Lommel
* Tangent: generate a tangent direction for anisotropic shading. Can be either radial around X/Y/Z axis, or from a UV map. The default tangent for the anisotropic BSDF and geometry node is now always radial Z, for UV tangent use this node now. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Tangent * Normal Map: generate a perturbed normal from an RGB normal map image. This is usually chained with an Image Texture node in the color input, to specify the normal map image. For tangent space normal maps, the UV coordinates for the image must match, and the image texture should be set to Non-Color mode to give correct results. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Normal_Map * Refraction BSDF: for best results this node should be considered as a building block and not be used on its own, but rather mixed with a glossy node using a fresnel type factor. Otherwise it will give quite dark results at the edges for glossy refraction. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#Refraction * Ambient Occlusion: controls the amount of AO a surface receives, rather than having just a global factor in the world. Note that this outputs a shader and not a color, that's for another time. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#Ambient_Occlusion
2012-10-20Cycles OSL: most closure code is now shared between OSL and SVM. Also fixBrecht Van Lommel
transmission pass and filter glossy option. The BSDF closure class is now more similar to the SVM closures, and includes some flags and labels that are needed to properly categorize the BSDF's for render passes. Phong closure is gone for the moment, needs to be adapated to the new structure still.
2012-10-05Fix part of cycles/osl light pass rendering, transmission still not correct.Brecht Van Lommel
2012-09-05Fix for OSL memory leak. The context creation for OSL is now done in the ↵Lukas Toenne
shader_setup_* functions, since it should specific to the sample being worked on. The the context release then happens in the kernel_shader functions after shader evaluation is done. Care has to be taken to ensure the shader_release function is also called in cases where the path integration is cancelled early, this was the main cause for unreleased contexts and subsequent new allocations.
2012-09-04Revert "Use one context per OSL thread. Not sure if this actually works, but ↵Lukas Toenne
the simple renderer example in OSL does it this way." This does not actually work: The context must not be shared between threads, but using the same context between different samples actually seems to prevent OSL from switching between shaders. The proper solution would be to ensure memory pooling works correctly. This reverts commit 69f87e69258d6266dcb20f09f7e3d4021e663432.
2012-09-04Use one context per OSL thread. Not sure if this actually works, but the ↵Lukas Toenne
simple renderer example in OSL does it this way.
2012-09-04Fix for bad memory leak in OSL: the context created for each OSL sample did ↵Lukas Toenne
not get released properly.
2012-09-03Fix for Cycles OSL: The RenderServices pointer in ShadingSystem is no longer ↵Lukas Toenne
accessible from the interface class (presumably because it is just the base class pointer anyway and would have to be casted). The OSLRenderServices pointer to our own implementation is now stored alongside the ShadingSystem in the kernel globals, so it can be accessed in thread_init.
2012-09-01Cycles / OSLGlobals:Thomas Dinges
* Fixes for changes in the Open Shading Langauge API from version 0.6.0: https://github.com/imageworks/OpenShadingLanguage/commit/11ce51418b45e975ace4d919a4bdd8c2001ba300 * Removed the need for ShadingSystemImpl.
2012-09-01Cycles / OSL:Thomas Dinges
* OSL namespace fixes for osl_shader.cpp.
2012-08-31Cycles / OSL:Thomas Dinges
* Fixes for changes in r40163. Removed unused code and fixed emissive_eval function.
2012-06-05Cycles / OSL:Thomas Dinges
* Remove oslexec_pvt.h header and some typo fixes. * This file needs deeper updates for changes done in OSL 0.6.0, see https://github.com/imageworks/OpenShadingLanguage/commit/11ce51418b45e975ace4d919a4bdd8c2001ba300