Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi GLScene: Problem mit Alpha bei einem TGLPolygon (https://www.delphipraxis.net/171188-glscene-problem-mit-alpha-bei-einem-tglpolygon.html)

Maiky 23. Nov 2012 20:27

AW: GLScene: Problem mit Alpha bei einem TGLPolygon
 
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?

Jens01 23. Nov 2012 21:14

AW: GLScene: Problem mit Alpha bei einem TGLPolygon
 
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.

Uwe Raabe 24. Nov 2012 00:01

AW: GLScene: Problem mit Alpha bei einem TGLPolygon
 
Zitat:

Zitat von Maiky (Beitrag 1192697)
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.

Maiky 24. Nov 2012 14:45

AW: GLScene: Problem mit Alpha bei einem TGLPolygon
 
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. ;)

Maiky 8. Dez 2012 19:43

AW: GLScene: Problem mit Alpha bei einem TGLPolygon
 
Hat hier jemand eventuell doch noch einen Tipp für mich? Ich suche leider immer noch nach einer Möglichkeit 3D Objecte direkt im Quelltext zu kreieren und nicht über einen Editor zu erstellen und dann zu laden. Weder in den Demos noch im Netz finde ich verständliche Beispiele zum erstellen von Meshes. :?

Maiky 10. Dez 2012 16:57

AW: GLScene: Problem mit Alpha bei einem TGLPolygon
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe es jetzt geschafft meine Form mit als Mesh darzustellen. Was nun im übrigen umgehend passiert, also ohne jede spürbare Wartezeit. Ich wollte jetzt gern darauf die Tranzparenz ausprobieren, aber habe da leider noch Probleme beim setzen einer Farbe und Transparenz:

Code:
mo := TMeshObject.CreateOwned(GLFreeForm.MeshObjects);
mo.Mode := momTriangles;
Und dann werden quasi nur jeweils die drei Eckpunkte hinzugefügt und die Farbe:
Code:
mo.Vertices.Add(x, y, z);
mo.Colors.Add(255,0,0, 100)
Ich finde leider keine weitere Erklärung zu Add(), aber ich nehme an, dies soll Rot, Grün, Blau und Alpha darstellen? Ohne die Farbangabe, habe ich ein durchsichtiges graues Objekt. Ich möchte es aber gern mehrfarbig haben. Fehlt in GLFreeForm.Material noch eine Einstellung? Diese Einstellungen sind drin und bewirken ohne mo.Colors.Add() auch eine Transparenz: http://glscene.sourceforge.net/wikka...ureTransparent

Ich habe das Testprojekt an dem Beitrag angehangen. Wäre total lieb wenn jemand Zeit findet und mal drüber schauen könnte. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz