Problem mit meinem Shader

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem mit meinem Shader

    Hey Leute ^^ Habe ein kleines Problem mit meinem neuen Shader. Ich wollte, dass man meinen Sprite in grün sieht, wenn ich hinter einem Baum stehe, das klappt soweit auch (Bild: Shader richtig). Stehe ich allerdings vor dem Baum, sehe ich auch meine grüne Silhouette (Bild: Shader falsch). Hat jemand eine Ahnung wie ich meine Silhouette nicht sehe, wenn ich vor dem Bäumen stehe? Denn das gefällt mir überhaupt nicht. :heul:
    Bilder
    • shader richtig.png

      288,93 kB, 1.080×720, 690 mal angesehen
    • shader falsch.png

      300,42 kB, 1.080×720, 674 mal angesehen
    Es gibt 10 Arten von Menschen: Diejenigen, die Binärcode verstehen und die, die es nicht tun ^^
  • ou dann sollstest aber nicht gleich mit shadern anfangen :D... shader sind eine komplexe sache :)... um den depth wert vom player aufrufen zu können musst du sagen name_vonplayer und dann ein punkt und die variable depth auf rufen also, wenn unser player objekt obj_player heisst dann würde der code so aussehen....

    GML-Quellcode

    1. ​if (obj_player.depth > other.depth){
    2. //Hier den shadercode
    3. }
    Wir stehen zusammen und wir fallen zusammen
  • achso alles klar danke ^^ naja shader waren nicht das erste was ich bisher gemacht habe, dachte aber sie wären nützlich fürs spiel ^^ meinst du mit //Hier den shadercode das script oder eines der beiden shaderscripts?
    Es gibt 10 Arten von Menschen: Diejenigen, die Binärcode verstehen und die, die es nicht tun ^^
  • with( obj_silhouette ) {

    var shader = shd_silhouette;
    var surface = sur_silhouette;

    shader_set( shader );
    texture_set_stage( shader_get_sampler_index( shader, "u_sSilhSurface" ), surface_get_texture( surface ) );
    shader_set_uniform_f( shader_get_uniform( shader, "u_vSilhView" ), view_xview[0], view_yview[0], view_wview[0], view_hview[0] );
    shader_set_uniform_f( shader_get_uniform( shader, "u_cSilhColour" ), colour_get_red( argument1 ) / 255, colour_get_green( argument1 ) / 255, colour_get_blue( argument1 ) / 255 );
    shader_set_uniform_f( shader_get_uniform( shader, "u_fSilhDepth" ), argument0 );

    }

    das steh in meinem scr_silhouette_set
    Es gibt 10 Arten von Menschen: Diejenigen, die Binärcode verstehen und die, die es nicht tun ^^
  • dann schreib es in deinen code hier rein

    if (instance_existst(obj_player)){
    if (obj_player.depth > other.depth){
    with( obj_silhouette ) {var shader = shd_silhouette;var surface = sur_silhouette;shader_set( shader );texture_set_stage( shader_get_sampler_index( shader, "u_sSilhSurface" ), surface_get_texture( surface ) );shader_set_uniform_f( shader_get_uniform( shader, "u_vSilhView" ), view_xview[0], view_yview[0], view_wview[0], view_hview[0] );shader_set_uniform_f( shader_get_uniform( shader, "u_cSilhColour" ), colour_get_red( argument1 ) / 255, colour_get_green( argument1 ) / 255, colour_get_blue( argument1 ) / 255 );shader_set_uniform_f( shader_get_uniform( shader, "u_fSilhDepth" ), argument0 );}
    else{
    with(obj_silhouette){
    shader_delete(shader);
    }
    }


    weiß halt nicht ob das so klappt hab mir shader noch nicht so intensiv angeguckt
    Wir stehen zusammen und wir fallen zusammen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Eddysoulo ()