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

Aktuelle Zeit: Mo Jul 21, 2025 08:16

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



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 19, 2003 19:17 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 28, 2002 19:27
Beiträge: 568
Wohnort: Chemnitz / Sachsen
hallo also ich hab mir jetz ma nen kleinen algorithmus für eine heightmap einfallen lassen (evtl. gibt es den aber auch schon und ich weiss das net).
es geht darum, die gesamte map in gleichgroße stücken(AREA - hab ich nur so genannt nichts wirklich spektakuläres) zu zerlegen, und diese dann abhängig von der entfernung camera - AREA_Mittelpunkt einfach unterschiedlich detailliert zu zeichnen.
dass heisst ich zeichne einfach bei nicht so stark detaillierten AREAS einfach Triangles von i bis i+6 oder so. i ist ne schleifen variable, die auf eine höhe in einem 2dim array verweist, welche dann genutzt wird.

nun hab ich das problem, dass, wenn irgendwo eine kleine senke ist in einem detaillierten AREA ist und das am rand und im benachbarten AREA, was nicht so detailliert ist, wird diese senke ja nu nicht gezeichnet. da entsteht dann einfach ma so ne schwarze lücke und die gefällt mir nicht wirklich.

hat jemand ne idee wie ich sowas wegbekomme ????


(oder hat überhaupt jemand verstanden, was ich von euch will??)


eine andere frage ist auch noch die texturierung der map, denn das hab ich noch net wirklich gut hinbekommen. aber vielleicht ist das auch etwas weit gegriffen, für die ja sehr kurze erklärung ;-)


vielen dank schon ma an alle, die antworten und die die es zumindest versuchen.

RSWM

_________________
Aktuelles Projekt :
www.PicPlace.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 19, 2003 19:32 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Du mußt die Punkte an den Kanten einer Area anpassen.

1.Möglichkeit
Das geht natürlich nur von eine Area mit mehr Unterteilungen zu einer Area mit weniger Punkten an einer Kante. Wenn du die Detailstufe immer durch 2 teilst, dann kannst du eigentlich die Mittelwerte benutzen. In diesem Beispiel muß der mittlere Punkt die Höhe 15 haben, weil an der Stelle genau in der Mitte zwischen den beiden rechten Punkte das Dreiecke die Höhe 15 hat.

detaillierte Area undetailierte Area
10 X 10 X
15 X
20 X 20 X

2.Möglichkeit
Die Löcher verschwinden, wenn du jeweils die Dreiecke an den Kanten der Areas, für beide Detailstufen zeichnest, weil sie sich dann schneiden.

3.Möglichkeit
Man kann die Detailstufen auch stufenlos mit einem Vertex Program abhängig von der Entfernung von der Kamera überblenden.
Hier gibt es ein PDF und eine Demo
<a href='http://users.belgacom.net/xvox/' target='_blank'>http://users.belgacom.net/xvox/</a> zu dieser neuen Technik, die vermutlich auch die beste Möglichkeit ist. Die Demo ist zwar für D3D aber das Vertex Program sollte leicht übertragbar sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 20, 2003 16:12 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 28, 2002 19:27
Beiträge: 568
Wohnort: Chemnitz / Sachsen
also der erste vorschlag, den hab ich heute in der schule mal überlegt, doch der hat einige nachteile (laut meiner überlegungen)


das zweite klingt um einiges interresanter.
haste da ma nen scrennie oder pseudocode, um das zu illustrieren?? wäre net.

RSWM


überigends mit dieser methode des renderings hab ich jetz ma ausgerechnet, das ich teilweise bis zu 45 % triangles beim zeichnen spare.

_________________
Aktuelles Projekt :
www.PicPlace.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 20, 2003 16:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Um deine Begeisterung über deinen neuen Algorithmus etwas zu dämpfen :rolleyes: :
Sowas gibts es natürlich schon, und das nennt sich Geo Mip-Mapping.
Ähnlich wie beim Texturen Mipmapping (und deinem Algorithmus) wird dort beim Programmstart (oder evtl. während der Laufzeit, aber langsamer) die Landschaft in meherere Quader unterteilt, und von diesen werden dann je nach Entfernung zum Betrachter auch verschiedene Detailstufen eingeblendet.

Ich hab sowas auch mal implementiert, und habe beim Programmstart die verschiedenen Quader unterschiedlich detailliert in Displaylisten abgelegt.Quader ausserhalb des Frustums werden nicht gezeichent.Wie du schon bemerkt hast, ist diese Methode wirklich recht schnell und ein guter Kompromiss zwischen GPU- und CPU-Limitierung.(im Gegensatz zu ROAM (CPU-limitiert) oder z.B. Bruteforce (GPU-limitiert))

Bei dem Problem mit den Löchern im Terrain kann ich dir leider nicht helfen.Allerdings wärs ne Überlegung wert, unter dem Terrain (sprich dort wo die Löcher auftreten) einfach ein Quad (unten) zwischen die zwei verschiedenen Detailstufen zu zeichnen, welches mit der Terraintextur belegt ist.Wenn diese Löcher dann nur in der Entfernung auftreten, dann sollten sich diese mit obiger Methode kaum noch bemerkbar machen.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 20, 2003 16:26 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 28, 2002 19:27
Beiträge: 568
Wohnort: Chemnitz / Sachsen
das mit dem quad klingt net schlecht.

übrigends ist der algorithmus nicht genau wie geomipmapping, doch ich hatte die idee nachdem ich ein pdf über geomipmapping 2 mal gelesen hatte und noch nicht wirklich komplett verstanden hatte.

ich probiers mal mit dem quad und auch mit lars' idee

ich melde mich wieder
bis denne


RSWM

_________________
Aktuelles Projekt :
www.PicPlace.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 20, 2003 17:44 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
das "Käselöcherproblem" beschreibt doch auch DelphiC in seinem 3. Heightmap-Tut...
vielleicht hat das da ja die gleiche Ursache wie bei dir oder man kann zumindest die Lösung verwenden <_<

Fiji-Fighter

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 21, 2003 17:14 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 28, 2002 19:27
Beiträge: 568
Wohnort: Chemnitz / Sachsen
mal sehen...

_________________
Aktuelles Projekt :
www.PicPlace.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jun 22, 2003 23:00 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Mai 31, 2003 23:59
Beiträge: 42
der benutzt genauso wie ich den Röttger Algorithmus, da wird auch einfach an den kritischen Stellen das Detailevel angepasst, wenn auch auf eine komische Art. Aber helfen tut dir das bestimmt nicht, der Fall ist zu speziell...

_________________
"OpenGL verbindet"<br>- für die Völkerverständigung zwischen Delphi und C++ ^^


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


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 22 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.008s | 17 Queries | GZIP : On ]