09413fad12
Eevee: Fix glossy node roughness.
2017-07-24 15:28:27 +02:00
1d00a66f5d
Eevee: SSR: Encode Normal in buffer and add cubemap fallback.
...
Normals can point away from the camera so we cannot just put XY in the buffer and reconstruct Z later as we would not know the sign of Z.
2017-07-24 15:28:27 +02:00
2a84331f02
Eevee: SSR: Output ssr datas to buffers.
...
Output in 2 buffers Normals, Specular Color and roughness.
This way we can raytrace in a defered fashion and blend the exact contribution of the specular lobe on top of the opaque pass.
2017-07-24 15:28:27 +02:00
04f8e1b21c
Eevee: Ssr: Add ssr id to glossy nodes.
...
An id is given to each glossy node in order to determine which specular lobe is using ssr.
2017-07-24 15:28:27 +02:00
474454be39
Cleanup/rename etc. dashed line shaders.
...
Goal is to make them more modular, to allow more variants (variable
single-color, thickness, ...) to be added without having to
copy-and-change-one-line of whole chain of shaders.
2017-07-13 16:47:58 +02:00
ec9330d206
Eevee: Fix default closure to match cycles.
2017-07-11 12:39:35 +02:00
d35c24f87b
Eevee: Transparency: Add support for blend ADD and MULTIPLY.
...
This introduces a new transparency pass.
It bypass the radial distance encoding in alpha for the transparent shaders.
2017-07-11 12:39:35 +02:00
05bef13b53
Eevee: Add support for Alpha clip and Hashed Alpha transparency.
...
Hashed Alpha transparency offers a noisy output but has the benefit of being correctly ordered. Noise can be attenuated with Multisampling / AntiAliasing.
2017-07-11 12:39:35 +02:00
ba256b32ee
Fix T52001: material draw mode principled BSDF artifacts at some angles.
...
The default anisotropic tangent computation could fail in some cases,
leading to NaNs and artifacts. Use a simpler formulation that doesn't
suffer from this.
2017-07-08 23:42:20 +02:00
Dalai Felinto
e960cecdf8
GPU: Silence warning of potentially unused variable (NormalMatrix)
2017-07-07 15:10:09 +02:00
e5462421c0
Eevee: Add support for common BSDFs.
...
Add Diffuse BSDF, and Glossy.
Also Use World normal instead of view normal as input.
2017-07-06 13:32:19 +02:00
8b78a8d9bc
Eevee: Volumetrics: Add support for Position Coordinates.
...
This enables texturing of the noise via procedural or baked textures.
Note that it gets quickly really heavy.
2017-07-05 18:21:06 +02:00
f8aab24fb5
Eevee: Volumetrics: Add Volume Absorption node.
2017-07-05 18:21:06 +02:00
fc8f6e8f7a
Eevee: Fix Closure define.
2017-07-04 11:40:12 +02:00
b09052002c
Eevee: Add support for volumetrics in node tree.
...
Only volume scatter is implemented for now.
2017-07-03 22:08:33 +02:00
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
eb420e6b7f
Fix T51957: principled BSDF mismatches in GLSL viewport.
2017-07-02 18:37:50 +02:00
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
cdb07ff30e
Eevee: Fix broken default coordinate (reported via IRC by Dalai Felinto).
2017-06-29 20:23:06 +02:00
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
95797336f5
Eevee: Prepare support for future Anisotropic shading.
2017-06-29 17:08:13 +02:00
3888227a7b
material Glsl: Fix tangent with new orco.
2017-06-29 17:08:13 +02:00
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
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
f0863f2a80
Merge branch 'master' into blender2.8
2017-06-26 13:27:54 +10:00
28ff238c45
Eevee: Planar reflection: Fix normal deformation for background pixels.
...
Now it matches world cubemap perfectly.
2017-06-24 05:24:59 +02:00
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
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
968093ec2f
Fix T51862: principled shader GLSL artifacts in ortho mode.
2017-06-21 21:31:08 +02:00
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
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
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
3fa2409002
Eevee: Fix compilation error
2017-06-03 01:43:25 +02:00
04992a6ffc
Object Mode Engine: Fix spot cone shader.
2017-06-03 00:54:01 +02:00
eae486f5e6
Merge branch 'master' into blender2.8
2017-06-02 15:39:29 +10:00
0d8bf4bf94
Cleanup: style
2017-06-02 15:38:04 +10:00
3bc8e88643
GPUCodegen: fix missing ViewMatrix in new shading.
2017-06-01 13:23:06 +02:00
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
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
5218860607
Fix issue with alpha layering for AA dot drawing
2017-05-19 18:01:24 +02:00
ef3c255457
fix typo in interlace shader
...
introduced by recent 8adec78ca5
2017-05-19 11:09:12 -04:00
648f2a61ad
OpenGL: convert old texture2D calls in built-in shaders
2017-05-19 11:09:12 -04:00
fa47437426
OpenGL: clean up smoke & fire shaders
...
TODO: swap gl_Vertex for vec3 pos, update smoke setup code
2017-05-19 11:09:12 -04:00
f6ffe12ddb
OpenGL: convert old texture2D calls in FX shaders
...
And one texture1D call.
2017-05-19 11:09:12 -04:00
4c5e9d7c0d
OpenGL: convert old texture2D calls in material GLSL
...
Modern GLSL simplifies texture sampling functions. Info about 1D, 2D, 3D, Cube, etc. comes from the sampler type.
2017-05-19 11:09:12 -04:00
c409acd842
Cleanup: removing dummy legacy dashed line shader.
...
Dashed requires geom shader, which was not available with older OpenGL,
now that we are on 3.3 we do not need that dummy workaround anymore.
2017-05-19 09:42:30 +02:00
1f46da922a
Merge branch 'master' into blender2.8
...
Conflicts:
source/blender/blenloader/intern/versioning_270.c
source/blender/depsgraph/intern/depsgraph_tag.cc
source/blender/editors/mask/mask_draw.c
2017-05-19 09:36:14 +02:00
242a044bd1
GPUMaterial: Add support for tangent node.
2017-05-18 16:05:03 +02:00
00164f3c70
Correct own error using u32 for back-buffer select
2017-05-18 22:33:34 +10:00