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

Aktuelle Zeit: Sa Jul 12, 2025 00:11

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



Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Blending - Prob2
BeitragVerfasst: So Okt 27, 2002 10:17 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Hi Leute!
Ich habe ne kleine Landschft gecodet. Mit Hilfe des Blending möchte ich nun bewirken, dass auf den höheren Stellen der Map etwas Gras wächst und unten nichts (da ich unten alles unter wasser gesetzt habe. Das klapt soweit auch ganz gut, blos, wenn ich den Tiefenpuffer abschalte, dann wird es an bestimmt en Stellen der Karte sehr hell (er blendet manche Bereiche, obwohl die nicht sichtbar sein sollten) ... schalte ich ihn an, ist der Belnding - Effekt nur dann zu sehen, wenn ich zuvor gltranslatef(0,0.01,0) aufrufe, damit nicht alles blending dem Tiefenpuffer zum Opfer fällt.
Gibt es eine Elegantere Lösung?

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Okt 27, 2002 11:25 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 14, 2002 21:07
Beiträge: 70
Wohnort: Heilbronn/Neckar
Du musst aufpassen, wie du blendest.
Schreib mal deine Parameter bei glBlendfunc an.

_________________
<a href='http://aefgames.thechaoscompany.net/' target='_blank'>Artificial Electronic Faction</a>


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Okt 27, 2002 11:44 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
glBlendFunc(gl_src_alpha,GL_one);

ich habe es zwischen durch auch mit

glBlendFunc(gl_src_alpha,GL_one_minus_src_alpha);

versucht, aber da wurde alles arg dunkel...... (aber es funzte schon eher.... war zumindest nicht mehr so hell...........)

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Okt 27, 2002 12:07 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 14, 2002 21:07
Beiträge: 70
Wohnort: Heilbronn/Neckar
Probies mal damit, hab ich jetzt auf die schnelle ausm Blending tut genommen :)
glBlendFunc(GL_SRC_ALPHA,GL_DST_ALPHA);

_________________
<a href='http://aefgames.thechaoscompany.net/' target='_blank'>Artificial Electronic Faction</a>


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Okt 27, 2002 15:31 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Und las um Gottes willen das Translate weg ;)
Der Z-Buffer kann zeitweilig deaktiviert werden mit

Code:
  1. glDisable(GL_DEPTH_TEST);


einfach bei der zweiten Ebene deaktivieren ;)

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Okt 27, 2002 15:45 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
@phobeus:
das habe ich ja erst gemacht! Aber dann rendert er die ganze Landsachaft nochmal nach (besser: rendert überall die 2. Textur per blending oben drüber) ... dadurch werden dann auch alle rückseiten "bebelendet" wodurch insbesondere die hohen hügel exrem hell werden.....

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Okt 27, 2002 15:48 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Moment, wir verstehen uns miss ;) Er soll auch nicht von Anfang an das deaktivieren. Blending ist nicht 3D, sondern 2D, da die Destination ein Abbild im ColorBuffer ist.

glDisable GL_BLEND);
gEnable(GL_DEPTH_TEST);
RenderTerrainwithTexture;

glEnable(GL_BLEND);
glDisable(GL_DEPTH_TEST);
RenderTerrainWithFading;

Somit solltest Du den gleichen Effekt erzielen und die Hügel sollten nicht höher sein als beim ersten Durchgang. Oder verstehe ich dich falsch?

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Okt 27, 2002 21:22 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Jap .. du verstehtst mich deutlich falsch!
So, wie du es es ben geschriben hast, habe ich es auch gemacht. Das Prob: da beim Blending der Tiefenpuffer aus war, hat er in der Schleife (zum zeinen des Fading) logischerweise die Ganze Landschaft "überblendet" ... also auch die Orte, die an sich gar niucht sichtbar sein sollten. Daher haben wir volgendes Prob: Wenn ich einen kleinen Berg/Hügel habe, dann wird sowohl ja einmal die Vor und einmal die Rückseite "überblendet" ... daher sind alle Hügelkuppen sehr hell (werden ja scheinbar 2x ünberblendet... zumindest kann ich es mir nicht anders erklären). Wenn ich den Tiefentest anlasse, funzt das Blending natürlich nicht mehr richtig... erst, wenn ich alles etwas "raushebe" wird das blenden wieder möglich (und nun stimmt die helligkeit auch) ... allerdings finde ich, das diese Lösung nicht gerade Elegant ist...

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Okt 27, 2002 23:21 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 06, 2002 20:27
Beiträge: 479
Wohnort: Bremen
hmmm... ich hätte da ne Idee. Aber steinigt mich nicht, wenns Stuss ist - ich mach ogl auch erst seit es die DGL gibt...

Dein Problem ist doch, dass er im zweiten Renderpass nicht blendet, weil im Tiefenbuffer bereits die Daten des ersten liegen, die ohne translate gleich den neuen sind, richtig?

Warum löscht du dann nach dem ersten Durchgang nicht einfach den Depthbuffer? Füge doch mal bevor du mit dem blenden beginnst
Code:
  1.  
  2.  
  3. glClear(GL_DEPTH_BUFFER_BIT);

ein...

-lith

_________________
Selber Denken macht klug!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 28, 2002 08:19 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Die Idee ist eigentlich sogar verdammt gut. Hab ich bisher nicht in den Tuts angesprochen, weils doch etwas hardcore ist, aber sämtliche Buffer unter OpenGL sind nichts anderes als... der D3D würde sagen Surfaces, also abbilder. Selbst der ColorBuffer ist nichts 3ddimensionales. Vor allem mit dem Stencil-Buffer kann man eine Menge toller Effekte damit erzielen. Sollte ne versuch wert sein ;)

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 28, 2002 10:30 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Ein löschen des Tiefenpuffer dürfte wohl dazu führen, dass er dann ganz toll alles was er hinter dem hügel zeichnet trotzdem auch vorne sichtbar wird(da tiefeninfos weg). Ich würde die daten nicht löschen, aber ein update verhindern(geht, ich weiß blos nicht wie, hab das aber schonmal irgendwo gesehen).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 28, 2002 15:29 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Hmm.... sicher, dass er erst beim Swap den ZBuffer einbezieht? ... ich werd heut nochmal das Redbook kontaktieren ;)

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 28, 2002 15:32 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Zitat:
Ich würde die daten nicht löschen, aber ein update verhindern(geht, ich weiß blos nicht wie, hab das aber schonmal irgendwo gesehen).


glDepthMask(GL_FALSE);

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 28, 2002 16:50 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Zitat:
glDepthMask(GL_FALSE);

Ich stelle entsetzt fest,
dass SoS (fast) alles weiß..... 8O
und dass die Leute mit weniger Beiträgen mehr Ahnung von OGL haben. :roll: :wink: :shock2: :crazy:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 28, 2002 19:43 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Hmm ...
darf ich fragen, wo ich diesen Befehl einsetzen muss, damit er zufriedenstellen funzt? Habe son bischen rumprobiert, gab aber fast nur Grafikfehler.......

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


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.009s | 15 Queries | GZIP : On ]