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

Aktuelle Zeit: Mo Jul 07, 2025 20:04

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 13, 2003 21:00 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 05, 2003 11:48
Beiträge: 7
Hi Leute,
ich habe da ein einfaches? Problem, bei dem ich aber irgendwie nicht so recht weiter komme:

Ich möchte einen farbigen 3d- Quader zeichnen, welcher aber andersfabige Grenzlinien hat (ähnlich Wireframe- Modus). Beispiel: roter Würfel mit schwarzen Aussenlinien...
Hintergrund: Ich muss einen Stapel von diesen Würfeln zeichen. Verwende ich nur einfachfarbige Objekte, dann erscheinen sie später als 'ein grosser Würfel'. Man kann nicht mehr den Übergang vom einen zum anderen erkennen. Ich habe es schon mit Würfeln mit 'abgerundeten Kanten (Radius) probiert und auch schon einmal Texturen 'draufgelegt. Das Ergebnis ist aber immer eher unbefriedigend. Es soll idealerweise halt so aussehen wie aus dem Cad- System.

Ich hatte dasselbe Problem auch schon bei 2d- Objekten. Hier habe ich mir mit dem Polygonoffset beholfen. Dafür musste ich das Objekt aber zweimal zeichnen.

Gibt es eien einfache Lösung; Hat vielleicht jemand ein einfaches Code- Snippet???

Gruss Cliff


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 14, 2003 10:16 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Was spricht dagegen die Außenlinien mit "glLines" nachzuzeichnen? sicherlich das kostet etwas mehr Leistung, aber kann glaube ich hier vernachlässigt werden und man könnte dann sogar die Dicke bestimmen? Alternativ wäre ne ziemlich schneller Ansatz, wenn Du einfach auffa Textur die Ränder z.b. rot machen würdest ... aber das wäre nur ne Lösung für exact dieses Problem!

Ce,
Phobeus

_________________
"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 Jun 15, 2003 20:34 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wenn du deinen Quader aus GL_QUADS zusammengesetzt hast (ist übrigens auch recht einfach), dann sollte sich deine Problemstellung mit folgendem Code sehr einfach lösen lassen :

<!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre>// Würfel mit gefüllten Flächen (bzw. Texturen) zeichnen
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
ZeichneWürfel;
// Tiefentest auf Less_Equal setzen (zeichnet Fragmente mit gleichem oder niedrigerem Tiefenwert)
glDepthFunc(GL_LEQUAL);
// Nur die Kanten des Würfels zeichnen
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
// Kantenfarbe festlegen (bei Texturnutzung ggf. noch glDisable(GL_TEXTURE_2D) aufrufen)
glColor3f(<span class='integer'>0</span>,<span class='integer'>0</span>,<span class='integer'>0</span>);
ZeichneWürfel;
</pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->

Falls deine Linie trotz des GL_LEQUAL-Tiefentests von deinem Quader überdeckt werden, so könntest du den Quader, bevor du die Linien zeichnest noch minimal via glScalef(1.01, 1.01, 1.01) skalieren, damit die Linien sich tiefentechnisch nicht mit dem gefüllten Quader schneiden...allerdings sollte dies nicht nötig sein, solange dein Quader recht weit vorne liegt.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 16, 2003 08:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 05, 2003 11:48
Beiträge: 7
Hi Son of Satan,
auch Dir erst einmal vielen Dank für die Antwort.
Ich werde es gleich 'heut abend einmal ausprobieren ob mich Dein Vorschlag zum gewünschten 'Quader' bringt. Wirken die Vorgaben für 'gl_polygon_mode' auch auf 'gl_Quads'?

Gruss Cliff


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 16, 2003 10:07 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Zitat:
Ich werde es gleich 'heut abend einmal ausprobieren ob mich Dein Vorschlag zum gewünschten 'Quader' bringt. Wirken die Vorgaben für 'gl_polygon_mode' auch auf 'gl_Quads'?

Ja, der Polygonmodus (via glPolygonMode) wirk auf alle Primitiven.Selbst wenn du ein 3DS-Objekt lädst, oder eine Kugel über gluQuadrics darstellst, werden diese im Drahtgitter dargestellt.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 17, 2003 06:37 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 05, 2003 11:48
Beiträge: 7
@All:
Habe es nach dem entscheidenden Hinweis auf den PolygonMode hinbekommen! Allerdings habe ich wie im 2d Mode den Polygon- Offset verwendet (ist ja auch u.a. dafür da...). Nachdem ich dann noch eine ganze Weile mit dem Hidden- Line/ Surface- Mechanismus gekämpft habe und schon schier verzweifeln wollte, habe ich dann nach Stunden gemerkt, das meine Near- Clipping- Plane zu dicht 'an mir dran war'. Also kleinen Offset reingesetzt: Voila, super- unrealistische Würfel!

Danke noch einmal für die Tips

Gruss Cliff


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 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.007s | 14 Queries | GZIP : On ]