AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi GLScene: Problem mit Alpha bei einem TGLPolygon
Thema durchsuchen
Ansicht
Themen-Optionen

GLScene: Problem mit Alpha bei einem TGLPolygon

Ein Thema von Maiky · begonnen am 25. Okt 2012 · letzter Beitrag vom 10. Dez 2012
Antwort Antwort
Maiky

Registriert seit: 14. Nov 2006
54 Beiträge
 
#1

AW: GLScene: Problem mit Alpha bei einem TGLPolygon

  Alt 19. Nov 2012, 18:54
Ich würde das Thema gern noch einmal aufgreifen. Ich habe mir noch einmal alles durchgelesen, verstehe das Grundproblem, habe aber leider die Schwierigkeit damit es auf meinen Fall zu übertragen.

Ich versuche ja anhand von sehr vielen kleinen "2D" Polygonen (mit max. 3-4 Nodes, also entweder ein Dreieck oder ein Viereck) ein 3D Objekt darzustellen. Wäre es ein komplexes 3D Polygon oder ein Mesh, würde ich das Transparensproblem verstehen.

Gilt es hier eventuell auch als "Mesh", weil ich die einzelnen Polygone zu GLDummyCube hinzufüge und er dadurch die "Sortierung" anders handhabt, als wenn die Polygone frei einzeln im 3D Raum stehen würden?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.676 Beiträge
 
Delphi 12 Athens
 
#2

AW: GLScene: Problem mit Alpha bei einem TGLPolygon

  Alt 21. Nov 2012, 16:18
Kannst du hierzu wieder ein Beispiel-Projekt anhängen, bei dem das Problem auftritt? Die Theorie haben wir ja hier schon genügend behandelt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Maiky

Registriert seit: 14. Nov 2006
54 Beiträge
 
#3

AW: GLScene: Problem mit Alpha bei einem TGLPolygon

  Alt 22. Nov 2012, 14:13
Sehr gern sogar. Wäre natürlich schön wenn es doch eine Lösung gäbe. Es macht nämlich sehr viel Spaß mit GLScene zu arbeiten bzw rumzuspielen. Ich möchte gern einen kleinen Simulator basteln, aber dafür würde ich schon Transparenz benötigen. Daher auch die Frage GLScene oder doch direkt mit OpenGL3 beschäftigen.

Wird es GLScene auch in GL3 geben? Ich glaube aktuell ist es ja "nur" GL2?
Angehängte Dateien
Dateityp: zip First Project C.zip (71,1 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.676 Beiträge
 
Delphi 12 Athens
 
#4

AW: GLScene: Problem mit Alpha bei einem TGLPolygon

  Alt 22. Nov 2012, 16:07
Kann es sein, daß die Polygon-Punkte nicht in einer Ebene liegen? Bei einem Dreieck ist das immer der Fall, aber bei einerm Viereck kann das schon mal daneben gehen.

Ein Polygon soll immer in einer Ebene liegen. Andernfalls wäre das eine gekrümmte Fläche und die muss durch ausreichend planare Polygone angenähert werden.

Wenn das Polygon nicht planar ist, liegt der Schwerpunkt nicht innerhalb der Fläche und somit stimmen die Entfernungsberechnungen für das Rendering nicht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Maiky

Registriert seit: 14. Nov 2006
54 Beiträge
 
#5

AW: GLScene: Problem mit Alpha bei einem TGLPolygon

  Alt 23. Nov 2012, 20:27
Die Punkte sind nicht nur durch X und Y definiert, sondern auch durch Z. Ich möchte ja gern ein 3D Körper erstellen. Als Beispiel ein kugelähnliches Objekt (oder das aus meinem Beispiel). Das heißt man kann so etwas nicht durch ganz viele Polygone definieren? Was verwendet man dann, wenn man mal 3 und mal 4 Punkte als Vector hat?
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#6

AW: GLScene: Problem mit Alpha bei einem TGLPolygon

  Alt 23. Nov 2012, 21:14
Man könnte den Punkt nehmen, der am nächsten zur Sichtebene bzw Bildschirm ist. Das geht mit der "Hessesche Normalform". Ist aber nicht trivial.
Wenn Du Formen hast, die sich durchdringen, dann kannst Du die ganze Sache eh vergessen, da dann das mit der Sortierung nicht mehr funktioniert. Die Polygone der Volumen müßten geschnitten werden und entsprechend, ob sie vor oder hinter dem durchdrungenem Volumen sind, sortiert werden.
Soetwas geht dann nur noch mit Shadern.

Gruss Jens

Zitat:
Das heißt man kann so etwas nicht durch ganz viele Polygone definieren?
Wie meinst Du das? Eine Kugel ist eigentlich aus ganz vielen Polygonen zusammengesetzt. Das macht nur GLScene für Dich.
Achtung: Bin kein Informatiker sondern komme vom Bau.

Geändert von Jens01 (23. Nov 2012 um 21:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.676 Beiträge
 
Delphi 12 Athens
 
#7

AW: GLScene: Problem mit Alpha bei einem TGLPolygon

  Alt 24. Nov 2012, 00:01
Die Punkte sind nicht nur durch X und Y definiert, sondern auch durch Z. Ich möchte ja gern ein 3D Körper erstellen. Als Beispiel ein kugelähnliches Objekt (oder das aus meinem Beispiel). Das heißt man kann so etwas nicht durch ganz viele Polygone definieren? Was verwendet man dann, wenn man mal 3 und mal 4 Punkte als Vector hat?
Du kannst schon 4 Punkte nehmen, die müssen aber in einer Ebene liegen. Du bekommst dann z.B. bei einer Kugel keine glatte Oberfläche, sondern viele Facetten. Wenn du im TGLSceneBuffer das ShadeModel auf smSmooth setzt, sieht das zwar bei Beleuchtung wieder glatt aus, die einzelnen Facetten bleiben geometrisch aber weiterhin erhalten. Das sieht man gut, wenn du ShadeModel zwischen smFlat und smSmooth umschaltest. Das sind dort zwar keine wirklichen TGLPolygon-Objekte, aber eben doch alles Dreiecke.

Wie schon gesagt, bei Dreiecken tritt das Problem nicht auf. Bei Vierecken kannst du dir helfen, indem du daraus jeweils zwei Dreiecke machst.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Maiky

Registriert seit: 14. Nov 2006
54 Beiträge
 
#8

AW: GLScene: Problem mit Alpha bei einem TGLPolygon

  Alt 24. Nov 2012, 14:45
Ich dachte das sei unerheblich. Also muss ich Dreiecke, Quads und Polygone eigentlich mit TGLMesh darstellen? Ich habe dazu leider noch keine brauchbaren Beispiele gefunden. Kennt jemand einen Link/Beispiel wo man sich anschauen kann wie ein simples TGLMesh erstellt wird? Eine Pyramide zum Beispiel.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz