Skocz do zawartości

Shadery i Zamrażanie przeciwników


Piedro

Rekomendowane odpowiedzi

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 );

Odnośnik do komentarza
Udostępnij na innych stronach

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. :)

Odnośnik do komentarza
Udostępnij na innych stronach

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 );

}

Odnośnik do komentarza
Udostępnij na innych stronach

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'

Odnośnik do komentarza
Udostępnij na innych stronach

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 :)

Odnośnik do komentarza
Udostępnij na innych stronach

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?

Odnośnik do komentarza
Udostępnij na innych stronach

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

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...