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
Seite 2 von 2     12   
Maiky

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

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
670 Beiträge
 
#12

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
Online

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

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
 
#14

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
Maiky

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

AW: GLScene: Problem mit Alpha bei einem TGLPolygon

  Alt 8. Dez 2012, 19:43
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.
  Mit Zitat antworten Zitat
Maiky

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

AW: GLScene: Problem mit Alpha bei einem TGLPolygon

  Alt 10. Dez 2012, 16:57
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.
Angehängte Dateien
Dateityp: zip First Project D.zip (68,3 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:30 Uhr.
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