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
2017-11-28Eevee: Fix T53413: Crash when using displacement bump relink.Clément Foucault
ntree_shader_relink_displacement is creating a transient node that does not have a correct original to point to. In this case we revert to constant uniform.
2017-11-25Eevee: SSS: Add separated Albedo option.Clément Foucault
This option prevent from automatically blurring the albedo color applied to the SSS. While this is great for preserving details it can bleed more light onto the nearby objects since the blurring will be done on pure "white" irradiance. This issue is to be tackled in a separate commit.
2017-11-25GPUFramebuffer: Bump the framebuffer attachement limit to 5 color texturesClément Foucault
2017-11-24Eevee: Refactor of lit_surface_frag.glslClément Foucault
This cleanup removes the need of gigantic code duplication for each closure. This also make some preformance improvement since it removes some branches and duplicated loops. It also fix some mismatch (between cycles and eevee) with the principled shader.
2017-11-24Eevee: SSS: Principled Shader: Add a workaround the lack of scale inputClément Foucault
This is a hack to make the user control the SSS radius even though the profile is baked with the default radius values. This is completly against UI principles since you cannot edit the profile radiuses while there is something plugged into the radius socket. Better solution will be to either have a dedicated node value for RGB radiuses and a SSS scale socket only for eevee.
2017-11-23Merge branch 'master' into blender2.8Brecht Van Lommel
2017-11-23Fix T53348: Cycles difference between gradient texture on CPU and GPU.Brecht Van Lommel
2017-11-23Rename any instance of scene layer or render layer in code with view layerDalai Felinto
The RenderResult struct still has a listbase of RenderLayer, but that's ok since this is strictly for rendering. * Subversion bump (to 2.80.2) * DNA low level doversion (renames) - only for .blend created since 2.80 started Note: We can't use DNA_struct_elem_find or get file version in init_structDNA, so we are manually iterating over the array of the SDNA elements instead. Note 2: This doversion change with renames can be reverted in a few months. But so far it's required for 2.8 files created between October 2016 and now. Reviewers: campbellbarton, sergey Differential Revision: https://developer.blender.org/D2927
2017-11-22SceneRenderLayer Removal/RefactorDalai Felinto
This patch moves all the functionality previously in SceneRenderLayer to SceneLayer. If we want to rename some of these structs now would be a good time to do it, before they are in SceneLayer. Everything should be working, though I will test things further tomorrow. Once this is committed depsgraph can get rid of the workaround added in rna_Main_meshes_new_from_object and finish whatever this patch was preventing from being finished. This patch also adds a few placeholders for the overrides (samples, ...). These are obviously not working, so some unittests that rely on 'lay', and 'zmask' will fail. This patch does not addressed the change of moving samples to ViewRender (I have this as a separate patch and needs some separate discussion). Following next is the individual note of the individual parts that were committed. Note 1: It is up to Cycles to still get rid of exclude_layer internally. Note 2: Cycles still need to handle its own doversion for the use_layer_samples cases and (1) Remove the override as it is (2) Add a new override (scene.cycles.samples) if scene.cycles.use_layer_samples != IGNORE Respecting the expected behaviour when scene.cycles.use_layer_samples == BOUNDED. Note 3: Cycles still need to implement the per-object holdout (similar to how we do shadow catcher). Note 4: There are parts of the old (Blender Internal) rendering pipeline that is still using lay, e.g., in shi->lay. Honestly it will be easier to purge the entire Blender Internal code away instead of taking things from it bit by bit. Reviewers: sergey, campbellbarton, brecht Differential Revision: https://developer.blender.org/D2919
2017-11-22SceneRenderLayer > SceneLayer: Convert LayDalai Felinto
There are parts of the old (Blender Internal) rendering pipeline that is still using lay, e.g., in shi->lay. Honestly it will be easier to purge the entire Blender Internal code away instead of taking things from it bit by bit.
2017-11-22SceneRenderLayer > SceneLayer: Remove light_overrideDalai Felinto
2017-11-22Eevee : SSS : Add Translucency support.Clément Foucault
This adds the possibility to simulate things like red ears with strong backlight or material with high scattering distances. To enable it you need to turn on the "Subsurface Translucency" option in the "Options" tab of the Material Panel (and of course to have "regular" SSS enabled in both render settings and material options). Since the effect is adding another overhead I prefer to make it optional. But this is open to discussion. Be aware that the effect only works for direct lights (so no indirect/world lighting) that have shadowmaps, and is affected by the "softness" of the shadowmap and resolution. Technical notes: This is inspired by http://www.iryoku.com/translucency/ but goes a bit beyond that. We do not use a sum of gaussian to apply in regards to the object thickness but we precompute a 1D kernel texture. This texture stores the light transmited to a point at the back of an infinite slab of material of variying thickness. We make the assumption that the slab is perpendicular to the light so that no fresnel or diffusion term is taken into account. The light is considered constant. If the setup is similar to the one assume during the profile baking, the realtime render matches cycles reference. Due to these assumptions the computed transmitted light is in most cases too bright for curvy objects. Finally we jitter the shadow map sample per pixel so we can simulate dispersion inside the medium. Radius of the dispersion is in world space and derived by from the "soft" shadowmap parameter. Idea for this come from this presentation http://www.iryoku.com/stare-into-the-future (slide 164).
2017-11-21Eevee: SSS: Fix error in profile computation.Clément Foucault
2017-11-17Eevee: SSS: Add cubic profile for the sake of completeness.Clément Foucault
It wasnt really hard except from the wierd sharpness 0.5 multiplication.
2017-11-16Eevee: SSS: Add SSS to the principled shader.Clément Foucault
2017-11-16Eevee: SSS: Add Christensen-Burley diffusion profile.Clément Foucault
This seems to be a correct implementation of the same diffusion profile as Cycles uses by default. There are a few bias though: - We consider _A_ the albedo to be 1 when evaluating _s_. - We use a factor of 0.6 when computing _d_ to match more or less cycles results. Note that doing per pixel jittering does bias the result even further (loss of energy).
2017-11-16Fix T51210: Draw Manager: Support for Metaball DrawingGermano
Differential Revision: D2914
2017-11-14Fix Opengl Error with glBlitFramebufferClément Foucault
This was caused by 93936b8643b9c4f77fe13d35b41ecaa246843dd8 From GL spec : GL_INVALID_OPERATION is generated if mask contains GL_DEPTH_BUFFER_BIT or GL_STENCIL_BUFFER_BIT and the source and destination depth and stencil formats do not match. So blitting framebuffer with depth or stencil require the SAME FORMAT.
2017-11-14Eevee: SSS: Add Quality settings.Clément Foucault
Samples : pretty self explanatory. Jitter Threshold : Reduce cache misses and improve performance (greatly) by lowering this value. This settings let user decide how many samples should be jittered (rotated) to reduce banding artifacts.
2017-11-14Eevee: Initial Separable Subsurface Scattering implementation.Clément Foucault
How to use: - Enable subsurface scattering in the render options. - Add Subsurface BSDF to your shader. - Check "Screen Space Subsurface Scattering" in the material panel options. This initial implementation has a few limitations: - only supports gaussian SSS. - Does not support principled shader. - The radius parameters is baked down to a number of samples and then put into an UBO. This means the radius input socket cannot be used. You need to tweak the default vector directly. - The "texture blur" is considered as always set to 1
2017-11-14GPUTexture: Add for stencil to default depth buffers.Clément Foucault
Theses will be used by eevee SSS. TODO: only allocate stencil if needed.
2017-11-14GPUMaterial : Add sss_data to Closure struct.Clément Foucault
2017-11-11GPUFramebuffer: Add possibility to blit stencil buffer.Clément Foucault
2017-11-09Rename Scene macros back to their original _NEW less namesDalai Felinto
2017-11-09Cleanup: Use full name for scene_layer in gpuSergey Sharybin
2017-11-08Merge branch 'master' into blender2.8Brecht Van Lommel
2017-11-08Cycles: add bevel shader, for raytrace based rounded edges.Brecht Van Lommel
The algorithm averages normals from nearby surfaces. It uses the same sampling strategy as BSSRDFs, casting rays along the normal and two orthogonal axes, and combining the samples with MIS. The main concern here is that we are introducing raytracing inside shader evaluation, which could be quite bad for GPU performance and stack memory usage. In practice it doesn't seem so bad though. Note that using this feature can easily slow down renders 20%, and that if you care about performance then it's better to use a bevel modifier. Mainly this is useful for baking, and for cases where the mesh topology makes it difficult for the bevel modifier to work well. Differential Revision: https://developer.blender.org/D2803
2017-11-06DRW: Use pseudo persistent memory pool for the rendering data structure.Clément Foucault
This gets rid of the bottleneck of allocation / free of thousands of elements every frame. Cache time (Eevee) (test scene is default file with cube duplicated 3241 times) pre-patch: 23ms post-patch: 14ms
2017-11-05Merge branch 'master' into blender2.8Campbell Barton
2017-11-05Cleanup: spellingCampbell Barton
2017-11-02Merge branch 'master' into blender2.8Campbell Barton
2017-11-01Fix T53217: GLSL principled BSDF black with zero clearcoat roughness.Brecht Van Lommel
2017-10-27Eevee: Volumetrics: Support Smoke simulation textures.Clément Foucault
It should behave like cycles. Even if not efficient at all, we still do the same create - draw - free process that was done in the old viewport to save vram (maybe not really the case now) and not care about simulation's GPU texture state sync.
2017-10-27Eevee: Volumetrics: Add Volume object support.Clément Foucault
This is quite basic as it only support boundbing boxes. But the material can refine the volume shape in anyway the user like. To overcome this limitation, a voxelisation should be done on the mesh (generating a SDF maybe?) and tested against every volumetric cell.
2017-10-27GPUMaterial: Add a domain property.Clément Foucault
This let us know efficiently if a material has a dedicated nodetree for each of it's output node input. Only works for Eevee at this moment.
2017-10-17GPU: Report number of compressed texture formats to help nailing crahs down ↵Sergey Sharybin
in the future
2017-10-17GPU: Fix memory corruption in GPU_debug on GTX1080Sergey Sharybin
Number of texture formats is 51, which is greater than allowed size of 32.
2017-10-17GPUFramebuffer: Fix recursive downsample exiting early.Clément Foucault
I should really proof read my commits a bit more.
2017-10-17GPU Extension: Fix AMD Vega + open source driver detection.Clément Foucault
2017-10-16Workspace: Move engines to workspace and Properties Editor cleanupDalai Felinto
Engine is not stored in WorkSpaces. That defines the "context" engine, which is used for the entire UI. The engine used for the poll of nodes (add node menu, new nodes when "Use Nodes") is obtained from context. Introduce a ViewRender struct for viewport settings that are defined for workspaces and scene. This struct will be populated with the hand-picked settings that can be defined per workspace as per the 2.8 design. * use_scene_settings * properties editor: workshop + organize context path Use Scene Settings ================== For viewport drawing, Workspaces have an option to use the Scene render settings (F12) instead of the viewport settings. This way users can quickly preview the final render settings, engine and View Layer. This will affect all the editors in that workspace, and it will be clearly indicated in the top-bar. Properties Editor: Add Workspace and organize context path ========================================================== We now have the properties of: Scene, Scene > Layer, Scene > World, Workspace [Scene | Workspace] > Render Layer > Object [Scene | Workspace] > Render Layer > Object > Data (...) Reviewers: Campbell Barton, Julian Eisel Differential Revision: https://developer.blender.org/D2842
2017-10-16Fix compatibility flag for nodetreeDalai Felinto
NODE_NEWER_SHADING was introduced in e868b459bb8e however it should have been added as a bitflag. BKE_scene_uses_blender_eevee() was used in gpu_shader_output() as a workaround for compatibility being poorly used. Anyways this fixes this situation. This is necessary for an upcoming patch, even though this is considered temporary - since the other NODE_*_SHADING values are legacy from Blender Internal drawing.
2017-10-11Eevee : Add a workaround for bug with AMD RX VEGA Linux + Mesa DriverClément Foucault
This bug (explained here https://github.com/dfelinto/opengl-sandbox/blob/downsample/README.md) is breaking eevee beyond the point it's workable. This patch workaround the issue by making sure every fbo have mipmaps that are strictly greater than 16px. This break the bloom visuals a bit but only for this setup.
2017-10-08Gawain: Make common uniforms become builtinsClément Foucault
This improves eevee's cache performance by 13% in my test.
2017-10-07Cleanup: style, duplicate includesCampbell Barton
2017-10-06Gawain: Add UBOs to shader interface.Clément Foucault
2017-09-29Merge branch 'master' into blender2.8Campbell Barton
2017-09-29Vertex Paint: Alpha SupportCampbell Barton
GSOC 2017 by Darshan Kadu, see: D2859. This is a partial merge of some of the features from the soc-2017-vertex_paint branch. - Alpha painting & drawing. - 10 new color blending modes. - Support for vertex select in vertex paint mode.
2017-09-27--debug-gpu-shader: Dump GLSL shaders to diskDalai Felinto
This is really convenient for development. Either for profiling the generated shaders or to check if the generated code is correct. It writes the shaders to the temporary blender session folder.
2017-09-26Eevee : Fix regression : Refraction not workingClément Foucault
2017-09-26GPUFramebuffer: Enable multisample when binding a Multisample FBOClément Foucault
For some reason it was not working on intel but was working on Nvidia.