Was ist der beste Weg, um die Echtzeit-3D-rendering in einer technischen Anwendung?
Entwickeln wir eine GIS-basierte Anwendung, die simuliert den realen Objekten (z.B. Rohren, Straßen, etc.) in einem virtual-reality - Umgebung. Derzeit verwenden wir ArcScene von ESRI ArcGIS - Paket für 3D-rendering, und in Zukunft wollen wir ersetzen es mit unserem eigenen 3D-Umgebung.
Frage:
Was ist der beste Weg, um die Echtzeit-3D-rendering in den oben genannten Anwendungen?
Ich habe keine Erfahrung in diesem Bereich und ich bin wirklich verwirrt. Sollte ich einen der verfügbaren 3D-rendering-engine (einige sind unten aufgeführt)? wenn die Antwort ja ist, dann die Parameter, die berücksichtigt werden sollten (unabhängig von Ihrer Kosten)?
Hat jemand irgendwelche Erfahrungen oder Anregungen in diesem Bereich?
Umstände und Notwendigkeiten:
- Verwenden wir C# .NET-Umgebung für die Entwicklung der Anwendung
- Es gibt riesige Menge von 3D-Objekten zu zeigen,
- 3D-Objekte sind gruppiert in verschiedene CAD-Dateien
- Interaktion mit der definitiven 3D-Szene wesentlich ist (z.B. Wählen Sie ein 3D-Objekt)
- Laden, entladen, auf -, aus-und legen Sie die Transparenz eines Layers und/oder das Objekt(s) erforderlich sind.
- Hohe Leistung bei Echtzeit-rendering von weit verbreiteten Modelle (Mehr als 800 Hektar Fläche) mit hohen details (von der Straße auf die sehr feine Objekte wie eine Schraube)
- Es gibt keine Notwendigkeit, Voraus-shading-Probleme (zu dieser Zeit)
- Textur muss anwendbar sein
Rendring-Motoren:
Nach einiger Suche fand ich die folgenden 3D-rendering-Lösungen:
-
CadFaster|Motor: "Die CadFaster|Engine ist eine einzigartige und die meisten skalierbaren 3D-rendering-Lösung für technische Anwendungen. Es ist über zehn mal schneller als die üblichen CAD-Anwendungen. Der Motor enthält patentierte Echtzeit-Synchronisation Mechanismen für die 3D-Datensätze und-geometrie, die ermöglicht die automatische integration der master-Anwendung. CadFaster|Engine enthält auch die patentierte Echtzeit-polygon-Reduktion verbessert die 3D-Leistung." zitiert aus DevMaster
-
Quest3D: "Verwenden Quest3D zum erstellen von software -, web-und Simulatoren. Quest3D ist die perfekte Lösung für Architektur-Visualisierung, Produkt Visualisierung, digital entertainment,
computer aided training und high-end-VR-Anwendungen." zitiert aus Quest3D Einführung -
OpenSceneGraph: "Der OpenSceneGraph ist ein open-source high performance 3D graphics toolkit, von der Anwendungsentwicklung eingesetzt in Bereichen wie visuelle simulation, Spiele, virtuelle Realität, wissenschaftliche Visualisierung und Modellierung. Vollständig geschrieben in Standard-C++ und OpenGL ... . Der OpenSceneGraph ist jetzt gut etabliert als der weltweit führende scene graph Technologie, die weit in den vis-sim -, Raum -, wissenschaftliche -, öl -, gas -, Spiele-und virtual-reality-Industrie. Die Haupt-Sprache: C/C++ - Sprache-Wrapper: C#, ... .", zitiert aus OSG-Homepage.
-
Gibt es auch eine Liste fast das komplette verfügbare Motoren an DevMaster und 3DLinks
- Hinzugefügt einige weitere details zu meiner Antwort. Lassen Sie mich wissen, ob es hilft, oder möchten Sie einige weitere Informationen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unabhängig davon, welchen Motor Sie verwenden, gibt es einige wichtige Konzepte zu verstehen.
Da Sie es mit so vielen Objekten, die wichtigste davon ist, dass der Level-of-Detail (LoD). Stellen Sie sicher, dass Ihre Objekte realistisch LoD zugeordnet. Zum Beispiel, Sie werden sich nicht die Mühe machen die high-detail-Modell der Schraube bei der Betrachtung der gesamten Szene. Auch, wenn näher, um es doch noch weit genug entfernt, ein low-detail version der Schraube ist gut genug für das Rendern.
Können, können Sie auch tun tricks, wie Virtual Earth und Fliesen werden Ihre Daten (die mit LoD).
Schließlich culling ist sehr wichtig, aber wahrscheinlich behandelt jede dieser engines, die Sie bereits erwähnt haben.
Wenn Sie Umgang mit GIS-Zeug, check-out AGI Insight3D. Noch in der frühen Entwicklung, aber unterstützt durch eine Menge guter Technik, und entworfen, um große Mengen von Objekten, culling, LoD, etc. Sie haben sogar Möglichkeiten zum einbetten von video als textur.
EDIT:
Wenn Sie sich in C# wie gesagt, ich würde wirklich nehmen einen Blick auf Insight3D. Es ist eine 3D-GIS-engine. Nicht eine Spiel-engine. Es ist die Szene-graph-basiert, was bedeutet, dass Sie nicht haben, um sorgen über die frame-by-frame-rendering als Sie haben könnte, um mit anderen Motoren.
Sie haben alle Konstrukte, die Sie brauchen für
Für mich ist der Unterschied zwischen einer 3D-engine und einer game-engine kann ziemlich unscharf. Von dem, was ich gesehen habe, der wesentliche Unterschied ist, dass game-engines sind mehr sorgen darum, die Dinge gut Aussehen, als genau. Zum Beispiel, haben wir die Unreal engine zum Rendern von unserem Büro, aber wir hatten auch alles zu den verschiedenen Skalen als real-life. Es sah toll aus, aber nicht zu realen Dimensionen. Dies könnte einen Unterschied machen, wenn der Umgang mit den details runter zu Schrauben, wie Sie tun.
Einen kleinen disclaimer: ich arbeite nicht für AGI, aber ich habe persönlich trafen sich die Ingenieure, die diese engine. Sie integriert die neuesten GPU-und rendering-Techniken, so ist es mit Abstand eines der besten, die schnellsten, gut-getan-Motoren, die ich verwendet habe. Es nutzt wissen und die Technologie verwendet, die durch Ihre Hauptanwendung ( STK ), die von vielen Menschen genutzt, die mit hoher Auflösung astronomischen Berechnungen.
SlimDX SDK vielleicht eine option, wenn Ihr bereit zum starten ein bisschen von unten, es ist im Grunde eine Möglichkeit geben, Sie den Zugang zu DirectX aus .NET. Sie haben auch eine Sammlung von Proben für Sie zu beginnen.
Oger - eine 3d-engine unter LGPL oder purcache eine Lizenz
garagegames.com - hat auch ein paar Motoren, abhängig von Ihrer Sprache der Wahl ( Auch der "niedrige" Preis. keine 500k $ Triebwerke )
Beide Oger und garagegames.com haben die "alten" 3d-engines, so dass Sie sollten in der Lage sein zu finden, entweder ganze Spiele oder demos so können Sie überprüfen Sie die Leistung. Ich bin nicht vertraut mit dem schreiben von cad-Anwendungen, so dass, wenn Sie sagen, Sie haben 3D-Objekte im nicht sicher, ob das statisch oder Objekte, die sich ändern, während die Anwendung ausgeführt wird.
Ich habe mit OpenSceneGraph und meiner Meinung nach, wenn Sie nicht sehr gut zu organisieren Sie Ihre Grafik, die Sie könnten am Ende mit eine schlechte Leistung angesichts der Besonderheiten Ihrer Modelle (hohe Details, hohe Objekt Anzahl, vereinzelte Szenen). Sie müssen in der Lage sein, um Ihre partition Szene spatialy (wie oct-trees, kd-trees, etc).
Wenn die Kosten nicht ein Problem, können Sie sich für eine Anbieter, die auch beraten und verkaufen Maschinen, die nicht ganz das gleiche 3D-Grafik-know-how als die OSG zum Beispiel.
Andere Frage zu denken ist, wie Sie tun, Sie importieren Sie Ihre Modelle in die engine. Wenn Sie die Arbeit mit dokumentierten Dateiformate, die Sie könnte es selbst tun, sonst müssen Sie verlassen sich auf externe Bibliotheken zum Lesen und/oder importieren Sie das Modell in den Motor der Wahl.
Wenn Ihre Modelle sind extrem groß, die Sie benötigen, etwas, dass in der Lage ist, die paging als Ihr Modell nicht in den Arbeitsspeicher zur Verfügung (unter Berufung auf das Betriebssystem, paging in diesem Fall ist nicht die beste Idee IMO).
Hier finden Sie eine Liste von 3D-engines, einige von Ihnen Werbung: http://en.wikipedia.org/wiki/List_of_3D_graphics_APIs
Einheit 2.5 hat jetzt eine IDE, die auf windows läuft. Es ist auch ein web-viewer, so dass (mit einem plugin) können Sie anzeigen immersive Umgebungen Recht auf eine web-Seite. Indie-Lizenz ist nur $200.
BTW GarageGames jetzt Lizenzen eine neuere tech genannt Torque3D
Lohnt sich auch die überprüfung der C4 Engine die bekommt hohes Lob über bei devmaster.net
http://www.blender.org/ kommt mit einer game-engine
Sollten Sie schauen, WPF, Windows Presentation Framework (siehe winfx, siehe avalon) und schauen tief in die neuesten Entwicklungen. Vielleicht finden Sie dieser link von einigem Interesse. Auch, was ist Thriple?