From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

Blender Internal Nodes Refactoring (WIP)

Introduction

Blender Internal node system lacks many features that already exist in Cycles Render Engine. Furthermore, there are some nodes and node sockets that do not work as expected. This node system is used not only in BI itself but also in real-time rendering in Blender Game Engine. Therefore, it needs serious changes and refactoring.

List of improvements

Cycles Geometry node support
Reasons:

  • Current BI Geometry provides outputs in different spaces. For example, Global output gives position in World Space but Normal output gives normals in camera space. There is no such ambiguity in Cycles Geometry.
  • Current BI Geometry has the Vertex Alpha output which is never used as Vertex Colors have only 3 components.
  • Cycles Geometry has several useful outputs with no analogues in Blender Internal. For example, Tanget, Incoming, True Normal.

UV node support
Reasons:

  • Blender Internal currently supports the UV output in the Geometry node but the problem is that it is given within -0.5..0.5 range, which is not intuitive for the artists. In Cycles it is 0..1 range. The comparison of both render engines with the same UV is shown on the image below.

    BI vs Cycles UVs.jpg
  • UV is not quite a characteristic of the object's geometry. So, having a separate node would be more logical.

Vector Transofrm node support
Reasons:

  • There is no easy and fast way to change vector space right now which is a common operation in the real-time 3D.
  • Mapping node can partially solve this problem but it doesn't support matrix transformations and has a non-working Point switch. So, it can correctly affect only textures and vectors but not positions.

Normal Map node support
Reasons:

  • It is impossible to add Normal Map texture without an additional Material node right now.