Blender Git Commits

Blender Git "eevee-rewrite" branch commits.

Page: 5 / 8

May 27, 2021, 02:52 (GMT)
World: Add static default world

This is a small convenience. This let the render engine use this
default world if scene has no world.

World is black to keep the same behavior as before.
May 26, 2021, 00:23 (GMT)
EEVEE: Fix ModelMatrix in nodetree and wrong bump map output
May 26, 2021, 00:02 (GMT)
EEVEE: Rework multi material handling

Shading groups are now created by the material_array_get functions
instead of passing a reference to be filled later. This avoids having
to wait later to maybe create a sub shading group.
This also simplifies different geomety type handling.
May 24, 2021, 18:45 (GMT)
EEVEE/GPU: Nodes: Fix some BSDF nodes

Fix glass, principled and eevee specular shaders.
May 24, 2021, 18:43 (GMT)
EEVEE: GPencil: Add basic support for gpencil geometry

This adds support for rendering gpencil objects.

There is a lot of features to implement specially the ones requiring
per object uniforms.
May 24, 2021, 16:13 (GMT)
EEVEE: Material: Fix shader uuid to material type conversion
May 24, 2021, 16:12 (GMT)
DRW: Shader: Fix deferred compilation abortion

The case where a shader was queued but then requested as non deferred
was not handled correctly.
May 23, 2021, 00:42 (GMT)
EEVEE: Add back split sum BSDF approximation

This improves the surface appearance of most bsdf.
May 22, 2021, 22:39 (GMT)
EEVEE: Material: Use weight to random sample closure per types

This adds a new closure selection method.

- In a first pass, weights are accumulated per output type (diffuse,
reflection, refraction).
- A random threshold is then generated before evaluating the BSDF nodes
again.
- During the evaluation pass the random threshold is decremented until
it reaches 0. At this moment the current BSDF is sampled.

For this to work, I splited the evaluation and the weighting in two
functions for all BSDF. The `*_eval` nodes are generated as dangling
nodes from the graph and only serialized after the rest of the graph.
May 22, 2021, 01:05 (GMT)
GPUMaterial: Add recalc flag workaround

Recalc flag on Material ID being unavailable to render engine, this
adds a simple way to detect material update by detecting shader creation
or update.
May 22, 2021, 00:55 (GMT)
GPUNodeTree: Add weight tree inversion

This constructs a "mirror" nodetree that feeds the closure "shader"
nodes with their respective final weight.

The tree is mirrored using simple math nodes. This is quite messy but
this is the only way to proceed without introducing special nodes.
The other issue with this method is that inputs are all uniforms even
for unplugged socket on temporary math nodes with add bloat to the
shader uniform buffer structure.

Only the part relevant to the weighting is duplicated. Other connexions
with the shading tree are reuse.

All shader nodes are updated to receive a `Weight` hidden parameter.

The original shader mixing tree is preserve to let the choice of using
either way to weight the output.

For now this is only done for the output nodes. This will need to be
extended to Closure to RGBA sub-tree.
May 21, 2021, 15:28 (GMT)
GPUNodeTree: Move closure socket implicit cast to ntreeGPUMaterialNodes

This reduces complexity of weighting closure in further dev.
May 21, 2021, 15:25 (GMT)
GPUNode: Remove ssr_id and sss_id

These are not useful anymore.
May 20, 2021, 21:51 (GMT)
GPU/EEVEE: Refactor codegen and nodetree support

This is the first step towards the new evaluation scheme of EEVEE
closures.

This commit contains:
- Removal of GPU_SOURCE_BUILTIN type, prefering global instead. This
avoid many boilerplate code since most of the old builtins are now
datas that are always present (i.e: view matrices, normals).
- Rewritting of codegen in C++ to use `std::stringstream`.
- Added a callback to let engine decide what to do with codegen code.
This remove a lot of needs for defines because of code order
dependency. The engine can insert the nodetree code in custom ways
to create advance effects (i.e: add displacement or vertex lighting).
Engine now returns final shader strings.
- Closure nodes evaluation replacment is a placeholder for now.
May 18, 2021, 13:39 (GMT)
EEVEE: Material: Add basic material logic

This is a port of the old material grouping. This is a bit more
clean as we use containers for each passes and other structures.

Nodetree is generated without major error for simple materials but
it is not yet used as closures are not outputed.
May 3, 2021, 14:37 (GMT)
DRWShaderLib: Add better debug output from missing lib
May 3, 2021, 14:35 (GMT)
EEVEE: Implementation of volume rendering

This adds the transparency and volume handling in the deferred
render pipeline.

Implementation is still unfinished.

To have better naming convention, I renamed object shader to surface.
April 30, 2021, 13:57 (GMT)
EEVEE: Initial implementation of deferred shading

This introduce a fat Gbuffer layout that groups closure data in groups
of similar BSDF. The goal is to have at least one sample for each
group to avoid too much code complexity and expected worse performance.

There is a lot of room for buffer reuse to reduce memory usage but it is
not considered a priority for now.
April 30, 2021, 13:56 (GMT)
DRWTexture: Add missing integer render-targets format support.
April 27, 2021, 11:45 (GMT)
EEVEE: Add specular layer to temporary default material
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021