Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:26

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Terrain Shader GPU4
BeitragVerfasst: So Aug 29, 2010 19:27 
Offline
DGL Member

Registriert: Do Jan 07, 2010 21:58
Beiträge: 240
etwa so?

Code:
      glBegin(GL_TRIANGLES);
        glVertex3f(x,y,0);
        glVertex3f(x,y+1,0);
        glVertex3f(x+1,y,0);
        glVertex3f(x,y+1,0);
        glVertex3f(x+1,y,0);
        glVertex3f(x+1,y+1,0);
      glEnd;


das wäre ja blödsinn finde ich


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Terrain Shader GPU4
BeitragVerfasst: So Aug 29, 2010 20:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Der Shader macht folgendes:
Code:
ivec2 coords = leafmin + ivec2(gl_Vertex.xy);
// ...
vec4 position = vec4(coords.x, height, coords.y, 1.0);
gl_Position = gl_ModelViewProjectionMatrix * position;

Es geht ja darum die Daten so gut wie möglich zu komprimieren. Die Null in der Mitte ist halt redundant und kann daher eingespart werden.

=>

Code:
glBegin(GL_TRIANGLES);
        glVertex2f(x,y);
        glVertex2f(x,y+1);
        glVertex2f(x+1,y);
        glVertex2f(x,y+1);
        glVertex2f(x+1,y);
        glVertex2f(x+1,y+1);
glEnd;


Letztlich solltest du aber ein VBO nehmen.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Terrain Shader GPU4
BeitragVerfasst: So Aug 29, 2010 20:37 
Offline
DGL Member

Registriert: Do Jan 07, 2010 21:58
Beiträge: 240
Zitat:
Es geht ja darum die Daten so gut wie möglich zu komprimieren. Die Null in der Mitte ist halt redundant und kann daher eingespart werden.


weil wir die höhe ja im shader selbst berechnen ok häckchen drann

hab ich auch aber es ändert nix an der tatsache das ich nix sehe, shader sind irgendwie komisch


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Terrain Shader GPU4
BeitragVerfasst: Mo Aug 30, 2010 15:53 
Offline
DGL Member

Registriert: Do Jan 07, 2010 21:58
Beiträge: 240
ich werde das ganze jetzt mal schritt für schritt machen sodass ich immer eine funktion des shaders hinzunehme und dann schau wo es klemmt

also zuerst mal eine textur binden dann die höhe berechnen usw


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Terrain Shader GPU4
BeitragVerfasst: Fr Sep 03, 2010 16:11 
Offline
DGL Member

Registriert: Do Jan 07, 2010 21:58
Beiträge: 240
ok ich habe den shader nunmal auseinander genommen

das mit den texturen überlappen, also den fragmentshader habe ich zum laufen bekommen,

der knackpunkt war ganz einfach der fragmentshader sieht nun so aus

Code:
void main()
{

   vec3 tex0 = texture2D(layer0, gl_TexCoord[0].xy).rgb;
   vec3 tex1 = texture2D(layer1, gl_TexCoord[0].xy).rgb;
   vec3 tex2 = texture2D(layer2, gl_TexCoord[0].xy).rgb;
   vec3 a = texture2D(alpha, gl_TexCoord[1].xy).rgb;
   vec3 color = a.r*tex0 + a.g*tex1 + a.b*tex2;

    gl_FragColor = vec4(color + gl_LightSource[0].ambient.xyz, 1.0);
}


ich habe die lichtberechnung rausgenommen da diese die farbe immer auf schwarz gesetzt hat

den vertexshader hab ich so gelassen wie er war, das ergebniss sieht nun so aus *Siehe Bild*

mal sehen ob ich das auch noch gebacken bekomm

so wie es aussieht bekommt der shader einfach für alles den wert 100 raus

€: alles was im clamping bereich liegt beommt den wert 100 also "terranscale" alles andere den wert "0"


Dateianhänge:
terrainGPU4.jpg
terrainGPU4.jpg [ 9.57 KiB | 4087-mal betrachtet ]
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Terrain Shader GPU4
BeitragVerfasst: Fr Sep 03, 2010 16:37 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Mein Vertexshader nimmt den Alpha-Wert der Heightmap, weil ich GL_ALPHA16 als internes Texturformat benutze. Also ggf. texelFetch2DOffset(...).r probieren. Liegt es dran? Es ist allerdings ratsam eine 16bit Textur zu benutzen, da es sonst nur 256 Höhenstufen gibt was man schon deutlich sieht. (Das Problem ist aber dann ein Programm zu finden was sowas erstellen kann. Als Dateiformat eignet sich PNG.)

Zitat:
ich habe die lichtberechnung rausgenommen da diese die farbe immer auf schwarz gesetzt hat

Wenn deine Vertices andersherum orientiert sind (also Uhrzeigersinn vs. gegen Uhrzeigersinn) ist die Normale falsch herum. Versuche mal ein
Code:
normal = -normal;

am Ende des Vertexshaders einzufügen.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Terrain Shader GPU4
BeitragVerfasst: Fr Sep 03, 2010 20:14 
Offline
DGL Member

Registriert: Do Jan 07, 2010 21:58
Beiträge: 240
also erstmal *juhuu* endlich es geht!

boar war das ein probiere und gesuche und gemache

grund das die heightmap nich ging war einfach das er nich die heightmap genommen hat sondern wenn ich die map im programm auf die 4 binde muss ich natürlich auch im shader die 4 nutzen

das mit der normal umdrehen hat auch gut funktioniert, auch wenn es nun bei mir nacht ist^^ aber gut das sind einstellungen des lichtes damit muss ich mich nochmal einzeln befassen

erstmal sind die VBO´s an der reihe damit ich auch mein gesammtes Terrain rendern kann

ich danke dir für deine große hilfe ich wäre wahrscheinlich mit mir selbst verzweifelt :D

damit du nun auch mal siehst wie es ersteinmal aussieht hab ich noch en screen gemacht


Dateianhänge:
terrainGPU4.jpg [32.44 KiB]
Noch nie heruntergeladen
Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » Shader


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.011s | 16 Queries | GZIP : On ]