Hugo Locurcio aae565b34a [3.x] Enable physics interpolation in all demos that use physics (#1069) 10 months ago
..
screenshots fcc7d5c723 Optimize PNG images using oxipng 5 years ago
README.md fc54dd9c23 Fix README files, especially in Android IAP demos 4 years ago
camera_controller.gd 9e68af38d9 Update projects to Godot 3.5 (#827) 2 years ago
default_env.tres aae565b34a [3.x] Enable physics interpolation in all demos that use physics (#1069) 10 months ago
icon.png fcc7d5c723 Optimize PNG images using oxipng 5 years ago
icon.png.import b7e0a470c7 Update demos to Godot 3.4 3 years ago
player.gd 9e68af38d9 Update projects to Godot 3.5 (#827) 2 years ago
project.godot aae565b34a [3.x] Enable physics interpolation in all demos that use physics (#1069) 10 months ago
split_screen.shader 918a289ee2 Format files using updated file_format.sh 5 years ago
split_screen.tscn 9e68af38d9 Update projects to Godot 3.5 (#827) 2 years ago
wall_coloring.gd 9e68af38d9 Update projects to Godot 3.5 (#827) 2 years ago

README.md

Dynamic Split Screen

This sample project showcases an implementation of dynamic split screen, also called Voronoi split screen.

Language: GDSL and GDScript

Renderer: GLES 2

Note: An HTML5 export is testable here.

Check out this demo on the asset library: https://godotengine.org/asset-library/asset/541

Details

A dynamic split screen system displays a single screen when the two players are close but a splitted view when they move apart.

The splitting line can take any angle depending on the players' position, so it won't be either vertical or horizontal.

This system was popularized by the Lego videogames.

How it works

Two cameras are placed inside two separate viewports and their texture, as well as some other parameters, are passed to a shader attached to a TextureRect filling the whole screen.

The SplitScreen shader, with the help of the CameraController script, chooses wich texture to display on each pixel to achieve the effect.

The cameras are placed on the segment joining the two players, either in the middle if they're close enough or at a fixed distance otherwise.

How to use it

Open and launch the project inside the Godot engine and then you can use WASD keys to move the first player and IJKL keys to move the second one.

The Cameras node has parameters to tune the distance at which the screen splits and also the width and color of the splitting line.

Screenshots

Screenshots