Skocz do zawartości

Piedro

Użytkownicy
  • Postów

    294
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez Piedro

  1. Chciałbym tylko zaznaczyć że "fajny seed" w tym momencie dużo Ci nie da. Wystarczy że skorzystasz z jakiegoś randomu przed generatorem (np w menu gry) to zmieni Ci się efekt twojego generatora. Oczywiście możesz ponownie ustalić swój seed tuż przed generatorem. I właśnie to powinieneś robić. Dlatego o tym przypominam. ;)

    Ja na razie nie mam nigdzie "randomize". Używam tylko "random_set_seed(mój fajny seed)" bo o dziwo kedy restartuje grę za pomocą "game_restart()", to seed się zmienia.

  2. to zrób i daj do forumowej biblioteki shaderów, ludzie na pewno skorzystają.

    [EDIT]

    Efekt jest wspaniały!

    Oh nie mogę się doczekać. Jeszcze tylko dorzucić spadające particle ze sprita... cud miód i maliny.

    nie to nie, ale example i tak robie, bo fajny motyw na efekt podsunales :)

    można to przerobić aby można było blendować sprita względem nasycenia.

  3. faktycznie, zapomniałem o alfie. wrzuć to do fragment shadera:

    varying vec2 v_vTexcoord;
    
    void main()
    {
    vec4 col = texture2D( gm_BaseTexture, v_vTexcoord ); // pobieramy kolor pixela z tekstury.
    float gray = dot( col.xyz, vec3( 0.299, 0.587, 0.144 ) ); // ta operacja wykonuje szybka transformacje koloru w skale szarosci.
    gl_FragColor = vec4( mix( vec3( 0.0, 0.0, 1.0 ), vec3( 1.0, 1.0, 1.0 ), vec3( gray ) ), col.a );
    }

     

    a jak chcesz specjalnie dla Ciebie zajefajny efekt animowanego stopniowego zamrazania, wyslij mi grafike na PW - dam CI efekt i pokaze Ci jak kolejne grafiki przygotowywac zeby i one wspoldzialaly z efektem :)

    grałeś kiedyś w metroida? ice beam mrozi od razu.

    [edit]

    mogę to łączyć ze zmianą blendingu?

  4. A bo psyś inaczej nazwał zmienne poprostu

    GML
    varying vec2 v_vTexcoord;

    varying vec4 v_vColour;

     

    void main()

    {

    vec4 v_vColour = texture2D( gm_BaseTexture, v_vTexcoord );

    float gray = dot( v_vColour.xyz, vec3( 0.299, 0.587, 0.144 ) );

    gl_FragColor = mix( vec4( 0.0, 0.0, 1.0, 1.0 ), vec4( 1.0, 1.0, 1.0, 1.0 ), gray );

    }

    Jeszcze bardziej się krzaczy. czy musze zainicjować coś w create?

    GML
    In Shader shdr_frozen at line 14 : 'gm_BaseTexture' : undeclared identifier

    In Shader shdr_frozen at line 14 : 'texture2D' : no matching overloaded function found

    In Shader shdr_frozen at line 14 : '=' : cannot convert from 'const mediump float' to '4-component vector of float'

    In Shader shdr_frozen at line 16 : 'gl_FragColor' : undeclared identifier

    In Shader shdr_frozen at line 16 : 'assign' : cannot convert from '4-component vector of float' to 'float'

  5. Vertex zostawiasz tak jaki jest, a w fragment wklejasz to co podał Psyś.

     

    funkcje od wyświetlania spritu obejmij pomiędzy shader_set(nazwa_shadera); shader_reset(); tak jak to się robi przy surface.

    ERROR:

    In Shader shdr_frozen at line 10 : 'texCoord' : undeclared identifier

    In Shader shdr_frozen at line 10 : 'texture2D' : no matching overloaded function found

    In Shader shdr_frozen at line 10 : '=' : cannot convert from 'const mediump float' to '4-component vector of float'

     

    znaczy gdzie mam wkleić? Między klamry w "Fragment"?

    GML
    //

    // Simple passthrough fragment shader

    //

    varying vec2 v_vTexcoord;

    varying vec4 v_vColour;

     

    void main()

    {

    gl_FragColor = v_vColour * texture2D( gm_BaseTexture, v_vTexcoord );

    vec4 col = texture2D( gm_BaseTexture, texCoord );

    float gray = dot( col.xyz, vec3( 0.299, 0.587, 0.144 ) );

    gl_FragColor = mix( vec4( 0.0, 0.0, 1.0, 1.0 ), vec4( 1.0, 1.0, 1.0, 1.0 ), gray );

    }

    Jak widać krzaczy się. Zupełnie nie mam pojęcia jak załapać. Ale efekty przyciągają uwagę głupiutkiej małpki. :)

×
×
  • Dodaj nową pozycję...