Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Fase an Körper aus Path3D (https://www.delphipraxis.net/203304-fase-koerper-aus-path3d.html)

juniorA 3. Feb 2020 16:07

Fase an Körper aus Path3D
 
Liste der Anhänge anzeigen (Anzahl: 1)
Fase an Körper aus Path3D
Ich habe einen Körper der aus einer Trapezfläche erzeugt wird.
Dieses geschieht dadurch, dass auf in PathData „M0,0 L5,0 L5,8 L2,8 L0,0“.
Bei 2 Kanten an Oberseite möchte ich eine Phase haben.
Gibt es eine Möglichkeit in den PathData eine Fläche oder einen 2. Köper vorzugeben, welche den 1 Körper begrenzt?

Uwe Raabe 3. Feb 2020 16:31

AW: Fase an Körper aus Path3D
 
Nein, das geht nicht. Was du suchst ist ein CSG-Modeller (siehe Constructive Solid Geometry).

Als Built-In Lösung bleibt dir nur, die entstehenden Kanten und Flächen selbst zu ermitteln und den Körper komplett als TMesh aufzubauen.

Medium 3. Feb 2020 16:41

AW: Fase an Körper aus Path3D
 
Für das Erstellen komplexerer Modelle (also alles was etwas weiter über Grundkörper hinaus geht) ist der Szenendesigner von FMX auch nicht gedacht. Hier wäre es weit sinnvoller und komfortabler die Modelle in einer waschechten 3D-Suite zu bauen, und nachher nur noch fertig zu importieren. Das Programm "Blender" ist z.B. eine unglaublich mächtige kostenfreie Möglichkeit - damit arbeitet man sogar in Hollywood.

juniorA 6. Feb 2020 11:57

AW: Fase an Körper aus Path3D
 
Zuerst einmal danke für den Tip.
Habe mit dem Belender einmal experimentiert und mir einen entsprechenden Körper erstellt und als OBJ exportiert.
Das Zuweisen zu einem TModel3D Objekt hat über den Mesh-Kollektionseditor auch funktioniert.
Kann man das auch zur Laufzeit machen? Ich will auf Knopfdruck einen TModel3D das Aussehen zuweisen was in einer OBJ Datei beschrieben ist.

ZYLAGON 6. Feb 2020 23:28

AW: Fase an Körper aus Path3D
 
Das geht natürlich auch zur Laufzeit, und zwar mit LoadFromFile.
Delphi-Quellcode:
Model3D2.LoadFromFile(path+'xyz.obj');


Damit Du aber etwas sehen kannst (LoadFromFile nicht false wird, obwohl der Pfad stimmt), musst Du unbedingt fmx.obj.importer in die uses_klausel einfügen!
Die gewünschte Textur müsste dann ungefähr so aufzuspielen sein:
Delphi-Quellcode:
for i:=0 to Length(Model3D2.MeshCollection)-1 do Model3D2.MeshCollection[i].MaterialSource:=TextureMaterialSource1;


VG ZYL

juniorA 7. Feb 2020 17:19

AW: Fase an Körper aus Path3D
 
Gerad ausprobiert. Es hat daran gelegen, dass in der Vereinbarung der fmx.obj.importuer nicht eingefügt war. Jetzt läuft es :-D. Auch die mit der Textur funktioniert. Besten Dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 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