Hugo Locurcio 4d49bbd1b8 Update demos for Godot 4.4 4 bulan lalu
..
screenshots 682b933dac Improve dynamic split screen demo (#815) 2 tahun lalu
README.md b4c73f4888 Fix README links to asset library (#1078) 11 bulan lalu
camera_controller.gd bac1e69164 Use static typing in all demos (#1063) 1 tahun lalu
camera_controller.gd.uid 4d49bbd1b8 Update demos for Godot 4.4 2 bulan lalu
icon.webp 63d1cd9a60 Use 128×128 WebP icons for all demos (#885) 2 tahun lalu
icon.webp.import 63d1cd9a60 Use 128×128 WebP icons for all demos (#885) 2 tahun lalu
player.gd bac1e69164 Use static typing in all demos (#1063) 1 tahun lalu
player.gd.uid 4d49bbd1b8 Update demos for Godot 4.4 2 bulan lalu
project.godot 4d49bbd1b8 Update demos for Godot 4.4 2 bulan lalu
split_screen.gdshader 682b933dac Improve dynamic split screen demo (#815) 2 tahun lalu
split_screen.gdshader.uid 4d49bbd1b8 Update demos for Godot 4.4 2 bulan lalu
split_screen.tscn 4d49bbd1b8 Update demos for Godot 4.4 2 bulan lalu
wall_coloring.gd bac1e69164 Use static typing in all demos (#1063) 1 tahun lalu
wall_coloring.gd.uid 4d49bbd1b8 Update demos for Godot 4.4 2 bulan lalu

README.md

Dynamic Split Screen

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

Language: Godot shader language and GDScript

Renderer: Compatibility

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

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, then use WASD to move the first player (in red) and IJKL (or arrow keys) to move the second player (in blue).

The camera_controller.gd script sets parameters to tune the distance at which the screen splits and also the width and color of the splitting line.

Screenshots

Screenshots