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-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.
2017-09-26GPU_immediate_util: add cube drawing functionCampbell Barton
2017-09-26Cleanup: naming (GPU immediate util)Campbell Barton
2017-09-25DRW : Add new view_update mechanism.Clément Foucault
This makes updates for the viewport cleaner and also add the possibility to add a new callback called when the scene is updated.
2017-09-25DRW : Add AA to non meshes objects.Clément Foucault
You can change the amount of samples in the user preferences. You do not need to restart blender to see the effect in the new viewport. This adds another Multisample Framebuffer and textures (so even more memory required). It works by blitting the default_fb to the multisample_fb each time the renderer need to render one or more "wire" pass. It it then blit back to the default_fb so that the rest of pipeline is working as expected. We COULD lower the GPU memory / bandwidth usage to render everything to the same multisample fbo and change the logic depending on if MSAA is enabled or not, but I think it's a bit too much work for now.
2017-09-25GPUTexture : Fix Bind/Unbind function so it works with multisample textures.Clément Foucault
2017-09-25GPUFramebuffer: Fix Blit function so that it works with multisample textures.Clément Foucault
2017-09-15Eevee: Fix T52738: Probes are black.Clément Foucault
This fix the crappy binding logic. Note the current method is doing a lot of useless binding. We should somewhat order the texture so that reused textures are already bound most of the time.
2017-09-15GPUCodegen: Fix for loop overflow.Clément Foucault
Fix asan error.