Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

1

09.05.2009, 11:44

such GLSL 2D filter

Hi, ich suche allmögliche Shadercodes für einfach 2d texturen.
z.b. blurfilter oder wasser effekt.
Und der Vertexshader sollte auf eine einfachen Ortho Projektion funktionerien.
Ich hab noch etwas von Convolution Kernel gehört kann mir was jemand genauer erklären?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

09.05.2009, 12:27

Hier steht vieles über Gaussian Blur:
http://en.wikipedia.org/wiki/Gaussian_interpolation


Hier gibts z.B eine Implementierung:
http://www.gamedev.net/reference/articles/article2193.asp

Hier auch noch etwas:
http://www.gamedev.net/community/forums/topic.asp?topic_id=427696

oder:
http://www.ozone3d.net/tutorials/image_filtering.php

Du findest bestimmt noch mehr, wenn du richtig suchst. ;)

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

3

09.05.2009, 19:37

@1link
Das Wiki zeug und die Formel sind irget wie verwirrend für ein Anfänger

@2links
Siht aus wie 3D..sucher aber 2D.

@2&3link
Das is HLSL is such aber GLSL.

@4links
Das Funktionieren nicht alle Filter.
Alle Filter Werte die 0 oder kleiner sind ,da zeigt der nix an.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
uniform sampler2D ColorMap;

vec4 convolve3x3(vec4 IN,
  float W00, float W01, float W02,
  float W10, float W11, float W12,
  float W20, float W21, float W22,
  float Sum,
  float step_w,
  float step_h)
{
  int i = 0;
  vec4 C = vec4(0.0);
  float kernel[9];
  vec2 offset[9];
   
   offset[0] = vec2(-step_w, -step_h);
   offset[1] = vec2(0.0, -step_h);
   offset[2] = vec2(step_w, -step_h);
   
   offset[3] = vec2(-step_w, 0.0);
   offset[4] = vec2(0.0, 0.0);
   offset[5] = vec2(step_w, 0.0);
   
   offset[6] = vec2(-step_w, step_h);
   offset[7] = vec2(0.0, step_h);
   offset[8] = vec2(step_w, step_h);
   
   kernel[0] = W00;     kernel[1] = W01;    kernel[2] = W02;
   kernel[3] = W10; kernel[4] = W11;    kernel[5] = W12;
   kernel[6] = W20;     kernel[7] = W21;    kernel[8] = W22;
   
   
   for( i=0; i < 9; i++){
    vec4 tmp = texture2D(ColorMap, IN.st + offset[i]);
    C += tmp * (kernel[i]/Sum);
   }

  return C;
}

//texture size
uniform float width;
uniform float height; 

void main(){

 gl_FragColor = convolve3x3(gl_TexCoord[0],
            1.0, 1.0, 2.0,
            1.0, 4.0, 3.0,
            2.0, 3.0, 3.0,
            16.0,
            1.0/width,
            1.0/height);

}

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

4

09.05.2009, 20:13

Zitat von »"kiba"«

@1link
Das Wiki zeug und die Formel sind irget wie verwirrend für ein Anfänger


Dann versuch doch erst mal die Grundlagen zu lernen... Dann wirds leichter!

Zitat von »"kiba"«


@2links
Siht aus wie 3D..sucher aber 2D.


Von 3D auf 2D zu kommen ist weniger ein Problem, als umgekehrt...

Zitat von »"kiba"«


@2&3link
Das is HLSL is such aber GLSL.


Ist praktisch das selbe.

Mein Rat: Schau dir wie gesagt erst mal die Grundlagen zu shadern, farbmodellen und den Vektorräumen an (Farbräume sind Vektorräume). Dann machst du mal ein paar triviale Shader und erst dann, kannst du dir langsam überlegen, wie schwierigere sachen wohl funktionieren, und diese dann Nachimplementieren.
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

10.05.2009, 11:22

Pixelshader laufen grundsätzlich eher im 2D Bereich, als 3D..
Und die verschiedenen Sprachen waren mir auch klar, sollte aber kein Problem sein die Techniken zu portieren.. Und ein wenig Eigeninitiative sollte schon da sein. Copy/Paste funktioniert praktisch nie..

Werbeanzeige