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
2016-06-08Code refactor: store ShaderNode enums as enum rather than ustring.Brecht Van Lommel
2016-06-08Code refactor: centralize OSL node creation in shader manager.Brecht Van Lommel
2016-06-08Code refactor: pass ShaderInput to constant_fold, so it supports arbitrary ↵Brecht Van Lommel
types.
2016-06-08Code refactor: add separate RGB to BW node and rename some sockets.Brecht Van Lommel
2016-06-08Code refactor: make ShaderNode match Node a bit more, reusing types and enums.Brecht Van Lommel
Differential Revision: https://developer.blender.org/D2016
2016-06-08Code refactor: use shader pointers rather than shader indexes.Brecht Van Lommel
2016-06-08Code refactor: use dynamic shader node array lengths now that OSL supports them.Brecht Van Lommel
2016-05-05Code refactor: reduce special node types, use generic constant folding.Brecht Van Lommel
2016-05-01Fix Cycles external OSL shader not working with relative file paths.Brecht Van Lommel
2016-04-29Fix T48298: Cycles World environment Texture node, movie doesn't update frameSergey Sharybin
2016-04-05Revert "Cycles: Remove the Preetham Sky model."Thomas Dinges
This reverts commit d91316dc672dc1ee69fbd24d2f00124a24b75c6b.
2016-04-03Cycles: Remove the Preetham Sky model.Thomas Dinges
The improved Hosek / Wilkie model was added during my GSoC 2013 and the default since then. The older model was kinda kept for compatibility, but after more than 2 years it's time to remove it. The Hosek / Wilkie model is more realistic anyway, and people who really want a day / night transition can mix the Sky Shader with another one (e.g. color) and fade between the two.
2016-02-16Cycles: Some cleanup, should be no functional changesSergey Sharybin
Addressing meaningful feedback from coverity.
2016-02-13Cycles: Remove meaningless expressionSergey Sharybin
2016-02-12Cycles: Make Blender importer more forward compatibleSergey Sharybin
Basically the idea is to make code robust against extending enum options in the future by falling back to a known safe default setting when RNA is set to something unknown. While this approach solves the issues similar to T47377, but it wouldn't really help when/if any of the RNA values gets ever deprecated and removed. There'll be no simple solution to that apart from defining explicit mapping from RNA value to Cycles one. Another part which isn't so great actually is that we now have to have some enum guards and give some explicit values to the enum items, but we can live with that perhaps. Reviewers: dingto, juicyfruit, lukasstockner97, brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D1785
2016-02-11Cycles: Remove some ifdefs for OSL < 1.7.1.Thomas Dinges
That means that we now only support OSL 1.7.1 or newer. Please update libs or re-run install-depsh.sh.
2016-02-10Cycles: Cleanp, avoid direct calls of RNA_enum_get, we've got utility for thatSergey Sharybin
2016-02-04Cycles: Implement approximate reflectance profilesSergey Sharybin
Using this paper: http://graphics.pixar.com/library/ApproxBSSRDF/paper.pdf This model gives less blurry results than the Cubic and Gaussian we had implemented: - Cubic: https://developer.blender.org/F279670 - Burley: https://developer.blender.org/F279671 The model is called "Christensen-Burley" in the interface, which actually should be read as "Physically based" or "Realistic". Reviewers: juicyfruit, dingto, lukasstockner97, brecht Reviewed By: brecht, dingto Subscribers: robocyte Differential Revision: https://developer.blender.org/D1759
2016-02-03Cycles: Cleanup, indentation and bracesSergey Sharybin
2016-01-30Cycles: Pass Blender's C++ RNA structures by referenceSergey Sharybin
This way we avoid passing structures which could be up to few hundred bytes by value to the utility functions. Ideally we'll also have to add `const` qualifier in majority of the calls, but C++ RNA does not allow us to do that because it does not know if some function modifies contents or not.
2016-01-26Fix T47214: Keyed Particles don't render correctly when used for point ↵Sergey Sharybin
density input The issue was caused by different AABB used by Cycles and texture sampler. Instead of trying to keep this two functions in sync we now do have an utility call in the point density node to query the AABB.
2016-01-02Cycles: Add Saw option to the wave textureLukas Stockner
This commit adds "Bands Saw" and "Rings Saw" to the options for the Wave texture node in Cycles, behaving similar to the Saw option in BI textures. Requested by @cekuhnen on BA. Reviewers: dingto, sergey Subscribers: cekuhnen Differential Revision: https://developer.blender.org/D1699
2015-12-31Fix T46915: Non-intuitive behavior of Vector Curve Mapping nodeSergey Sharybin
Vector mapping node was doing some weird mapping of both original and mapped coordinates. Mapping of original coordinates was caused by the clamping nature of the LUT generated from the node. Mapping of the mapped value again was quite totally obscure -- one needed to constantly keep in mind that actual value will be scaled up and moved down. This commit makes it so values in the vector curve mapping are always absolute. In fact, it is now behaving quite the same as RGB curve mapping node and the code could be de-duplicated. Keeping the code duplicated for a bit so it's more clear what exact parts of the node changed. Reviewers: brecht Subscribers: bassamk Differential Revision: https://developer.blender.org/D1672
2015-12-05Cycles: Implement extrapolation for RGB curvesSergey Sharybin
Previously RGB Curves node will clamp input to 0..1 which is rather useless when one wants to use HDR image textures and do bit of correction on them. Now kernel code supports extrapolation of baked LUT based on first/last two table points and performs linear extrapolation. The only tricky part is to guess the range to bake the LUT for. Currently it's using simple approach -- minmax of the input curves. While this behaves ok for the simple cases it's easy to trick the system up causing incorrect results. Not sure we can solve those issues in a general case and since the new code is giving more expected results it's not that bad actually. In the worst case artist migh always create explicit point to make sure LUT is created for the needed HDR range. Reviewers: brecht, juicyfruit Subscribers: sebastian_k Differential Revision: https://developer.blender.org/D1658
2015-11-25Cycles: Create proper sockets for OSL script nodesSergey Sharybin
Previously render nodes will be always created with just a VECTOR socket type and then those sockets will try to be set as all point, vector and normal to work around lack of such a subtype distinguishing in blender. This change makes it so subtype is being queried from OSL itself and proper subtupe is being used for socket. It's still not in use for the official builds because it requires changes applied recently on the 1.7 branch of OSL: https://github.com/imageworks/OpenShadingLanguage/commit/f70e58f This solves artists confusion reported in T46117. Reviewers: #cycles, juicyfruit Reviewed By: #cycles, juicyfruit Subscribers: juicyfruit Differential Revision: https://developer.blender.org/D1627
2015-11-25Fix T46646: Point Cloud Density crashes on real time renderingSergey Sharybin
The issue was caused by possible use of object->derivedFinal from the render thread, The patch tries to eliminate (or at least minimize, huh) amount of access to the derivedFinal of a source object. It's still possible that in the case of particle source derived mesh will be still unsafely used, but with the patch applied we can easily change runtime part of the code and cache derived mesh on the preparation stage. Some ideas for the future: - Check whether cache() was called on the point density node when calling calc(). - Cache derivedMesh in the runtime part of point density node to avoid possible remained thread conflicts. - NULL the runtime part of the node on .blend load Reviewers: campbellbarton, plasmasolutions Reviewed By: plasmasolutions Differential Revision: https://developer.blender.org/D1614
2015-11-24Cycles: Support per-render layer world AO settingsSergey Sharybin
This is sort of extension of existing Use Environment option which now allows to disable AO on the render layer basis. Useful in cases like disabling AO for the background because it might make it too flat and so. Reviewers: juicyfruit, dingto, brecht Reviewed By: brecht Subscribers: eyecandy, venomgfx Differential Revision: https://developer.blender.org/D1633
2015-11-23Fix T46842: Removing World is missing AO update in viewport renderSergey Sharybin
2015-10-10Revert "Fix T46406: Cycles ignores default socket value associated with ↵Brecht Van Lommel
group socket" Fixes T46442.
2015-10-08Cycles: Cleanup, whitespace around keywordsSergey Sharybin
2015-10-08Fix T46407: Enabling OSL breaks Vector Transform nodeSergey Sharybin
2015-10-08Cycles: Add an interpolation option to environment texturesLukas Stockner
This commit exposes the interpolation parameter for environment textures (requested by DolpheenDream on IRC), just as it already is for image textures. Reviewers: sergey Differential Revision: https://developer.blender.org/D1544
2015-10-08Fix T46406: Cycles ignores default socket value associated with group socketSergey Sharybin
2015-10-08Fix T46405: Cycles point density missing update when modifying source objectSergey Sharybin
2015-09-13Cleanup: spellingCampbell Barton
2015-07-28Cycles: Correction to image extension setting commitSergey Sharybin
Technically it was all wrong and it should have been called Extend instead of Clip. Got confused by the naming in different libraries. More options are still to come.
2015-07-21Fix T43779: Cycles texture interpolation issuesSergey Sharybin
That was basically not an issue with interpolation, but rather missing wrapping options and periodic wrapping was always used. It's still a bit questionable why certain graphics cards were doing clamping in the file from the report, that's not something what is expected to happen from the settings of textures being passed to GPU. In any case this issue i still didn't manage to reproduce on any of the available GPUs, might be something related on driver glitch or so. In any case CPU now should behave just fine, rest of the issues we'll need to be able to reproduce first.
2015-07-21Cycles: Expose image image extension mapping to the image managerSergey Sharybin
Currently only two mappings are supported by API, which is Repeat (old behavior) and new Clip behavior. Internally this extension is being converted to periodic flag which was already supported but wasn't exposed. There's no support for OpenCL yet because of the way how we pack images into a single texture. Those settings are not exposed to UI or anywhere else and there should be no functional changes so far.
2015-07-18Cycles: Point density texture supportSergey Sharybin
This commit implements point density texture for Cycles shading nodes. It's done via creating voxel texture at shader compilation time, Not totally memory efficient, but avoids adding sampling code to kernel (which keeps render time as low as possible), In the future this will be compensated by using OpenVDB for more efficient storage of sparse volume data. Sampling of the voxel texture is happening at blender side and the same code is used as for Blender Internal's renderer. This texture is controlled by only object, particle system and radius. Linear falloff is used and there's no turbulence. This is because falloff is expected to happen using Curve Mapping node. Turbulence will be done as a distortion on the input coordinate. It's already possible to fake it using nose textures and in the future we can add more proper turbulence distortion node, which then could also be used for 2D texture mapping. Particle color support is done by Lukas, thanks!
2015-06-01Cycles: Code cleanup, spaces around keyword and braceSergey Sharybin
2015-04-06Cycles: Experiment with making previews more interactiveSergey Sharybin
There were two major problems with the interactivity of material previews: - Beckmann tables were re-generated on every material tweak. This is because preview scene is not set to be persistent, so re-triggering the render leads to the full scene re-sync. - Images could take rather noticeable time to load with OIIO from the disk on every tweak. This patch addressed this two issues in the following way: - Beckmann tables are now static on CPU memory. They're couple of hundred kilobytes only, so wouldn't expect this to be an issue. And they're needed for almost every render anyway. This actually also makes blackbody table to be static, but it's even smaller than beckmann table. Not totally happy with this approach, but others seems to complicate things quite a bit with all this render engine life time and so.. - For preview rendering all images are considered to be built-in. This means instead of OIIO which re-loads images on every re-render they're coming from ImBuf cache which is fully manageable from blender side and unused images gets freed later. This would make it impossible to have mipmapping with OSL for now, but we'll be working on that later anyway and don't think mipmaps are really so crucial for the material preview. This seems to be a better alternative to making preview scene persistent, because of much optimal memory control from blender side. Reviewers: brecht, juicyfruit, campbellbarton, dingto Subscribers: eyecandy, venomgfx Differential Revision: https://developer.blender.org/D1132
2015-03-27Cycles: Code cleanup, spaces around keywordsSergey Sharybin
This inconsistency drove me totally crazy, it's really confusing when it's inconsistent especially when you work on both Cycles and Blender sides. Shouldn;t cause merge PITA, it's whitespace changes only, Git should be able to merge it nicely.
2015-03-27Cycles: Code cleanup, make strict flags happy about disabled OSLSergey Sharybin
2015-03-27Cycles: Code cleanup, prepare for strict C++ flagsSergey Sharybin
2015-03-25Fix T44064: Reroute two-node loop crashSergey Sharybin
Issue was caused by cycles in shader graph confusing it's simplification stage. Now we're ignoring links which are marked as invalid from blender side so we don't run into such cycles and keep graph code simple.
2015-01-27Cycles: Support texture coordinate from another objectSergey Sharybin
This is the same as blender internal's texture mapping from another object, so this way it's possible to control texture space of one object by another. Quite straightforward change apart from the workaround for the stupidness of the dependency graph. Now shader has flag telling that it depends on object transform. This is the simplest way to know which shaders needs to be tagged for update when object changes. This might give some false-positive tags now but reducing them should not be priority for Cycles and rather be a priority to bring new dependency graph. Also GLSL preview does not support using other object for mapping. This is actually correct for BI shading as well and to be addressed as a part of general GLSL viewport improvements since it's not really clear how to support this in GLSL. Reviewers: brecht, juicyfruit Subscribers: eyecandy, venomgfx Differential Revision: https://developer.blender.org/D1021
2014-12-25Cleanup: Fix Cycles Apache header.Thomas Dinges
This was already mixed a bit, but the dot belongs there.
2014-10-22Cycles: Get rid of hardcoded enum values in the codeSergey Sharybin
Still need to keep enum definition in sync with the python code, but the code itself is a bit more clear to understand now.
2014-10-22Cycles: Expose volume voxel data interpolation to the interfaceSergey Sharybin
It is per-material setting which could be found under the Volume settings in the material and world context buttons. There could still be some code-wise improvements, like using variable-size macro for interp3d instead of having interp3d_ex to which you can pass the interpolation method.
2014-09-24Cycles: Shader Graph Optimization for Mix RGB nodes.Thomas Dinges
Basically the same as AC2c58e96685e8, but for Mix RGB Shaders, in case we use the Mix type. This way the node can be used as texture switch for example, setting the Factor to 0.0 or 1.0, without wasting extra memory / render time.