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

Aktuelle Zeit: Di Jul 08, 2025 23:17

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr Jun 09, 2006 16:08 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
hi, ich wollte unbedingt, motion blur in mein projekt haben, mit dem accumilation buffer hat das net so hingehauen,
also habe ich mich auf das beschränkt was ich "kann".
ich speichere die positionen und größen in ein array, diese werden dann ausgelesen und
mein objekt dann mit einer bestimmten transparenz gezeichnet, alles kein ding.

aber wenn vor einem transparenten objekt noch eines ist, sieht man die transparenten objekte nicht
durch das vordere transparente hindurch, woran kann das liegen ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 09, 2006 16:23 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 26, 2002 22:12
Beiträge: 259
Wohnort: Dresden
Beim Blending ist die Reihenfolge in der du die Objekte zeichnest wichtig. Vermutlich zeichnest du zuerst das vordere durchsichtige Objekt und erst anschließend das hintere. Dort liegt der Fehler, denn wenn du das hintere Objekt zeichnest besteht dieses vermutlich nicht mehr den Tiefentest.

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 09, 2006 16:40 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
das ist das problem was ich beim blending nicht verstehe, ich zeichne die objekte ja in einer festen reihenfolge, aber wenn sich diese reihenfolge ändert, zeichne ich ja immer noch in der alten reihenfolge und das geht dann nicht, aber ich weiß nicht was ich dagegen machen soll Oo

aber das teil im vordergrund zeichne ich zuletzt,

ich kann ja mal erklären wie das system funzt:
Code:
  1.  
  2. var
  3.   PrevPos: array [1..5] of TBall;
  4.   ppos: integer;
  5.  


Im Render:

Code:
  1.  
  2. var
  3.   i, readpos, transcount: integer;
  4.  


Code:
  1.  
  2.     Prevpos[ppos].position.x := Ball.position.x;
  3.     Prevpos[ppos].position.y := Ball.position.y;
  4.     Prevpos[ppos].position.z := Ball.position.z;
  5.     Prevpos[ppos].radius := Ball.radius;
  6.  

Code:
  1.  
  2. //Szene Zeichnen mit dem aktuellen objekt
  3.     DrawProc(Ball, 1);  //der zweite parameter gibt die transparenz an
  4.  
  5. //die lesestart position festlegen
  6.     if ppos - 1 < low(prevpos) then
  7.       readpos := high(prevpos) else
  8.         readpos := ppos - 1;
  9.  
  10. //Transparenz durchzählen, da 2 unabhängige schleifen
  11.     transcount := 0;
  12.  
  13. //Erste Schleife    
  14.     if readpos > low(prevpos) then
  15.       for i := readpos downto low(prevpos) do
  16.       begin
  17.         inc(transcount);
  18.         DrawProc(prevpos[i], (high(prevpos) - transcount) / 10);
  19.       end;
  20. //Zweite Schleife
  21.     if readpos < high(prevpos) then
  22.       for i := high(prevpos) downto readpos + 1 do
  23.       begin
  24.         inc(transcount);
  25.         DrawProc(prevpos[i], (high(prevpos) - transcount) / 10);
  26.       end;
  27. //ppos hochzählen und ggflls zurücksetzen
  28.     inc(ppos);
  29.     if ppos > high(Prevpos) then
  30.       ppos := low(prevpos);
  31.  


das ganze wird natürlich auch noch initialisiert usw, es wird immer das am wenigsten
sichtbare zuletzt gezeichnet. beim blur siehts gut aus, aber wenn was tranzparentes
davor ist, dann ist der blur effekt weg Oo


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 10, 2006 11:19 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Folgende Regel bei Transparenz:

1. Zeichne die nicht Transparenten Objekte
2. Zeichne die Transparenten Objekte sortiert nach der entfernung zu Kamera.

oder 2. Zeichne die Transparenten Objekte mit ausgeschaltenem Tiefenpuffer (nicht Tiefentest!).

Das könnte auch gehen.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 10, 2006 11:31 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
nur wie ? kann ich irgendwie eine liste erstellen und diese dann sortieren lassen ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 10, 2006 13:40 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Seth hat geschrieben:
nur wie ? kann ich irgendwie eine liste erstellen und diese dann sortieren lassen ?

Genau dies ist dein Job.
Das Wiki sollte dir aber Informationen über mögliche Techniken geben.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


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.012s | 16 Queries | GZIP : On ]