Clément Foucault
b09052002c
Eevee: Add support for volumetrics in node tree.
...
Only volume scatter is implemented for now.
2017-07-03 22:08:33 +02:00
Clément Foucault
2eef097831
GPU Codegen: Add new closure socket type.
...
This allow specialized shaders to redefine the closure interface to fit their needs.
For instance, Volumetric closure needs to pass more than one vec4 (absorption vec3, scattering vec3, anisotropy float).
2017-07-03 22:08:33 +02:00
Dalai Felinto
d97c3bc7ad
Merge branch 'master' into blender2.8
2017-07-03 15:18:46 +02:00
Brecht Van Lommel
eb420e6b7f
Fix T51957: principled BSDF mismatches in GLSL viewport.
2017-07-02 18:37:50 +02:00
Clément Foucault
0831099664
Eevee: Principled BSDF: add support for specular tint + optimisation
...
Only use clearcoat version if there is something linked or if the clearcoat value is not 0.
2017-06-30 14:12:25 +02:00
Clément Foucault
cdb07ff30e
Eevee: Fix broken default coordinate (reported via IRC by Dalai Felinto).
2017-06-29 20:23:06 +02:00
Clément Foucault
5e96df7d27
Eevee: Remove Geometry shader usage for background.
...
This fix the behaviour of the light path node that separates the probes background from the viewport background.
2017-06-29 17:08:13 +02:00
Clément Foucault
95797336f5
Eevee: Prepare support for future Anisotropic shading.
2017-06-29 17:08:13 +02:00
Clément Foucault
3888227a7b
material Glsl: Fix tangent with new orco.
2017-06-29 17:08:13 +02:00
Clément Foucault
e14fd19105
Eevee: Add Initial support for Principle BRDF.
...
Lots of things not working yet but it's comming.
2017-06-29 01:47:59 +02:00
Clément Foucault
a1a40bfe70
GPUTexture : Un-clamp float rect datas.
...
We do not need it anymore because we do not use glu anymore. And we need full range for HDRI Lighting.
2017-06-28 22:26:44 +02:00
Clément Foucault
beb375cdb2
GPU_codegen: Fix geometry shader.
2017-06-28 21:28:24 +02:00
Clément Foucault
ada6e720f9
GPU_codegen: Add support for passing attributes through the geometry stage.
...
Should fix some issues with missing attributes in Eevee.
2017-06-28 21:05:43 +02:00
Campbell Barton
87dd9c31a0
GPU: split GPU_material_from_nodetree in two
...
Add GPU_material_from_nodetree_find to avoid having to construct other
arguments which won't be used in the case the material is exists.
2017-06-28 10:59:25 +10:00
Campbell Barton
dbaa6c2aa2
GPU: GPU_generate_pass_new now takes vertex-attrs
...
Needed so we can tell which custom-data layers to use from the mesh.
2017-06-28 09:37:44 +10:00
Clément Foucault
0394c04a7f
Eevee: Add Planar reflection blurring.
...
This method is very cheap and inaccurate. This will fill the gap untill better model is supported.
2017-06-26 21:04:53 +02:00
Dalai Felinto
6f0b80425b
Fix shaders not working in Eevee
...
Not a single node based shader was working since a recent merge from
master.
The merge brought changes from the principle bsdf shader where
unsupported gl_ProjectionMatrix was still being used.
2017-06-26 12:14:21 +02:00
Campbell Barton
f0863f2a80
Merge branch 'master' into blender2.8
2017-06-26 13:27:54 +10:00
Clément Foucault
28ff238c45
Eevee: Planar reflection: Fix normal deformation for background pixels.
...
Now it matches world cubemap perfectly.
2017-06-24 05:24:59 +02:00
Clément Foucault
e92940c6f3
Eevee: Planar Reflection: Add contact hardening normal distortion.
...
Save radial distance to camera in alpha channel of the planar probe.
Use this distance to modulate distortion intensity when shading the surface.
2017-06-24 01:08:26 +02:00
Clément Foucault
779c950098
Eevee: Ambient Occlusion: Initial implementation.
...
Implement GTAO (Ground Truth Ambient Occlusion) which is a special case of Horizon Based Ambient Occlusion that is more physically accurate.
Also add a bent normal option to sample indirect irradiance (diffuse lighting) with the least occluded direction.
2017-06-22 03:51:06 +02:00
Clément Foucault
ed59d03bfc
GPUFramebuffer: Add recursive downsampling function.
...
This special case function enables rendering to a miplevel while using the miplevels above as texture input.
This is needed for some algorithm (i.e. creating a min-max depth pyramid texture).
2017-06-22 03:51:06 +02:00
Clément Foucault
fe2ff3fc89
GPUTexture: Support for nearest sampling with mipmaps.
2017-06-22 03:51:06 +02:00
Brecht Van Lommel
968093ec2f
Fix T51862: principled shader GLSL artifacts in ortho mode.
2017-06-21 21:31:08 +02:00
Brecht Van Lommel
14ea0c5fcc
Fix T51849: change Cycles clearcoat gloss to roughness.
...
This is compatible with UE4 and more consistent with specular and transmission
roughness, even if it deviates from the original Disney BRDF.
2017-06-21 19:55:20 +02:00
Luca Rood
5c5c09439a
Clean node names and organize menus for eevee
...
This makes the node menus aware of the Cycles/Eevee distinction, and
only show the relevant nodes for the current engine. Names have also
been changed to accomodate for the new output node system.
2017-06-20 18:39:59 +02:00
Luca Rood
aaf37e1216
Implement Eevee output node system
...
This makes Eevee consistent with Cycles, by having a single output node,
and multiple shader nodes that connect to it.
Note that node systems for Eevee saved before this will be missing the
output node, and thus will show an invalid material. This is easily
resolved by connecting the shader output to a new output node.
2017-06-20 18:39:49 +02:00
Campbell Barton
b4d053efc7
Gawain API naming refactor
...
Use consistent prefix for gawain API names as well as
some abbreviations to avoid over-long names, see: D2678
2017-06-19 20:18:04 +10:00
Clément Foucault
8a10fa1c53
GPUFramebuffer: Add support to attach individual texture layer.
2017-06-19 10:47:56 +02:00
Campbell Barton
26efc7bbd1
Merge branch 'master' into blender2.8
2017-06-14 17:17:00 +10:00
Campbell Barton
2462320210
Fix buffer read error w/ 2 pass select queries
...
Also don't do second pass when the first has no hits.
2017-06-14 17:10:24 +10:00
Campbell Barton
eaadfdbdc0
CMake: add missing includes
2017-06-13 14:51:15 +10:00
Dalai Felinto
461ea375ad
Fix T51720: Depth of Field Bug - Black Screen
2017-06-09 11:56:22 +02:00
Clément Foucault
4abb3c1bc4
Draw Manager, GPUTexture: Add support for binding individual cubeface to framebuffer.
2017-06-09 01:15:17 +02:00
Dalai Felinto
7f01329a84
Small cleanup: Use ELEM and wrong identation
2017-06-06 18:57:47 +02:00
Clément Foucault
3fa2409002
Eevee: Fix compilation error
2017-06-03 01:43:25 +02:00
Clément Foucault
04992a6ffc
Object Mode Engine: Fix spot cone shader.
2017-06-03 00:54:01 +02:00
Campbell Barton
eae486f5e6
Merge branch 'master' into blender2.8
2017-06-02 15:39:29 +10:00
Campbell Barton
0d8bf4bf94
Cleanup: style
2017-06-02 15:38:04 +10:00
Clément Foucault
3bc8e88643
GPUCodegen: fix missing ViewMatrix in new shading.
2017-06-01 13:23:06 +02:00
Campbell Barton
f2cc6c9254
TexFace removal part 2
...
- Derived-mesh drawing.
- All non UV members of TexFace structs.
MTexPoly is now redundant but keeping with a dummy member,
will check on complete removal later.
2017-05-25 01:40:15 +10:00
Campbell Barton
7a9ad029dd
Remove TexFace, per-face images
...
TexFace complicates the now more popular shading pipeline by having
per-face images, see: T51382 for details.
To keep the ability to select a per-material edit-image
(used with UV-mapping workflow), the material now stores an image
which will be set when changing images in edit-mode.
This is used as a bake-target when not using Cycles too.
2017-05-24 23:38:15 +10:00
Clément Foucault
4c3382d55f
GPUTexture: Enabling R32 format for linear depth encoding.
2017-05-20 16:58:07 +02:00
Campbell Barton
07dd208209
Cleanup: warnings
2017-05-21 09:39:31 +10:00
Campbell Barton
65aab6cdae
Merge branch 'master' into blender2.8
2017-05-20 14:19:05 +10:00
Campbell Barton
81e584ed17
CMake: Use GCC7's -Wimplicit-fallthrough=5
...
Use to avoid accidental missing break statements,
use ATTR_FALLTHROUGH to suppress.
2017-05-20 14:01:03 +10:00
Mike Erwin
8d7b98bfd3
OpenGL: cleanup material shader GLSL
...
prefer vector math over scalar
prefer * over /
shorten vec3(x, x, x) to vec3(x)
use clamp, max, etc. instead of custom logic
declare loop vars as part of for loop
spacing
2017-05-19 14:20:37 -04:00
Mike Erwin
8561a2dda7
OpenGL: remove BIT_OPERATIONS check from GLSL
...
Since the upgrade we can use bitwise operations without checking. No more lame fallbacks!
2017-05-19 12:36:10 -04:00
Luca Rood
5218860607
Fix issue with alpha layering for AA dot drawing
2017-05-19 18:01:24 +02:00
Mike Erwin
ef3c255457
fix typo in interlace shader
...
introduced by recent 8adec78ca5
2017-05-19 11:09:12 -04:00