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-06-22Cleanup: minor refactoring around DeviceTaskBrecht Van Lommel
2020-04-08Fix T75288: crash in Cycles image loading with multithreaded shader compilationBrecht Van Lommel
2020-03-18Cycles: support for different 3D transform per volume gridBrecht Van Lommel
This is not yet fully supported by automatic volume bounds but works fine in most cases that will have mostly matching bounds. Ref T73201
2020-03-12Cleanup: add device_texture for images, distinct from other global memoryBrecht Van Lommel
There was too much image texture specific stuff in device_memory, and too much code duplication between devices.
2020-03-12Cleanup: spelling, clang-formatCampbell Barton
2020-03-11Cleanup: refactor image loading to use abstract ImageLoader base classBrecht Van Lommel
Rather than passing around void pointers, various Blender image sources now subclass this. OIIO is also just another type of image loader. Also fixes T67718: Cycles viewport render crash editing point density settings
2020-03-11Cleanup: add ImageHandle to centralize image ownership logicBrecht Van Lommel
2020-03-11Cleanup: stop encoding image data type in slot indexBrecht Van Lommel
This is legacy code from when we had a fixed number of textures.
2020-02-26Cleanup: add ImageKey to avoid longer argument lists and duplicated codeBrecht Van Lommel
2019-12-12Add support for tiled images and the UDIM naming schemeLukas Stockner
This patch contains the work that I did during my week at the Code Quest - adding support for tiled images to Blender. With this patch, images now contain a list of tiles. By default, this just contains one tile, but if the source type is set to Tiled, the user can add additional tiles. When acquiring an ImBuf, the tile to be loaded is specified in the ImageUser. Therefore, code that is not yet aware of tiles will just access the default tile as usual. The filenames of the additional tiles are derived from the original filename according to the UDIM naming scheme - the filename contains an index that is calculated as (1001 + 10*<y coordinate of the tile> + <x coordinate of the tile>), where the x coordinate never goes above 9. Internally, the various tiles are stored in a cache just like sequences. When acquired for the first time, the code will try to load the corresponding file from disk. Alternatively, a new operator can be used to initialize the tile similar to the New Image operator. The following features are supported so far: - Automatic detection and loading of all tiles when opening the first tile (1001) - Saving all tiles - Adding and removing tiles - Filling tiles with generated images - Drawing all tiles in the Image Editor - Viewing a tiled grid even if no image is selected - Rendering tiled images in Eevee - Rendering tiled images in Cycles (in SVM mode) - Automatically skipping loading of unused tiles in Cycles - 2D texture painting (also across tiles) - 3D texture painting (also across tiles, only limitation: individual faces can not cross tile borders) - Assigning custom labels to individual tiles (drawn in the Image Editor instead of the ID) - Different resolutions between tiles There still are some missing features that will be added later (see T72390): - Workbench engine support - Packing/Unpacking support - Baking support - Cycles OSL support - many other Blender features that rely on images Thanks to Brecht for the review and to all who tested the intermediate versions! Differential Revision: https://developer.blender.org/D3509
2019-05-26Fix Cycles packed images not handling channel packed alpha correctlyBrecht Van Lommel
2019-05-19Images: change alpha settings to support channel packingBrecht Van Lommel
This also replaces the Use Alpha setting. We now have these alpha modes: * Straight: store RGB and alpha channels separately with alpha acting as a mask, also known as unassociated alpha. * Premultiplied: transparent RGB pixels are multiplied by the alpha channel. The natural format for renders. * Channel Packed: different images are packed in the RGB and alpha channels, and they should not influence each other. Channel packing is commonly used by game engines to save memory. * None: ignore alpha channel from the file and make image fully opaque. Cycles OSL does not correctly support Channel Packed and None yet, we are missing fine control over the OpenImageIO texture cache to do that. Fixes T53672
2019-05-15Fix T64618: Cycles crash with point density texture on WindowsBrecht Van Lommel
A better solution would be to not use the callback mechanism anymore for cases like this where the dependency graph will free volume data, but that would be a bigger refactor.
2019-05-04Cycles: Fix NULL instead of falseSergey Sharybin
Not really noticeable for users, since the compiled code is the same, but semantically this is incorrect.
2019-05-03Fix Cycles crash when trying to load image that does not existBrecht Van Lommel
It was crashing due to array out of bounds access. This is not a great fix, but brings back behavior the same as before now. Perhaps images that failed to load should be stored separately somewhere.
2019-05-03Cycles: support loading images from arbitrary OpenColorIO color spaceLukas Stockner
These are the internal changes to Cycles, for Blender integration there are no functional changes in this commit. Images are converted to scene linear color space on file load, and on reading from the OpenImageIO texture cache. 8-bit images are compressed with the sRGB transfer function to avoid precision loss while keeping memory usages low. This also means that for common cases of 8-bit sRGB images no conversion happens at all on image loading. Initial patch by Lukas, completed by Brecht. Differential Revision: https://developer.blender.org/D3491
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
2019-02-02Merge branch 'blender2.7'Campbell Barton
2019-02-01Fix T61078: Cycles crash with adaptive smoke sim playback.Brecht Van Lommel
3D image dimensions should be updated on the Cycles side before loading the smoke data.
2018-12-11Merge branch 'master' into blender2.8Sergey Sharybin
2018-12-11Update code to be compatible with OIIO 2.0Sergey Sharybin
There are some changes in API of OpenImageIO, but those are quite simple to keep working with older and newer library versions. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D4064
2018-11-09Merge branch 'master' into blender2.8Sergey Sharybin
2018-11-09Cycles: Cleanup, spacing after preprocessorSergey Sharybin
It is supposed to be two spaces before comment stating which if else/endif statements corresponds to. Was mainly violated in the header guards.
2018-07-27Merge branch 'master' into blender2.8Sergey Sharybin
2018-07-27Cycles: Initial implementation of detailed statisticsSergey Sharybin
Gathers information about object geometry and textures. Very basic at this moment, but need to start somewhere. Things which needs to be included still: - "Runtime" information, like BVH. While it is not directly controllable by artists, it's still important to know. - Device array sizes. Again, not under artists control, but is added to the overall size. - Memory peak at different synchronization stages. At this point it simply prints info to the stdout after F12 is done, need better control over that too. Reviewers: brecht Differential Revision: https://developer.blender.org/D3566
2018-07-27Cycles: Cleanup, spellingSergey Sharybin
2018-07-27Cycles: Cleanup, move functions outside of class methodsSergey Sharybin
There is no reason or justification to have helper functions as class methods: they do not depend on anything in the class itself. There are probably more cases like that.
2018-07-27Cycles: Cleanup, remove unused functionSergey Sharybin
2018-07-27Cycles: Cleanup in image manager, switch statement instead of if-elseSergey Sharybin
Allows to catch enumerator values which are missing from being handled. Also use `const char*`, no need to construct string just to throw it away.
2018-07-06Merge branch 'master' into blender2.8Campbell Barton
2018-07-06Cleanup: strip trailing space for cyclesCampbell Barton
2018-06-14Merge remote-tracking branch 'origin/master' into blender2.8Lukas Stockner
2018-06-14Cycles: Automatically detect HDRI resolution by default and use non-square ↵Lukas Stockner
sampling map The automatic mode checks all Enviroment Texture nodes and picks the largest image's resolution. If there are no Enviroment Textures, it just uses the old default. Also, the sampling map now isn't limited to square shapes. The automatic detection uses the exact image size, the manual UI option now halves the value to get the height. A default aspect ratio of 2:1 makes sense since this is what most HDRIs use. Reviewers: brecht, sergey Differential Revision: https://developer.blender.org/D3477
2018-06-11Fix T55436: crash with point density and shader tweaking.Brecht Van Lommel
With copy-on-write we can no longer assumes the point density data is available after Cycles synchronization with Blender data is done. So force it to be loaded earlier, even if it's not great for interactivity.
2018-03-01Cycles volume: fast empty space optimization by generating a tight meshKévin Dietrich
around the volume. We generate a tight mesh around the active voxels of the volume in order to effectively skip empty space, and start volume ray marching as close to interesting volume data as possible. See code comments for details on how the mesh generation algorithm works. This gives up to 2x speedups in some scenes. Reviewed by: brecht, dingto Reviewers: #cycles Subscribers: lvxejay, jtheninja, brecht Differential Revision: https://developer.blender.org/D3038
2018-02-28Code cleanup: refactor Cycles image metadata retrieval to use a struct.Brecht Van Lommel
2018-02-18Cycles: Remove Fermi texture code.Thomas Dinges
This should be the last Fermi removal commit, unless I missed something. It's been a pleasure Fermi!
2018-01-03Cycles: make CUDA code a bit more robust to host/device alloc failures.Brecht Van Lommel
Fixes a few corner cases found while stress testing host mapped memory.
2017-10-21Code refactor: simplify image device memory allocation.Brecht Van Lommel
2017-08-09Revert "Cycles: Fix crash changing image after recent OpenCL changes"Mai Lavelle
This reverts commit f2809ae0a671057caa1005e2b9cc91648c33dd1f.
2017-08-08Cycles: Fix crash changing image after recent OpenCL changesSergey Sharybin
Steps to reproduce: - Create shader Image texture -> Diffuse BSDF -> Output. Do NOT select image yet! - Start viewport render. - Select image from the ID browser of Image Texture node. Thing is: with the memory manager we always need to inform device that memory was freed.
2017-08-08Cycles: Pack kernel textures into buffers for OpenCLMai Lavelle
Image textures were being packed into a single buffer for OpenCL, which limited the amount of memory available for images to the size of one buffer (usually 4gb on AMD hardware). By packing textures into multiple buffers that limit is removed, while simultaneously reducing the number of buffers that need to be passed to each kernel. Benchmarks were within 2%. Fixes T51554. Differential Revision: https://developer.blender.org/D2745
2017-07-21Fix T52135: Cycles should not keep generated/packed images in memory after ↵Brecht Van Lommel
render.
2017-05-04Fix T51412: Instant crash with texture plugged into the Displacement outputSergey Sharybin
The issue was caused by unlimited textures commit, root of the issue is that displacement code updates some of the image slots directly, so it needs to ensure device vectors are all proper size.
2017-04-28Cycles: Simplify code around maximum OpenCL info size allocationSergey Sharybin
2017-04-28Cycles: Cleanup, de-duplicate image packing of various typesSergey Sharybin
2017-04-27Unlimited number of textures for CyclesStefan Werner
This patch allows for an unlimited number of textures in Cycles where the hardware allows. It replaces a number static arrays with dynamic arrays and changes the way the flat_slot indices are calculated. Eventually, I'd like to get to a point where there are only flat slots left and textures off all kinds are stored in a single array. Note that the arrays in DeviceScene are changed from containing device_vector<T> objects to device_vector<T>* pointers. Ideally, I'd like to store objects, but dynamic resizing of a std:vector in pre-C++11 calls the copy constructor, which for a good reason is not implemented for device_vector. Once we require C++11 for Cycles builds, we can implement a move constructor for device_vector and store objects again. The limits for CUDA Fermi hardware still apply. Reviewers: tod_baudais, InsigMathK, dingto, #cycles Reviewed By: dingto, #cycles Subscribers: dingto, smellslikedonkey Differential Revision: https://developer.blender.org/D2650
2017-03-29Cycles: Make all #include statements relative to cycles source directorySergey Sharybin
The idea is to make include statements more explicit and obvious where the file is coming from, additionally reducing chance of wrong header being picked up. For example, it was not obvious whether bvh.h was refferring to builder or traversal, whenter node.h is a generic graph node or a shader node and cases like that. Surely this might look obvious for the active developers, but after some time of not touching the code it becomes less obvious where file is coming from. This was briefly mentioned in T50824 and seems @brecht is fine with such explicitness, but need to agree with all active developers before committing this. Please note that this patch is lacking changes related on GPU/OpenCL support. This will be solved if/when we all agree this is a good idea to move forward. Reviewers: brecht, lukasstockner97, maiself, nirved, dingto, juicyfruit, swerner Reviewed By: lukasstockner97, maiself, nirved, dingto Subscribers: brecht Differential Revision: https://developer.blender.org/D2586
2017-01-25Fix T50032: Wrong render result when same image is used with and without alphaSergey Sharybin
2016-11-29Cycles: Pass extra array size argument to builtin image pixels functionsSergey Sharybin
This is a way to avoid possible memory corruption when render threads works in parallel with UI thread. Not guarantees complete safe, but makes things easier to check anyway.