Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Jul 08, 2025 20:40

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: U3D Format (in 3D-Pdf) - Writer
BeitragVerfasst: Mi Dez 12, 2007 21:56 
Offline
DGL Member

Registriert: Fr Okt 24, 2003 22:26
Beiträge: 120
Wohnort: Mannheim
Programmiersprache: Delphi
Hallo,

Hat von euch schon mal jemand mit dem U3D Format geschafft?
Das ist das Format, was auch Adobe im 3D-Pdf verwendet. Und zumindest wird das von Adobe schon einiges gepuscht, daß es evtl. mal ein wirkliches universelles 3D-Format werden könnte. Es ist ja mit jedem Acrobat Reader anzeigbar.

Es gibt dazu auch freie importer und exporter in dlls (sogar mit einigen Beispielen -- leider aber in C).
http://sourceforge.net/projects/u3d/

Leider ist das aber nicht mit Delphi nutzbar, da es nirgends Delphi header dafür gibt.
Ich bin auch nicht der C freak, so daß C++ für mich leider keine alternative ist (tja hier sind leider die Nachteile von Delphi).

Hat jemand von euch damit schon gearbeitet oder weiß wie ich diese Dlls von Delphi nutzen kann? Mich interessiert vor allem mal das Erstellen von U3D Dateien.
Kann mir ansonsten jemand dabei helfen, diese DLL irgendwie von Delphi zugänglich zu machen?

User69


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 13, 2007 01:18 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Hängt von den Headern ab.
Wenn du mir eine Liste der für den Header benötigten Dateien gibst sollte es kein Problem sein.
Aber ansich würde ich sagen: Probier mal ihn selber zu übersetzen. Bis auf verrückte Strukturen sollte es kein Problem geben, und wenn doch sind wir (im IRC) da.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 13, 2007 10:23 
Offline
DGL Member

Registriert: Fr Okt 24, 2003 22:26
Beiträge: 120
Wohnort: Mannheim
Programmiersprache: Delphi
Danke für das Angebot.
Zumindest das selber übersetzen sollte mir sehr schwer fallen, da meine C kenntnisse gegen 0 gehen und ich gerade bei den GUIDs darin gar nicht mehr durchsehe.

Die Header für C liegen in dem Zip File (download siehe unten) unter U3D_A_061228_5\Include. (ich kann Sie hier leider nicht als eigenständige URL anhängen). Das nachbauen der Funktionsaufrufe ist eher trivial, da es wohl nur 9 Stück sind, aber die Typen und Klassen alle nachzubilden, da sehe ich nicht mehr durch. Aber ich habe dort 256 Dateien gezählt, was ne Menge ist. (zugegeben, ich brauch sicher nicht alle, weiß aber nicht inwieweit sie sich gegenseitg referenzieren)

Koplett liegt alles mit den erforderlichen Dlls und samples unter:
http://sourceforge.net/projects/u3d/

Ich würde im ersten Schritt gerne das "einfache" HelloWorld unter
U3D_A_061228_5.zip\U3D_A_061228_5\Source\Samples\HelloWorld\
in Delphi nachbilden. Wenn ich das funktionierend habe, sollte ich genug Material haben um den Rest selber zu begreifen.

Ist das noch möglich das nachzubilden, da ja der Aufwand für am Ende für 256 Dateien doch recht hoch sein sollt, oder?
Villeicht gibt es ja auch einen einfacheren Weg? Irgendwelche Vorschläge (außer in C++ zu arbeiten bitte, Delphi muß voraussetzung blieben)?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 13, 2007 11:26 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ich glaube du vertust dich da gerade etwas. In der Regel muss man nicht alles übersetzen (nachbauen). Typischerweise gibt es nur eine bis ein paar Dateien die für einen Header wichtig sind. Denn um eine DLL benutzen zu können musst du lediglich wissen welche Methoden diese zur Verfügung stellt und welche Konstanten diese erwartet. Die internen Strukturen und Klassen spielen absolut keine Rolle. Zu mal C++ Klassen auch nur sehr bedingt mit Pascal kompatibel sind.

Als Beispiel nenne ich mal die libPNG. Das komplette Packet ist ca. 3,8 MB groß. Allerdings für einen Header ist nur die Datei png.h (144kb) wichtig. In der ist die Schnittstelle definiert. Also Typen, Konstanten und welche Methoden die DLL zur Verfügung stellt. Und das sollte in den meisten Fällen sogar eher reines C sein. Von daher denke ich, dass die GUIDs, Klassen alle intern benutzt werden. Im Zweifel schau dir mal die DLL mit dem "Dependency Walker" (mal danach suchen) an. Der listet dir alle in einer Anwendung/DLL ex- oder importierten Methoden auf. Und dann einmal in den Quellen suchen wo diese Methoden enthalten sind.

Aber wie i0n0s schon gesagt hat. Sollten Fragen sein tu dir keinen Zwang an. Wobei ich persönlich eher auf hier plädiere, da irc ja nur flüchtig ist und evtl der Ein oder Andere so etwas auch noch gebrauchen kann. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 13, 2007 14:23 
Offline
DGL Member

Registriert: Fr Okt 24, 2003 22:26
Beiträge: 120
Wohnort: Mannheim
Programmiersprache: Delphi
Zugegeben: Ich bin hier am Rande meiner Kenntnisse. Und mit den Erklährungen, die so aus dem Internet und aus dem Forum habe, bin ich noch nicht wirklich für die Praxis weiter gekommen. In der IFXCoreCIDs.h dacht ich sind wohl die wichtigtsen sachen, jedoch sind das nur GUIDs.
Könnte sich denn jemand mal das Beispiel anschauen (siehe source oben) und daran erklähren, wie es in der Praxis funtioniert? Dann kann ich es auch praktisch nachvolziehen und verstehe dann hoffentlich. Über ICQ ginge bei mir nur abends.

Interessant wäre als Start ein Demo nachzubauen, wobei das HelloWorld wohl das einfachste ist.
Im Source unter : U3D_A_061228_5.zip\U3D_A_061228_5\Source\Samples\HelloWorld\

Das mit dem Dependency Walker werde ich heute abend dann mal duchtesten, ob ich mit dem was neues erkennen kann.

Bin für jede Hilfe dankbar.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 13, 2007 17:43 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Code:
  1. #include "IFXCoreCIDs.h"
  2. #include "IFXSceneGraph.h"
  3. #include "IFXView.h"
  4. #include "IFXLight.h"
  5. #include "IFXNode.h"
  6. #include "IFXUnknown.h"
  7. #include "IFXCoreServices.h"
  8. #include "IFXGUID.h"
  9. #include "IFXCOM.h"
  10. #include "IFXAuthorMesh.h"
  11. #include "IFXAuthorCLODResource.h"
  12. #include "IFXWriteManager.h"
  13. #include "IFXExportingCIDs.h"
  14. #include "IFXStdio.h"
  15. #include "IFXShaderLitTexture.h"
  16. #include "IFXShadingModifier.h"
  17. #include "IFXModifierChain.h"
  18. #include "IFXMaterialResource.h"
  19. #include "IFXTextureObject.h"
  20. #include "IFXAnimationModifier.h"
  21. #include "IFXMixerConstruct.h"
  22. #include "IFXMotionResource.h"
  23. #include "IFXCLODModifier.h"
  24. #include "IFXAuthorGeomCompiler.h"


Sorry, das sind dann doch ein paar zuviele Dateien.
Lies dir lieber ein bischen Basic C an, denn Header müssen auch gewartet werden.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 14, 2007 10:00 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ich hatte gestern abend auch mal ganz kurz reingeschaut und wenn ich ehrlich sein soll, dann finde ich diese Bibliothek nicht wirklich einfach. Denn so wie es für mich aussah benutzen die keine Bibliothek im klassischen C Stil. Sondern die DLL expotiert nur ca 8 Methoden die mich persönlich stark an COM erinnern. Und die GUIDs und Interfaces in den Quellen bestärken mich dabei. Was mich aber etwas wundert. Die Bibliothek dürfte nur so ähnlich sein wie COM, denn COM gibt es (meines Wissens nach) nur für Windows wärend es die Bibliothek sowohl für Linux als auch für den Mac gibt.

Die Bibliothek benutzt Interfaces. Dort wird vermutlich ein Haupobjekt in der DLL erstellt von welchem man kleinere interfaces erfragen kann. Die Interfaces kann man im übertragenen Sinn auch mit Objekten vergleichen. DirektX, Office und XML DOM (die XML Bibliothek von Microsoft) funktionieren so. Dort wird ein Hauptobjekt erstellt und mit diesem kann man dann auf Unterobjekte zugreifen.

Was ich auch etwas merkwürdig finde ist die enthalten Schnittstellen zu DX7, DX8 und OpenGL. Es scheint also für mich so zu sein, dass diese Bibliothek nicht nur ein reines Dateiformat ist sondern schon mehr den Zustand einer Engine/komplexen Kappselung annimmt. Also Modelle, Texturen, Darstellung, Culling etc. scheint alles schon dort enthalten zu sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 14, 2007 16:01 
Offline
DGL Member

Registriert: Fr Okt 24, 2003 22:26
Beiträge: 120
Wohnort: Mannheim
Programmiersprache: Delphi
COM: Stimmt genau. Im Helpfile steht es auch drin, daß sie ähnlich wie Microsoft COM funktionieren, die DLL jedoch direkt angesprochen wird (also nicht installiert oder registriert werden muß). Außerdem hat die Haupt DLL noch Plugins, wovon eins auch eine einfache Visualisierung ist (Was mich aber nicht interessiert).

Komplex: Das ist wohl so! Wie gesagt ich seh auch nicht durch (da mir auch die C erfahrung fehlt), muß mich aber deshalb scheinbar mit C demnächst etwas mehr rumschlagen. Ich werde Versuchen mir an Hand deren Beispiele eine eigene C Application oder DLL (was mir lieber wäre) zu schrieben, wo ich die Interfaces zu Delphi selbst bestimme und den U3D Header für C nehme. Das scheint wohl das leichtetste (für mich wohl immer noch schwer genug) Variante zu sein. Ihr habt auch festgestellt habt, daß ein protieren auf Delphi wohl recht schwer und aufwendig wäre. Leider gibt es halt nur die C Header und die DLL kann leider nicht als Active X Komponente ausgelesen werden. Und das Format halte ich schon für Interessant, gerade wegen der Verbreitung im Acrobat Reader, woduch es ganz sicher gepusch wird. Das Einbetten in ein PDF sollte dann auch möglich sein.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]