[keWT] ke World Texture - Guide / Manual

Basics / FAQ

Q: How do I install the Add-on?

Standard Add-on installation. Please read the Blender Documentation.
General Blender functionality is out of scope for this guide - Please direct Blender questions to an appropriate forum.

Q: What does "World Texture" mean?

This is an archaic game dev term (probably local) to separate textures made for brush geometry ("the game world") from textures made for animated characters and other non-brush models. Often tile-able. Similar nomenclature can maybe be found in terrain/landscape systems. Also; whimsy acronym.

keWT - Render Pass Baking for Blender

Add-On Preferences

Once installed & enabled, the following options are available in Add-on preferences:

Make sure the keWT Default Setup Blend File Path is pointing to the blend file included with the zip.
Tip: Do not place the file in the Blender user directory, to keep the path correct with new Blender versions.

Option: Transfer Scene Suffix - Will be used when creating new keWT-setup scenes (see next step)
Option: Tab Location - Relocate the keWT tab, if you want

Tip: This document will go through each of the steps, but, you can always use the pop-up tool tips on all the operators and values in Blender for more condensed info as a reminder.

Pipeline / Setup Process

1. Scene Setup

OK! You are ready to render-bake your model(s) with keWT:

Choose if you want to setup selected Object, or selected Collection (of many objects):
Note: The obj/collection name will be used as texture base name. (This can easily be changed later)

Setup works using the keWT Default Setup Blend File (Defined in add-on prefs).
keWT will automatically create a new blend file with a selected object or collection using the Default Setup file.
The new file name will be the selected items name + "_kewt" (suffix defined in add-on prefs)
The new file will be in the same folder as the original file.

You can of course do this whole procedure manually, instead of one click, if you want/need to:
- Load the default scene file
- Append your model(s)
- Save scene as something different (to avoid overwriting the default scene)
- Enter paths & naming manually (see next step)

2. Path & Naming

Once the new keWT scene is setup, the full UI should be available and reference objects (empty) set up.

You can adjust Output path and naming, if the automatic picks doesn’t work for whatever reason, or if you are not using the automated process.

3. Render Settings

3A. Engine Choice

The Default Setup scene is heavily customized both for EEVEE and Cycles, though EEVEE is much faster.
Most of the features in cycles are useless as this is mostly data transfer.(GI, denoising etc.have been turned off)

EEVEE might not work for all use-cases, like adaptive subdivision for use with high quality displacement.
(For baking displacement maps Cycles is the better choice)

By default, the Cycles sampling level is set very low. Tip: Don't max it out until you need to! (It is only really useful for AO here)

Cycles AO levels have been roughly matched to EEVEE’s, so one can use either one, without it being too much of a difference (in contrast mostly - they still look a bit different, being different).

Anti-aliasing nodes are used for the data passes that do not have AA otherwise (normal, height and emissive).
You can tweak these in the Compositor if you like, or disable and do the old 2x resolution thing if you have to. (See Tips)

EEVEE’s SSAO is using overscan so that image borders wont “bleed”, since it’s a screen effect it would just fade out on the borders otherwise. Note: You still have to make sure there is mesh geometry outside the borders too, if you expect things to tile.

3B. Connect AOV Outputs

keWT uses AOV outputs for Color, Roughness and Metallic, as there is not really any other choice for layers not included in the default passes. (Light/Diffuse is not just material colors!).
The button automates the procedure to hook up all the output nodes in the materials.
If no nodes are used, value nodes duplicating the Color, R & M settings will be created.

Note: The 0-0.999 Clamp for Metallic AOV is to avoid making the diffuse-pass 100% black if set to 1.0 value.
Blender just snaps at exactly 1.0 and kills all diffuse. This will not be fixed as it is not considered a bug.
However, 0.999 still converts to 255 (white) when rendered to 8-bit texture & keeps the diffuse pass intact.
(The clamp work-around setup is part of the automatic process)

If you don’t need Color, Roughness and Metallic outputs, you can of course skip this step. (Note: They will be created by the operator even if you just use one of the render outputs. Very low overhead.)

3C. Height Range

The "Use Negative Range" option will determine how the Height Range value is used to set the depth for the height map output. This is also represented with a 3D reference box empty (updated when the value is changed).

Negative Range ON:
The value will be divided in two, for 100% black to be at the negative half min value, mid level gray will be at world space Z0 and 100% white will be at the positive half max value.

Negative Range OFF:
100% Black is at Z0 and 100% white will be at the Height Range value (in world space Z-axis).

3D. Area Size

This value sets the physical size in meters (in X & Y) that will be rendered by the camera, framed by the 3D reference box (that is updated in real-time when the value is changed).

3E. Resolution

Sets the resolution used by the camera for the assigned area.
Pick from the preset buttons or enter a custom X & Y resolution.
You can use a non-square resolution (e.g: 512x1024), but, power of two only.

4. Render

Use when ready to render-bake!
This button is a custom render operator that is necessary for keWT to operate properly:
Do not use the standard Blender rendering operators.


File Name Suffix Setup

Here you can adjust what files should be output and how they will be suffixed.

Link/Unlink nodes from the keWT Layers group to the keWT Render Outputs as you see fit.

Do not change passes in the Blender Properties > View Layer Properties / Passes.
The output paths and naming should not be changed here, use the keWT operators.

Only change the suffixes in the keWT Render Outputs: “_normal” to “_N” or whatever.
The script needs the last underscore to be before the suffix. Do not use more underscores after these. ("_normalmap" not "_normal_map".)

I left helpful notes in the compositor for the key points, should you forget (or not rtfm).


Customize the Default Scene

You can, of course, treat the keWT default scene in a similar way as the Blender default scene.
Customize defaults to your liking; file name suffixes (as mentioned above) as well as outputs, file formats, resolution etc.

You can also tab to enter the keWT Layers Group and customize anti-aliasing values (and whatever else you feel comfortable messing with), or removing them altogether should you prefer the old 2x render resolution method.


Use instances/linked duplicates, or just simple matching geo, around your mesh (as needed) to ensure AO pass is continous, and not have dark borders or other tile-breaking results (which are likely to occur otherwise).

Geo-Nodes / Custom Shaders

Not tested, but should be a great fit, making such a keWT setup even more substantial.

Displacement Maps

Use Cycles. There will be banding issues with EEVEE, and Adaptive Subdivision (crucial for high quality displacement) is only available in Cycles.

Material Settings for Displacement:
Remember to set the option under Settings / Surface to "Displacement Only",
as it is "Bump Only" by default! (Needed when using Adaptive Subd Shader Displacement!)