![]() |
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?
|
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:
|
AW: GLScene: Problem mit Alpha bei einem TGLPolygon
Zitat:
Wie schon gesagt, bei Dreiecken tritt das Problem nicht auf. Bei Vierecken kannst du dir helfen, indem du daraus jeweils zwei Dreiecke machst. |
AW: GLScene: Problem mit Alpha bei einem TGLPolygon
Ich dachte das sei unerheblich. Also muss ich Dreiecke, Quads und Polygone eigentlich mit
![]() |
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. :?
|
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:
Und dann werden quasi nur jeweils die drei Eckpunkte hinzugefügt und die Farbe:
mo := TMeshObject.CreateOwned(GLFreeForm.MeshObjects);
mo.Mode := momTriangles;
Code:
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:
mo.Vertices.Add(x, y, z);
mo.Colors.Add(255,0,0, 100) ![]() 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 18:54 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