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
2020-12-24Cycles: remove surface area computation for meshes with OSLBrecht Van Lommel
This is relatively expensive and as per the OSL spec, this value is not expected to be meaningful for non-light shaders. This makes viewport updates a little faster. As a side effect also fixes T82723, viewport refresh issue with volume density.
2020-06-22Cycles: remove SIMD BVH optimizations, to be replaced by EmbreeBrecht Van Lommel
Ref T73778 Depends on D8011 Maniphest Tasks: T73778 Differential Revision: https://developer.blender.org/D8012
2020-03-18Volumes: add render settings for volume datablockBrecht Van Lommel
* Space: volume density and step size in object or world space * Step Size: override automatic step size * Clipping: values below this are ignored for tighter volume bounds The last two are Cycles only currently. Ref T73201
2020-03-18Cycles: change volume step size controls, auto adjust based on voxel sizeBrecht Van Lommel
By default it will now set the step size to the voxel size for smoke and volume objects, and 1/10th the bounding box for procedural volume shaders. New settings are: * Scene render/preview step rate: to globally adjust detail and performance * Material step rate: multiplied with auto detected per-object step size * World step size: distance to steo for world shader Differential Revision: https://developer.blender.org/D1777
2020-02-18Cycles: Enabled quaternion motion blur with Embree.Stefan Werner
Bringing Embree's motion blur closer to Cycles' native blur. This requries Embree 3.8.0 or newer. Differential Revision: https://developer.blender.org/D6575
2019-08-22Shading: Add object color to Object Info node.OmarSquircleArt
The object color property is added as an additional output in the Object Info node. Reviewers: brecht Differential Revision: https://developer.blender.org/D5554
2019-05-01Cleanup: comments (long lines) in cyclesCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2018-11-07Cycles: Added Embree as BVH option for CPU renders.Stefan Werner
Note that this is turned off by default and must be enabled at build time with the CMake WITH_CYCLES_EMBREE flag. Embree must be built as a static library with ray masking turned on, the `make deps` scripts have been updated accordingly. There, Embree is off by default too and must be enabled with the WITH_EMBREE flag. Using Embree allows for much faster rendering of deformation motion blur while reducing the memory footprint. TODO: GPU implementation, deduplication of data, leveraging more of Embrees features (e.g. tessellation cache). Differential Revision: https://developer.blender.org/D3682
2018-10-28Cycles: Added Cryptomatte output.Stefan Werner
This allows for extra output passes that encode automatic object and material masks for the entire scene. It is an implementation of the Cryptomatte standard as introduced by Psyop. A good future extension would be to add a manifest to the export and to do plenty of testing to ensure that it is fully compatible with other renderers and compositing programs that use Cryptomatte. Internally, it adds the ability for Cycles to have several passes of the same type that are distinguished by their name. Differential Revision: https://developer.blender.org/D3538
2018-07-06Cleanup: strip trailing space for cyclesCampbell Barton
2018-03-10Cycles: support arbitrary number of motion blur steps for objects.Brecht Van Lommel
2018-03-10Cycles: support arbitrary number of motion blur steps for cameras.Brecht Van Lommel
2018-03-10Code refactor: motion blur cleanups, preparing for next commit.Brecht Van Lommel
2018-03-10Code refactor: make Transform always affine, dropping last row.Brecht Van Lommel
This save a little memory and copying in the kernel by storing only a 4x3 matrix instead of a 4x4 matrix. We already did this in a few places, and those don't need to be special exceptions anymore now.
2018-03-10Code refactor: add DecomposedTransform.Brecht Van Lommel
This is in preparation of making Transform affine only, and also gives us a little extra type safety so we don't accidentally treat it as a regular 4x4 matrix.
2018-03-10Code refactor: avoid motion transform copy, remove unused curved code.Brecht Van Lommel
The purpose of the previous code refactoring is to make the code more readable, but combined with this change benchmarks also render about 2-3% faster with an NVIDIA Titan Xp.
2018-03-10Code refactor: use KernelShader and KernelParticle instead of float arrays.Stefan Werner
Original patch by Stefan with modifications by Brecht.
2018-03-10Code refactor: use KernelLight instead of float4 arrays.Stefan Werner
Original patch by Stefan with modifications by Brecht.
2018-03-10Code refactor: use KernelOject struct instead of float4 array.Stefan Werner
Original patch by Stefan with modifications by Brecht.
2018-02-14Cycles: restore Particle Info Index for now, keep it next to Random.Brecht Van Lommel
It seems to be useful still in cases where the particle are distributed in a particular order or pattern, to colorize them along with that. This isn't really well defined, but might as well avoid breaking backwards compatibility for now.
2018-02-14Cycles: change Index output of Hair and Particle Info to Random, in 0..1 range.Brecht Van Lommel
These are used for randomization, so it's convenient if the index is already hashed and consistent with the Object Info node.
2018-01-11Fix T53755: Cycles OpenCL lamp shaders have incorrect normal.Brecht Van Lommel
2018-01-11Cycles: support animated object scale in motion blur.Stefan Werner
This was disabled previously due to CUDA compiler bugs, see T32900. Differential Revision: https://developer.blender.org/D2937
2017-11-14Cycles: Make per-object random value output also work for LampsLukas Stockner
2017-08-07Code refactor: add, remove, optimize various SSE functions.Brecht Van Lommel
* Remove some unnecessary SSE emulation defines. * Use full precision float division so we can enable it. * Add sqrt(), sqr(), fabs(), shuffle variations, mask(). * Optimize reduce_add(), select(). Differential Revision: https://developer.blender.org/D2764
2017-03-09Cycles: SSS and Volume rendering in split kernelHristo Gueorguiev
Decoupled ray marching is not supported yet. Transparent shadows are always enabled for volume rendering. Changes in kernel/bvh and kernel/geom are from Sergey. This simiplifies code significantly, and prepares it for record-all transparent shadow function in split kernel.
2017-03-08Cycles: Remove ccl_fetch and SOAMai Lavelle
2017-01-23Cycles: Split ShaderData object and shader flagsSergey Sharybin
We started to run out of bits there, so now we separate flags which came from __object_flags and which are either runtime or coming from __shader_flags. Rule now is: SD_OBJECT_* flags are to be tested against new object_flags field of ShaderData, all the rest flags are to be tested against flags field of ShaderData. There should be no user-visible changes, and time difference should be minimal. In fact, from tests here can only see hardly measurable difference and sometimes the new code is somewhat faster (all within a noise floor, so hard to tell for sure). Reviewers: brecht, dingto, juicyfruit, lukasstockner97, maiself Differential Revision: https://developer.blender.org/D2428
2016-11-03Cycles: Fix missing underscore in geom_object.hLukas Stockner
2016-11-03Cycles: Fix T49901: OpenCL build error after recent light texture coordinate ↵Lukas Stockner
commit Basically, the problem here was that the transform that's used to bring texture coordinates to world space is either fetched while setting up the shader (with Object Motion is enabled) or fetched when needed (otherwise). That helps to save ShaderData memory on OpenCL when Object Motion isn't needed. Now, if OM is enabled, the Lamp transform can just be stored inside the ShaderData as well. The original commit just assumed it is. However, when it's not (on OpenCL by default, for example), there is no easy way to fetch it when needed, since the ShaderData doesn't store the Lamp index. So, for now the lamps just don't support local texture coordinates anymore when Object Motion is disabled. To fix and support this properly, one of the following could be done: - Just always pre-fetch the transform. Downside: Memory Usage increases when not using OM on OpenCL - Add a variable to ShaderData that stores the Lamp ID to allow fetching it when needed - Store the Lamp ID inside prim or object. Problem: Cycles currently checks these for whether an object was hit - these checks would need to be changed. - Enable OM whenever a Texture Coordinate's Normal output is used. Downside: Might not actually be needed.
2016-10-29Cycles: Implement texture coordinates for Point, Spot and Area LampsLukas Stockner
When using the Normal output of the Texture Coordinate node on Point and Spot lamps, the coordinates now depend on the rotation of the lamp. On Area lamps, the Parametric output of the Geometry node now returns UV coordinates on the area lamp. Credit for the Area lamp part goes to Stefan Werner (from D1995).
2016-10-26Cycles: Another attempt to fix crashes on AVX2 processorsSergey Sharybin
Basically don't use rcp() in areas which seems to be critical after second look. Also disabled some multiplication operators, not sure yet why they might be a problem. Tomorrow will be setting up a full test with all cases which were buggy in our farm to see if this fix is complete.
2016-10-25Cycles: Fix for fix (tm)Sergey Sharybin
Sorry guys, for some reason read the expression back-to-front and did wrong fix :S
2016-10-25Cycles: Fix typo in previous commit for BVH improvementsSergey Sharybin
2016-10-25Cycles: BVH-related SSE optimizationSergey Sharybin
Several ideas here: - Optimize calculation of near_{x,y,z} in a way that does not require 3 if() statements per update, which avoids negative effect of wrong branch prediction. - Optimization of direction clamping for BVH. - Optimization of point/direction transform. Brings ~1.5% speedup again depending on a scene (unfortunately, this speedup can't be sum across all previous commits because speedup of each of the changes varies from scene to scene, but it still seems to be nice solid speedup of few percent on Linux and bigger speedup was reported on Windows). Once again ,thanks Maxym for inspiration! Still TODO: We have multiple places where we need to calculate near x,y,z indices in BVH, for now it's only done for main BVH traversal. Will try to move this calculation to an utility function and see if that can be easily re-used across all the BVH flavors.
2016-09-14Cycles: Also support the constant emission speedup for mesh lightsLukas Stockner
Reviewers: brecht, sergey, dingto, juicyfruit Differential Revision: https://developer.blender.org/D2220
2016-09-11Cycles: Replace object index hack with actual checks for SD_TRANSFORM_APPLIEDMai Lavelle
Using ones complement for detecting if transform has been applied was confusing and led to several bugs. With this proper checks are made. Also added a few transforms where they were missing, mostly affecting baking and displacement when `P` is used in the shader (previously `P` was in the wrong space for these shaders) Also removed `TIME_INVALID` as this may have resulted in incorrect transforms in some cases. Reviewed By: brecht Differential Revision: https://developer.blender.org/D2192
2016-08-07Cycles microdisplacement: Support for Catmull-Clark subdivision via OpenSubdivMai Lavelle
Enables Catmull-Clark subdivision meshes with support for creases and attribute subdivision. Still waiting on OpenSubdiv to fully support face varying interpolation for subdividing uv coordinates tho. Also there may be some inconsistencies with Blender's subdivision which will be resolved at a later time. Code for reading patch tables and creating patch maps is borrowed from OpenSubdiv. Reviewed By: brecht Differential Revision: https://developer.blender.org/D2111
2016-05-04Fix T48346: Transparent shadows do not work for instanced objectsSergey Sharybin
2015-10-09Cycles: Fix wrong intersection with motion blur and degenerate object transformSergey Sharybin
2015-10-09Cycles: Fix intersection issues caused by degenerate instance matrixSergey Sharybin
Issue was caused by wrong intersection distance scaling on instance pop, which could cause intersection distance to become zero, confusing following intersection checks.
2015-05-14Cycles: Prepare code for OpenCL camera/motion blurSergey Sharybin
The kernels are now compiling just fine, but there're some issues during rendering. This is still to be investigated.
2015-05-14Cycles: Use special _auto versions of transform function in motion blur codeSergey Sharybin
Doing this as a separate commit so it's easier to revert in the future, once OpenCL 2.0 is becoming our requirement.
2015-05-09Cycles: Fix typo in global space version of normal transformSergey Sharybin
It was using direction transform, which is obviously wrong.
2015-05-09Cycles: OpenCL kernel splitGeorge Kyriazis
This commit contains all the work related on the AMD megakernel split work which was mainly done by Varun Sundar, George Kyriazis and Lenny Wang, plus some help from Sergey Sharybin, Martijn Berger, Thomas Dinges and likely someone else which we're forgetting to mention. Currently only AMD cards are enabled for the new split kernel, but it is possible to force split opencl kernel to be used by setting the following environment variable: CYCLES_OPENCL_SPLIT_KERNEL_TEST=1. Not all the features are supported yet, and that being said no motion blur, camera blur, SSS and volumetrics for now. Also transparent shadows are disabled on AMD device because of some compiler bug. This kernel is also only implements regular path tracing and supporting branched one will take a bit. Branched path tracing is exposed to the interface still, which is a bit misleading and will be hidden there soon. More feature will be enabled once they're ported to the split kernel and tested. Neither regular CPU nor CUDA has any difference, they're generating the same exact code, which means no regressions/improvements there. Based on the research paper: https://research.nvidia.com/sites/default/files/publications/laine2013hpg_paper.pdf Here's the documentation: https://docs.google.com/document/d/1LuXW-CV-sVJkQaEGZlMJ86jZ8FmoPfecaMdR-oiWbUY/edit Design discussion of the patch: https://developer.blender.org/T44197 Differential Revision: https://developer.blender.org/D1200
2015-03-31Cycles: Avoid float/int conversion in few placesSergey Sharybin
2014-12-25Cycles: Distance optimization for QBVHSergey Sharybin
This commit implements heuristic which allows to skip nodes pushed to the stack from intersection if distance to them is larger than the distance to the current intersection. This should solve speed regression which i didn't notice in the original QBVH commit (which could have because i had WIP version of this patch applied in my local branch). From quick tests speed seems to be much closer to what is was with regular BVH. There's still some possible code cleanup, but they'll need a bit of assembly code check and now i want to make it so artists can happily use Cycles over the holidays.
2014-05-04Style cleanup: indentation, bracesCampbell Barton
2014-05-04Code cleanup: avoid int/uint mixup in cyclesCampbell Barton