From 682b933dac07a8952520573aeda39e2dfc368d05 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Tue, 17 Jan 2023 21:41:02 +0100 Subject: [PATCH] Improve dynamic split screen demo (#815) --- viewport/dynamic_split_screen/README.md | 17 +++--- .../dynamic_split_screen/camera_controller.gd | 1 + viewport/dynamic_split_screen/player.gd | 2 +- viewport/dynamic_split_screen/project.godot | 3 +- .../screenshots/dynamic_split_screen.webp | Bin 0 -> 56598 bytes .../screenshots/splitscreen.png | Bin 13731 -> 0 bytes .../split_screen.gdshader | 55 +++++++++--------- .../dynamic_split_screen/split_screen.tscn | 52 +++++++++++++++-- 8 files changed, 84 insertions(+), 46 deletions(-) create mode 100644 viewport/dynamic_split_screen/screenshots/dynamic_split_screen.webp delete mode 100644 viewport/dynamic_split_screen/screenshots/splitscreen.png diff --git a/viewport/dynamic_split_screen/README.md b/viewport/dynamic_split_screen/README.md index 42686d76..97ae4bb7 100644 --- a/viewport/dynamic_split_screen/README.md +++ b/viewport/dynamic_split_screen/README.md @@ -3,12 +3,9 @@ This sample project showcases an implementation of dynamic split screen, also called Voronoi split screen. -Language: [GDSL](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html) and GDScript +Language: [Godot shader language](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html) and GDScript -Renderer: GLES 2 - -Note: An HTML5 export is testable -[here](https://benjaminnavarro.github.io/godot_dynamic_split_screen/index.html). +Renderer: Forward Mobile Check out this demo on the asset library: https://godotengine.org/asset-library/asset/541 @@ -38,14 +35,14 @@ 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. +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 `Cameras` node has parameters to tune the distance at +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](screenshots/splitscreen.png) +![Screenshots](screenshots/dynamic_split_screen.webp) diff --git a/viewport/dynamic_split_screen/camera_controller.gd b/viewport/dynamic_split_screen/camera_controller.gd index da5c2a4a..ee0575bc 100644 --- a/viewport/dynamic_split_screen/camera_controller.gd +++ b/viewport/dynamic_split_screen/camera_controller.gd @@ -32,6 +32,7 @@ extends Node3D @onready var camera1 = viewport1.get_node(^"Camera1") @onready var camera2 = viewport2.get_node(^"Camera2") +var viewport_base_height = ProjectSettings.get_setting("display/window/size/viewport_height") func _ready(): _on_size_changed() diff --git a/viewport/dynamic_split_screen/player.gd b/viewport/dynamic_split_screen/player.gd index d2b091d6..a199d839 100644 --- a/viewport/dynamic_split_screen/player.gd +++ b/viewport/dynamic_split_screen/player.gd @@ -3,7 +3,7 @@ extends CharacterBody3D # Moves the player @export_range(1, 2) var player_id: int = 1 -@export var walk_speed: float = 2.5 +@export var walk_speed: float = 2 func _physics_process(_delta): diff --git a/viewport/dynamic_split_screen/project.godot b/viewport/dynamic_split_screen/project.godot index f95aa660..0995b189 100644 --- a/viewport/dynamic_split_screen/project.godot +++ b/viewport/dynamic_split_screen/project.godot @@ -82,6 +82,7 @@ common/physics_ticks_per_second=120 [rendering] -anti_aliasing/quality/msaa_3d=2 +renderer/rendering_method="mobile" environment/defaults/default_clear_color=Color(1, 1, 1, 1) +anti_aliasing/quality/msaa_3d=2 environment/default_environment="res://default_env.tres" diff --git a/viewport/dynamic_split_screen/screenshots/dynamic_split_screen.webp b/viewport/dynamic_split_screen/screenshots/dynamic_split_screen.webp new file mode 100644 index 0000000000000000000000000000000000000000..091d585068c6cb0429780c47cfcafd4f276d9757 GIT binary patch literal 56598 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

xA{>u60Au!z9OUUyDq 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 z zYIu&7Z9%&cTz$let4idpdvBuLFG^^OP({NmoA#s2d)g~3zt-eFwm@r}7p{<|v^fow z{;*gX%8%(r6B;F$Czu986>qf8Nh|$p)<%dY2Y1^qwY~v;rQra~rj-b}c}%?jJOYNU z2;?^Kqe@31?WX2+=XlbawA>*NAV0sHw!lkUq1}ekCfK(#{a7DbEo_m#wX8roDT;Rr z)hKA{`HLLRaj0#p+9jQu8u;q(@Pc!ig59BO7B-nA%xJZ&rgoKTwA?dIPmZpCkIP;s zu+t;~fe?Zfw1u{0Iv{8o!Jj(Lkbg*DI#%b?OHsTKFBzyD`LVYg+}5-E0?*~ql2l}O z5+uNA`hg4!E3)(RGLG~5rUyQx6k3MwUH?8m^B{mckNX1HMmy=p?DQt@FMKPQeCu6JVSL$`BG}jUY5*^L|nY z?)Wnoe-OTJ9sn2j-PsPSpaWWI5QD*E7}%2^27Z-8I4M9*@<`<|37&H8#q2*;s# z3&?frx5b=+B$14EHg^ZW!2{)4HROFuA{$BeE_);E-y5chd>)M9}HhMpjc~5Bco@_%tYbzR;eU_&%ER0Et3x z2XlN5Arw8NC5)vB5q8$UC(oJ(Liz)hXacOT_{KsUByU_H#P9ZjI5vbQjx)L z-_e(;@}qGZ%2t0UgGg-i&6$p8`~=K&9^mx!ewB!bH@_LkpL0hOqnz?C)soz&IBb>Y!}rq-!C?xYwx$PGrw3Z05dz>inqz#Juz&}s)GKO5uOc~L z+dBNrrT)#g`qTPx#l0kZL8BTNvJnV6XXoK-NIER;g;EdPAkU4rVL7hBjscwHD6_pjT47{cY#?6W?AxnTcNeUc5~w(x`Ig4kjNtz6oTe*etcLHZKLO zLL}i0(5+p-}L_Yq}3PR zk)bPeh0KGtlk};I(oa#F4};&(?f8p07govs8V6IUa6H9 zy}C|ULNM%XSeFYwGg`T-uPlTRlGzWnc_}SH#Lyi(fMLyI@80b@=T#suuK?yt&U=O6 z@F3&7R}#RcyYHe)U#4!eP*Cw65_r2@nwUM$cXdtF##crAFbRG_wkW zNNW%a;wQGij7rx_Mo&x`?%080&O)Vu5P(iNxm$sebM^Uri{$;>uw3RIS?} zH}C{Bz>7b`9(X?}Yng7>D=PLFjUFNRT27|QI~Y5E=Ac7>C`(E3*gRLrSTV!on`1*8ELgidWH>zp0^d4haz_nn?EpDEHCZd zlm1t0QWgF(9ePg}fw>T4Ze%(jWm@N zr3y-AxVjdcd0<}G|5k9zkc5YULhsYrOT)OV8z?qEub-5osi8Ksuab|Nt~)F5u0kDN zY$Mk~(*wz?ktvoqljrA`3z}KrR)Ao`u{C1SU!-=F`uS;<`Os z!9@^BzU5p?YlC|lcM}uz(%uTto&GU-0e!ZDn+%50jh{1ZhFW2$wZ!Q8EPK52T;C4II zF9K7EqYO(WWgS{EEU)*=8k%1(EI!do>+J$CPO3JGU6OZ7w(8I#-=@^-Mi*jgBsldL z?)VJq1PLCIITFUQ2!-hNH=`3zR0~=eNdHoar|>q3Ps0?pBoeeuRg3~mv^X6_RXVv> z+vUfdY@A?7>1feMFdr#vmR60x_{q^MPQ#OYNhm1asyEb3MG{JPUFGBDw7M}`_&DVN z%pfhIHqmf9o?36c0O67$i=U|!=4OdRnjX5FD+-{Nx53;#L<12lBBHad?xx|X%*j=Q zEnn6eQNpnFyA2y_bLn3fwE4Iz4oAp@x|$q1t|S!3BA@SM6&%O1;}jHw6SaN%xCt=G zb#y&>A+xGS19AKRur(P&qG%SsyICi5)XOlgrjL*Qb#ZtRry&QmxOBc?V2>*RUsIwg zkN_zvaEN&SawVrU z7k1OH!hgu$^!;vq;Q}Ek32LRg6}iPhE*FoY0hAVoV{Yzj1hwAx6EVd^?}Z$^cCcp; z0fjP=tvd#Y3|QYA4L`+m*;P|<2b)zexdP{V9LRtjVF{Ks&h|%L-8ol3{M@AO1;1@KOPt& zUfIi(rI3Q0g1eg%QJbU(71?YI(<*uTRb7P+KMU3&`_0?yIpgw|?)N5V_3YUSZYgVn zvd#69%@A@3%E{C&1uIH*GN@nelYSw~IpCH1Tm(e|t07`m-X$$$ATQt+*wik7BD@>q z(>0ZJw#S}oUE(}DIYHt`n)sMT*1AmW^$eV_9#Z{z@Dw(l-PVoKtVfD zn8m6d3PN{0lG8~Ks2e{}Yly}A#b;AxRWY@K zaZZnf$(9NHK4AHPTjr~=YF9Y(o5T=$ha-aVGy^I`xK8(@h%eR)yDj20n#B$0YlIum z=*8ytal#Ps{-u1j$3C1xmc1_^?&{f;ElL~;i6!iEAfaa~ILz2isDK$2*R(#S&~MWe zFHiOq8#%g>jiMUtga00#wf?v=p9ls{KtH8y8stM1w{*YSCx?Gm8?g_(RMqXGF{;({ zXkI^3;=N01$sX{;2=V^L`{yw--&cyfu{opw_FgQdimY=hdZom2p0MFON!|YFg$L%@ z3T}FbM!se)w~%s13P`JjpRM4sY3PHSgEOhSU0!%B8Z6INa5DrbZKqqiD?_xUDuqRp z#5cFk%o*rS#Guq_)8A?gNG`cN8+Uk!jNOK(+NPB^A8m!KKK5g8zU8%b?~5Hr5nfBB zlES0`I5vpg;URK{mRXA5Z5F?0$wfKCIa+hQIO5Qoy88VM0|vzxF%7`duElarXUm7` zZ6jF#dTsO7`m(3}(+}GO^L$>L<5}iVMfY(9Evz#gejeVyJq$O8SM%imR&eaU(c87l zknDuf0E~_BB-i|=OQH^vw&5CjRmD5XgDcLzSulpT1F2F3WTf;8C&xVA7J87hvqb}N zcIliwc>2H}rS{>mSKn?fS2O@4$L=U@lXer?GZgQSMU`S9hf8-jg8^kaB*yI{B z1R$BB0eDI2+%~h7d>Mmw$x)ZS(4wJkzoRF#9tHaz__uxWp~$e0M8cJg0PLtHk|P!X z_>XIs13%N1yIX1dHm3}+0GOC?_lM&s)ZiS~X$0r17yzmjoyYewTGVF!rQUBV3j zu>YJR6<3aI7l5I{`u^Ys0QkV%BM%8VcDqrLwHr&6jeeV@6n?|yoFn0PhqH0$LkV6> zD#cJ{e@GUgCe8B~)xTHVL}A0Hn)Z>3oda8Gfmy0LaGoAddA8lMS?kqUejPD)#~%6X z&@%PIAcX{Wz8WYY60@n%>uvcGS9;}w4Yn6Unv3D7QD9HJJ4=MnvR@+SgqHeDd@9|Ikjy0-K&JN^?CQ{m7TFXz!;@qc=AbLpimI8O%k4`+Txroz*; zVI|-C@`o-j`N<2tu+fME7S%depRq`yz{bdwd}i}MpT%#zzW#*kk(7v#Uh0g=pKj|G z#wDOJ?>ZZ9y(W*dbOj_Zle;BdfqdL5{oUCfKz9zZ@TM+5bIIp7DFFa(#$)GAJ4g)V zN=cO7OS`{%j(&DaI!`d}4YgrQTaUUg=eP8D1TU>35qfv-m|9TuDym2(!A)#Nt>h_} zWh!gGt}Ca{{fZor01%Gx_6@yfO}f zTHRgWKL&1c0OEQDRx?qzKR#6=T*^C1kk4t$>2qF@B_$Ykf<*$>H@3)nvMw9iOJCqW zeo6f4R$VsGA@WEoz($P*kT_##+5PhTr{fPWQN`V_l41z}5S6PSBiwVmP$ajcgCX(@ zmigIDx+n*yA%%oRC4pzqUTm_QOwq>n@(cYdFRA`GsTBhPM-wzAjWGZQ4*3fGVU|4Z z0FNc87!6ZkY5_ox+$b46P2n>t9j)RBP_m_A$_rGU6k6{PTra?5U`3M&%3^ZnTUO_# zFJ%4;^arWv@^LUA@9*``&I7i``ByZ5Gw#&5E=z$9a&Q5*I{*MSKo?}>x;JK8Ax@lG zCPG&1aDHL<>59uGE=~dx5YkcwpyTOkFZ7tb-nHlD+b`nOnQ@-n>nr8KhS2?j19>*x z=;iTi=`t8+EHcUN@dP}orQ>?(lZ=i-_<*fiaokqMJu-N`@>9g~q@)6HrG)_U4Cm3h zv@FfG&D+jd-ghF9lA{5fem>4*bPxtL7|$Wn&@?}J7WtXMOBD$L zK2CColSf>;wvIJX7EULTc}c$TTpinzmIyF~wo#tucmf8G`1r&}W zCpM=gaF?06QIZb@fP4coF4|!S4#5}2FXrrV1o%RrNCX8ifMe4_7mCjl;+l zpu|a}U<4N>DQBoWReqHc;GN153L(8dx#%gehV`+mYRRxGn*L|{%*)c_gX;4+EO^#Y z^A&s#KL{`cOw#%6y`&r%KR|7G5;+P%&o0_gxz=V@OFJDKO;H9~nP&2b@QaF{8F8@! zaOv^_A%*0|Fl7<$4P;Y>DUd~fCTngS#)~=ik~Eu)%%=w#G(rMj*;>2DNO{B`k`JAb zv+#xG=WS`c02T{88Iz(5Xh#FUX1y6Qo9O@H;7eHe#wL5^B+=DkvUx$GJLQhbnN>exOk7}9mzCGOrQ(m6RY## zaihw$l8!tOPgCF~2W>$&$tJ+Qgl3~MO;PGwNHWO5X3Ep8&noG1g1^*KkOY?m5!dht zTcS^9g_lO>?dqA2;hgJG(_^!A-Da#60KdRtxO=PJd7B2lqWqB_AHY>b3Jk`nUP;$O z^NG=DH0p;ZZ2u1;hC@6cfP!5OEpkZet|#rS`GhhhHq(=f*j94iAy)_tt2gh)a9kIh~ z#{VNT6_W_?paISXw8!7-HRIAzWOxUL#8O~z<~#mmr~BgpL~tv;!E~7zWFqUcbuTZb zi`Ujc@=FAS>+TY_f_Dj2a2{xj8t_Ex;EdqDcCBrpjnZ1%ItZ#v*4Wqwe+z2lJ1Z{4nRycn@yoRKm(2d>0P4UUvYxyDjh!w z*-nQ6zuM;d;Trxlo4>Lwghzc2A>lzRIE2<-F+fKrc2j#U;XN%OZG$!TCfs_6J7d)$ zpPXQP?LJs>t9xX?1_{WZxWVh<)Nt$ahr@B%1ha(0S zoF*$whnDx8{3j&X0Ud!R~3a9UP8% z@0Bh)VU5do186-Ff5!4k3_RrUQlE4J=SX7+x}^qQ9{b83(V&)`uwcLoBU#_y z?=S7Tq$|9d6^s&Fkv>uBk$Dk-@Q8LNblHK{kOB@PP>98P6vt^PX-mY#E?4470If%f znAGH}8}d>zo?9z{JonqK-1tW@Nq3xE&X+r!Qy~bhCTyYmGa*O8{Xg$|jf z@hN=Q~{o}r;NWqxpXjS(WC(n9elMv}A5RV8- z7nv;lWG}ckX;EN=ywv3a-{gMbK?<#nf6uGE5^u&^>@5-;Xc-4U2CQHJ?RkT-A+J2j zU{V1Je98{dFFGvBqbqdtl5(rupS8%ZicT2w!oXIm9%qF+Qll5EN&$+f<(H{N?2R}g zrGLM?=sMfT$4FN^qXJ+tExWw=H>Bo0}|MB8` zzWw;#Z{Ht%|JU#F_kH{Rkw1R{dC?c{)H7KqCerfZ9v0)qJvPZ1lyKP;QUk){Xgfkx zR7oI()9#7#zgUij|`Y6u@q#a5Ap5!}X- zExW5+3kW{Q1y2f)4%HRAV;YHTtT@k;@>Z&uJlX-+ApO5V0Ki9(hZOE)t|~T`fOd~B zB6_8zroh2%PJy>DzmYp-4Rec}N=6$tWWaA&e+KbPlqEWdhzVqFsn_~?)|VDaLqE3? zZVJG&ZD}dpQukFDMzmhe*!UeEGpgJ3Os3IJ`wDa!np_*(J=@rFsdaYEM4McR(%2%#RuP8RqNk^) z2T)li(fp}jl?8Vd@GBt4Ew6j!C)4+SHTT&i36M`|g?#c(CJKPNB-#dj(2a_r>X@XI z1~1qCa)wbka9DIT$>0Y%g24fCzt|85mnk6aiV8KR6+0E1rOT{@l%TmaCfyZnxCFd( zW*cP@CNZ|r*vw^9OFcb#jg`J8icx5&H}HlKx72L-Ase4o^Pk#bA0`zs^C?O5n1Jn( z9_WC6(NR=<%LOBNU&GQ~g6_!ePCVYUk7%jnB!)$DUt&I&&ruRLe1)pJ+(v%uDd7zfJF_DyhQjLHu8oHSJ9@gFq)>T$U(1) zqp3_epL|I~Tljw5u787M)ccub1(S$2)gg+J|<`f{pR}REu!>{?e~a zi06}0q!s`F>f#*;Ii;_R5iY5Vaw^(A4-G5rB(8+3u|XS>YDo!j zQXv7~q1u>^FgVouHE)NnfuBPA23Iv!aX8g*N@l7yK7gGEYOn`d80P`xaOW^vwm{G$ zYF9a{ONUcn@YJ#T%7x^DB`l&#bVT}^jOvXs1L0-URncaY@Y)D-Ujs(rWB`uBJk`O*)xSq*)1oF^=0MWb zFQCLI8wQtJESbm+mQIiYsDM zMhz~0f$K{`0nk|G>jKi3XcTw~k0hY=$LaWGz5A;z#M>6^Y0+PL5g%kTsQ=`!Tgaau8Qkg4%dC zO%LNg7IsxlyzI#bnQ4~xFloXJT`OC5YQ&WyrJAfnj%3N;xa~Ynz#Ax>rfFIFa6j~l zHnq0K1f*CH4wbKFSh7xK6@0KXk!-#mvmR{w*)031v^*iVj&=z-xtiflQdiS&Z z7g_U1@g7hUPb*ki7W7rJE|KAKWy@k?^u&a=kd?3|D_agZw|~yYXd!fk*!{XRpB~TTF!5pje%}Af{T{iJr;sj`@a?``amDZyJF&Y(C~IVw}=|+j`Nm z{dNatVH-?d%!M*#3EZK=$+ROY!v9A7s@`7$A_RLf=|9-L6nAF|h3lcyWqXS&)k z9|rJsepc$XFE(~hcegF4#)1MA<`U&`>FDgs$l>Ntm?#AyC_zCD*cXSszhI^*Q`S)f z2aM==Na3FRv(EiaD7H3{NkX;rIkSbU49S`Kj@D+~4P!MERpwqgs$~xEwXxRSt;l;c zp!#9Ijj6+M5f{spbt)A%J+ilb{F~1Gjtc~Zs_3M=o$mI`W?D=q=~uznd8{zYdt@x- zk;nDcrpg{n1T7idk9HG{#$=hYa|-oQ zFm|OXg_*}SsS3bh@Zw`*@i?Vr*zaNLVqTss5l<|g^9leX(tHyX^iJ!_$6j%4zB`{A z&vy#0vyb>0Fm@iREb%xI`xqV{wk~+&giJMa7VgQRmN9dAzK~00$T^j2%c=W#)!sS{!B*z&R<-Xh6+&_QhrDf_^rSmnY)| z1pvU1G&Ef2#4C|Oris`xZf9)Loquww(ock410`DcA$SaTP*T$D7~D5@s>Q@5x=h(~ zwUD|1j7Vbw33WX>7{KfZQAo}?6KMfgf0s0dNMY(m-%)Y;!YxD8xGx?a(}2EpVV_-Q zF6$R@aeydCVCuL&b{N9hs2pJj&iDm@A!%s1#pzc7Kvj(M^27=F#`rp99|l&A}`e) zF1T`@+m1~?azT4wb5FIznn0&mZ7g-t*YMnAe@tcMtY+;M?pwQ=gYZI;eYmxGX*Zm` zFf36~gIbp7 zoCde73nOJRl;&J=Yg6kCzkyZPsmmFy*34^n^z~&PC%sU~KC02@zP0|CEl9Qa{VX>m z&D{GV3^i?QwbRPh;PcyS**W(5zlQ@@bEdHVGG66^k%Wfiswxh{MM81EZnLrUKCHc6 zVzpvkNxK=6Ijl(2#o99638!r@b+A;kgJZ*(^6ZJ9)Y8E|iHSq7yT++<)}f7j$L_~; zJ8qh;BBGY$*SS4Ht$dpDB_6VlKRtUmN$-7mN&a8jYcHjKUe7oxVd;=>A1}M-_SywU z3OqLl)inf&O%>*P?u9zRmubQM=#IX>Of=aS&9Co1_@VsMLo0v8h9S;p_usG{-Y8y~ zb+5$deDc`A>b~B{riHX_F|WT9FZHKf{=#r3!K~vhqHI)m49iTiAVQE62d>6u@jJSc zO>N9yL7y0|=U%iquvfqt4XD2Cw`<}MWMQ;j&MB73d)68`*DGVq+!V7SxiY873(Sig zi&DnlMWK@ZfW9Gt+h7NgkjmnrqGD37_`=W3C9TxB3%HazonWQ8v#+63|E=V7E%tTvW)y?k1H2bwrl8iZ6! z2KU{aYRkLLj4EH?GPynR}^$euK!21%sKXJXHV?c zf|?EctmZL-(ZC|{x&Qz%ao@g)W0>r8xtDPaj#KmzI~oN6N+YNq6r*;<+*2JGHt@WV(<% z=P(cNohC3*L@$#Y|8tbqtcRv>CV62x4GXil0slX0{N$UmI)=c%d9a-}%ZnTztg3u; z`3&|aGndHdDrlmg@q>F~8Av-DeV`T)NHAP4FXiL6_iF$N)`orSF~Npz3Gk|#a7~58 zyW9AgTTGmG4b~PzRy@>Tp{;Dwm6`SM3HIsC1tsY z_NFh3mw6Xr!w<5g3g`1p^g{ZK;wj8}+3_Ro(8O@)0QiEh-5ADcsIw@?Kyax5fV=e$ v16y6*&bLblH0wRsCjuxB4JZL<v!y7 literal 0 HcmV?d00001 diff --git a/viewport/dynamic_split_screen/screenshots/splitscreen.png b/viewport/dynamic_split_screen/screenshots/splitscreen.png deleted file mode 100644 index e4967deac2ea41814ca910de36d2d1cc86ae5ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13731 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 split_current_y) { - if (player1_position.y > split_player1_position_y) { - COLOR = vec4(view1, 1.0); - } else { - COLOR = vec4(view2, 1.0); - } + // Check on which side of the split UV is and select the proper view. + if (UV.y > split_current_y) { + if (player1_position.y > split_player1_position_y) { + COLOR = vec4(view1, 1.0); } else { - if (player1_position.y < split_player1_position_y) { - COLOR = vec4(view1, 1.0); - } else { - COLOR = vec4(view2, 1.0); - } + COLOR = vec4(view2, 1.0); } + } else { + if (player1_position.y < split_player1_position_y) { + COLOR = vec4(view1, 1.0); + } else { + COLOR = vec4(view2, 1.0); + } + } + + float distance_to_split_line = distance_to_line(split_line_start, split_line_end, vec2(UV.x * width, UV.y * height)); + if (distance_to_split_line < split_line_thickness) { + // Draw antialiased split line. + COLOR.rgb = mix(split_line_color, COLOR.rgb, distance_to_split_line / split_line_thickness); } } else { COLOR = vec4(view1, 1.0); diff --git a/viewport/dynamic_split_screen/split_screen.tscn b/viewport/dynamic_split_screen/split_screen.tscn index 9f7c6f92..a5ebbbf2 100644 --- a/viewport/dynamic_split_screen/split_screen.tscn +++ b/viewport/dynamic_split_screen/split_screen.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=60 format=3 uid="uid://dksa68cph6y4b"] +[gd_scene load_steps=63 format=3 uid="uid://dksa68cph6y4b"] [ext_resource type="Script" path="res://camera_controller.gd" id="2"] [ext_resource type="Shader" path="res://split_screen.gdshader" id="3"] @@ -15,21 +15,26 @@ sky_material = SubResource("ProceduralSkyMaterial_16la2") [sub_resource type="Environment" id="Environment_vdrvu"] background_mode = 2 sky = SubResource("Sky_i64ko") +ambient_light_source = 2 +ambient_light_color = Color(0.79, 0.8775, 1, 1) +ambient_light_sky_contribution = 0.0 +ambient_light_energy = 0.33 tonemap_mode = 2 glow_enabled = true [sub_resource type="ShaderMaterial" id="1"] shader = ExtResource("3") +shader_parameter/viewport_size = null +shader_parameter/split_active = false shader_parameter/player1_position = null shader_parameter/player2_position = null -shader_parameter/split_active = null -shader_parameter/split_line_color = null -shader_parameter/split_line_thickness = null -shader_parameter/viewport_size = null +shader_parameter/split_line_thickness = 10.0 +shader_parameter/split_line_color = Vector3(0, 1, 0) [sub_resource type="CapsuleMesh" id="2"] radius = 0.375 height = 1.75 +rings = 4 [sub_resource type="StandardMaterial3D" id="3"] albedo_color = Color(0.933333, 0.0784314, 0.0784314, 1) @@ -38,9 +43,24 @@ albedo_color = Color(0.933333, 0.0784314, 0.0784314, 1) radius = 0.375 height = 1.75 +[sub_resource type="TorusMesh" id="TorusMesh_abtrc"] +inner_radius = 0.4 +outer_radius = 0.6 +ring_segments = 6 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_63nwq"] +albedo_color = Color(0.5, 0.5, 0.5, 1) +emission_enabled = true +emission = Color(1, 0, 0, 1) + [sub_resource type="StandardMaterial3D" id="5"] albedo_color = Color(0.0784314, 0.411765, 0.933333, 1) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wi7e2"] +albedo_color = Color(0.5, 0.5, 0.5, 1) +emission_enabled = true +emission = Color(0.12549, 0.501961, 1, 1) + [sub_resource type="StandardMaterial3D" id="6"] [sub_resource type="PlaneMesh" id="7"] @@ -183,12 +203,15 @@ albedo_color = Color(0.791675, 0.946163, 0.317723, 1) [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, 0.75, -0.433013, 0, 0, 0) +light_energy = 0.75 shadow_enabled = true +shadow_bias = 0.03 +shadow_blur = 2.0 directional_shadow_mode = 0 directional_shadow_split_3 = 0.25 directional_shadow_blend_splits = true directional_shadow_fade_start = 1.0 -directional_shadow_max_distance = 25.0 +directional_shadow_max_distance = 12.0 [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_vdrvu") @@ -235,6 +258,14 @@ surface_material_override/0 = SubResource("3") [node name="CollisionShape3D" type="CollisionShape3D" parent="Player1"] shape = SubResource("4") +[node name="MeshInstance3D" type="MeshInstance3D" parent="Player1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.6, 0) +mesh = SubResource("TorusMesh_abtrc") +surface_material_override/0 = SubResource("StandardMaterial3D_63nwq") + +[node name="OmniLight3D" type="OmniLight3D" parent="Player1"] +light_color = Color(1, 0, 0, 1) + [node name="Player2" type="CharacterBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.184, 0.875, 3.019) script = ExtResource("5") @@ -247,6 +278,15 @@ surface_material_override/0 = SubResource("5") [node name="CollisionShape3D" type="CollisionShape3D" parent="Player2"] shape = SubResource("4") +[node name="MeshInstance3D2" type="MeshInstance3D" parent="Player2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.7, 0) +mesh = SubResource("TorusMesh_abtrc") +skeleton = NodePath("../../Player1") +surface_material_override/0 = SubResource("StandardMaterial3D_wi7e2") + +[node name="OmniLight3D" type="OmniLight3D" parent="Player2"] +light_color = Color(0.12549, 0.501961, 1, 1) + [node name="Ground" type="StaticBody3D" parent="."] [node name="Mesh" type="MeshInstance3D" parent="Ground"]