Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
This commit separate the depth texture into another texture array.
This remove the need to output radial depth into alpha.
Unfortunatly it's difficult to recover position from the non linear depth buffer when applying reflection without adding a bunch of stuff.
This is in preparation of SSR planar reflections.
|
|
- Encode normals for other opaque bsdf so they are not rejected by the normal facing test.
- Early out non reflective surfaces.
- Add small offset to raytrace to avoid self intersection.
- Fix fallback probes not appearing.
|
|
This way we don't have float precision issue we had before and we save some bandwidth.
|
|
|
|
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.
|
|
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.
|
|
An id is given to each glossy node in order to determine which specular lobe is using ssr.
|
|
Add utility function to get the nearest hit
|
|
For users that means you can tweak shaders in the nodetree and things
are way faster. This is a huge improvement, particularly in
systems that have no shader cache.
From the code perspective it means we are no longer re-compiling the
shader every time a value is tweaked in the UI. We are using uniforms
for those values.
It would be slow to add that many uniforms for all the shaders. So
instead we are using UBO (Uniform Buffer Objects).
This fixes the main issue of T51467. However GWN_shaderinterface_create() still
needs to be improvedi. When opening a .blend all shaders are compiled once, so
optimizing it will bring a measurable impact.
========================================================================
NOTE: This breaks update of Cycles material upon nodetree nodes
tweaking. It will be fixed separately by depsgraph, once tackling T51925
(Animated Eevee values slowdown).
The idea is to make Depsgraph update more granular. The XXX TODO in
rna_nodetree.c will be tackled at that time as well.
========================================================================
Reviewers: sergey, brecht, fclem
Differential Revision: https://developer.blender.org/D2739
|
|
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.
|
|
|
|
This introduces a new transparency pass.
It bypass the radial distance encoding in alpha for the transparent shaders.
|
|
Hashed Alpha transparency offers a noisy output but has the benefit of being correctly ordered. Noise can be attenuated with Multisampling / AntiAliasing.
|
|
This was leading to multiple crashes when freeing the lamps or
materials when opening old files.
Follow up on b50839038d6b3d2.
|
|
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.
|
|
|
|
This default will prevent more errors in the future.
Also compare mode is less used nowadays.
Fixes T51904
|
|
Add Diffuse BSDF, and Glossy.
Also Use World normal instead of view normal as input.
|
|
This enables texturing of the noise via procedural or baked textures.
Note that it gets quickly really heavy.
|
|
|
|
|
|
Only volume scatter is implemented for now.
|
|
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).
|
|
|
|
|
|
Only use clearcoat version if there is something linked or if the clearcoat value is not 0.
|
|
|
|
This fix the behaviour of the light path node that separates the probes background from the viewport background.
|
|
|
|
|
|
Lots of things not working yet but it's comming.
|
|
We do not need it anymore because we do not use glu anymore. And we need full range for HDRI Lighting.
|
|
|
|
Should fix some issues with missing attributes in Eevee.
|
|
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.
|
|
Needed so we can tell which custom-data layers to use from the mesh.
|
|
This method is very cheap and inaccurate. This will fill the gap untill better model is supported.
|
|
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.
|
|
|
|
Now it matches world cubemap perfectly.
|
|
Save radial distance to camera in alpha channel of the planar probe.
Use this distance to modulate distortion intensity when shading the surface.
|
|
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.
|
|
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).
|
|
|
|
|
|
This is compatible with UE4 and more consistent with specular and transmission
roughness, even if it deviates from the original Disney BRDF.
|
|
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.
|