antichamber-at-home/addons/portals
2025-07-08 08:21:16 +02:00
..
gizmos Basic stairs and player setup 2025-05-13 11:12:06 +02:00
materials Add a special editor-only preview material 2025-05-13 14:16:39 +02:00
scripts Update portal plugin to 1.0.1 2025-07-08 08:21:16 +02:00
CHANGELOG.md Update portal plugin to 1.0.1 2025-07-08 08:21:16 +02:00
plugin.cfg Update portal plugin to 1.0.1 2025-07-08 08:21:16 +02:00
plugin.gd Basic stairs and player setup 2025-05-13 11:12:06 +02:00
plugin.gd.uid Basic stairs and player setup 2025-05-13 11:12:06 +02:00
README.md Update plugin 2025-05-20 21:22:18 +02:00

Portals 3D

This plugin enables you to easily create seamless plugins.

Documentation

For documentation about Portal3D, see the portal script itself. Everything is properly documented and viewable in the default documentation window. Go to the script editor, click Search Help in the top bar and search for "Portal3D".

For everything else, there is this README.

Guides

Customize portals in the editor

The portal mesh has a custom shader material assigned to it at runtime (defined in materials/portal_shader.gdshader), but in editor, it uses a regular material -- find it at materials/editor-preview-portal-material.tres. You can edit this material to customize how portals look in the editor (in case the default gray color blends in too much).

Smooth teleportation

The Portal3D script provides a mechanism for smooth teleportation. In order to be able to create smooth portal transitions, you need to put a clipping shader onto all meshes that are supposed to participate in the smooth teleportation.

How to convert a regular mesh to a clippable one? Like this:

  1. On your material, click the downward arrow menu and select Convert to ShaderMaterial
  2. Include the shader macros and use them to inject clipping uniforms, the vertex logic and the fragment logic.
shader_type spatial;

// ...

#include "res://addons/portals/materials/portalclip_mesh.gdshaderinc"

PORTALCLIP_UNIFORMS 

void vertex() {
 // ...
 PORTALCLIP_VERTEX
}

void fragment() {
 // ...
 PORTALCLIP_FRAGMENT
}

And that's it! Now look for DUPLICATE_MESHES_CALLBACK in the Portal3D script, you are ready to get going with smooth teleportation!

Gizmos

This plugin includes couple of custom gizmos. One gives a connected portal an outline and the second one visualizes portal's front direction. You can configure the color of both gizmos in Project Settings / Addons / Portals or turn them off altogether.