Was ist der beste Weg, Echtzeit-3D-Rendering in einer Engineering-Anwendung zu haben? [geschlossen]

8

Wir entwickeln eine GIS-basierte Anwendung, die die realen Wortobjekte (d. h. Pipes, Roads usw.) in einer Virtual Reality Umgebung simuliert. Derzeit verwenden wir ArcScene von ESRI ArcGIS Paket für 3D-Rendering, und in Zukunft wollen wir es durch unsere eigene 3D-Umgebung ersetzen.

Frage: Was ist der beste Weg, um 3D-Rendering in Echtzeit in der oben genannten Anwendung zu haben? Ich habe keine Erfahrung in diesem Bereich und ich bin wirklich verwirrt. Sollte ich eine der verfügbaren 3D-Rendering-Engine (einige unten aufgeführt) verwenden? Wenn die Antwort ja lautet, welche Parameter sollten dann berücksichtigt werden (unabhängig von ihren Kosten)? Hat jemand irgendwelche Erfahrungen oder Vorschläge in diesem Bereich?

Umstände und Notwendigkeiten:

  1. Wir verwenden die C # .NET-Umgebung für die Entwicklung der Anwendung
  2. Es gibt sehr viele 3D-Objekte, die angezeigt werden sollen
  3. 3D-Objekte sind in verschiedenen CAD-Dateien gruppiert
  4. Die Interaktion mit der endgültigen 3D-Szene ist wichtig (z. B. Auswählen eines 3D-Objekts)
  5. Das Laden, Entladen, An, Aus und Einstellen der Transparenz einer Ebene und / oder von Objekten ist erforderlich.
  6. Hohe Leistung in Echtzeit-Rendering von weit verbreiteten Modellen (mehr als 800 Hektar Fläche) mit hohen Details (von Straßen bis zu sehr feinen Objekten wie einer Schraube)
  7. Es ist nicht notwendig, die Schattierungsprobleme (zu diesem Zeitpunkt) zu verbessern
  8. Textur muss anwendbar sein

Rending Engines: Nach einigem Suchen habe ich folgende 3D-Rendering-Lösungen gefunden:

  1. CadFaster | Engine : Die CadFaster | Engine ist einzigartig und skalierbar 3D-Rendering-Lösung für technische Anwendungen: Es ist zehnmal schneller als herkömmliche CAD-Anwendungen und verfügt über patentierte Echtzeit-Synchronisation -Mechanismen für 3D-Datensätze und -Geometrie, die eine automatische Integration in die Master-Anwendung ermöglichen | Engine enthält außerdem eine patentierte Echtzeit-Polygonreduktion , die die 3D-Leistung verbessert. " zitiert von DevMaster

  2. Quest3D : "Benutze Quest3D, um Software, Web und Simulatoren zu erstellen. Quest3D ist die perfekte Lösung für Architekturvisualisierung, Produktvisualisierung, digitale Unterhaltung, computergestütztes Training und High-End-VR-Anwendungen. "Zitat aus der Quest3D-Einführung

  3. OpenSceneGraph : "Der OpenSceneGraph ist ein Open-Source-Hochleistungs-3D-Grafik-Toolkit von Anwendungsentwicklern in Bereichen wie visuelle Simulation, Spiele, virtuelle Realität, wissenschaftliche Visualisierung und Modellierung, vollständig in Standard C ++ und OpenGL geschrieben ... Der OpenSceneGraph ist heute als die weltweit führende Szenegraktechnologie etabliert, die weithin im vis verwendet wird -sim, Raumfahrt, wissenschaftliche, Öl-Gas-, Spiele- und Virtual-Reality-Industrie. Die Hauptsprache: C / C ++ Language wrappers: C #, .... " zitiert von OSG Homepage.

  4. Außerdem gibt es eine Liste fast vollständiger verfügbarer Engines unter DevMaster und 3DLinks

AliPST 18.04.2009, 13:02
quelle

6 Antworten

6

Unabhängig davon, welche Engine Sie verwenden, es gibt einige wichtige Konzepte, die Sie verstehen sollten.

Da Sie es mit so vielen Objekten zu tun haben, ist der wichtigste der Level of Detail (LoD). Stellen Sie sicher, dass Ihren Objekten eine realistische LoD zugeordnet ist. Zum Beispiel werden Sie nicht das hochdetaillierte Modell der Schraube rendern, wenn Sie die ganze Szene betrachten. Auch wenn es näher und dennoch weit genug entfernt ist, ist eine wenig detaillierte Version der Schraube zum Rendern gut genug.

Sie können auch Tricks wie Virtual Earth machen und Ihre Daten kacheln (was mit LoD zu tun hat). Schliesslich wird das Culling sehr wichtig sein, aber es wird wahrscheinlich mit einer dieser Maschinen umgegangen, die Sie bereits erwähnt haben.

Wenn Sie mit GIS-Sachen zu tun haben, werfen Sie einen Blick auf AGIs Insight3D . Noch in der frühen Entwicklung, aber unterstützt von einer Menge guter Technologie und entwickelt, um große Mengen von Objekten, Culling, LoD, etc. zu handhaben. Sie haben sogar Möglichkeiten, Video als Textur einzubetten.

BEARBEITEN:

Wenn Sie mit C # arbeiten, wie Sie es gesagt haben, würde ich Insight3D wirklich betrachten. Es ist eine 3D-GIS-Engine. Keine Spiel-Engine. Es basiert auf Szenengraphiken, was bedeutet, dass Sie sich nicht um Frame-für-Frame-Rendering kümmern müssen, wie es bei anderen Engines der Fall sein kann.

Sie haben alle Konstrukte, die Sie für

brauchen
  1. Sehr schnelle Trefferprüfung (d. h. welche Einheit du ausgewählt hast).
  2. Szenen-Graph-Klassen mit einfachen Steuerelementen zum bedingten Rendern.
  3. Die Zeit ist als Teil des Szenengraphen in die Engine integriert. Dies bedeutet, dass Sie sogar definieren können, wie die Dinge zu einem früheren Zeitpunkt aussahen, und auf und ab gehen.

Für mich kann der Unterschied zwischen einer 3D-Engine und einer Game-Engine ziemlich unscharf werden. Nach dem, was ich gesehen habe, besteht der Hauptunterschied darin, dass Spielengines sich mehr Sorgen darum machen, Dinge gut aussehen zu lassen, als genau. Zum Beispiel haben wir die Unreal-Engine benutzt, um unser Büro zu rendern, aber wir mussten alles anders machen als das reale Leben. Es sah gut aus, aber nicht in realen Dimensionen. Dies kann einen Unterschied machen, wenn Sie mit Details zu Schrauben arbeiten, wie Sie es tun.

Ein kleiner Haftungsausschluss: Ich arbeite nicht für AGI, aber ich habe persönlich die Ingenieure getroffen, die diese Engine erstellen. Sie integrieren die neuesten GPU- und Rendering-Techniken, so dass sie bei weitem zu den besten und leistungsstärksten Motoren gehört, die ich bisher verwendet habe. Es nutzt Wissen und Technologie, die von der Hauptanwendung ( STK ) verwendet werden wird von vielen Menschen für hochauflösende astronomische Berechnungen verwendet.

    
Erich Mirabal 19.04.2009, 16:36
quelle
3

SlimDX SDK könnte Option sein, wenn Sie bereit sind, ein bisschen von unten zu starten, es ist im Grunde eine Möglichkeit, Ihnen Zugriff auf DirectX zu geben .NETZ. Sie haben auch eine Sammlung von Proben für Sie zu starten.
Ogre - eine 3D-Engine unter LGPL oder eine Lizenz für garagegames.com lizenzieren - hat auch eine wenige Motoren, abhängig von Ihrer Sprache der Wahl (auch "niedriger" Preis. keine 500k $ Motoren hier)

Ogre und garagegames.com Haben Sie "alte" 3D-Motoren, so sollten Sie in der Lage sein, entweder vollständige Spiele oder Demos zu finden, so dass Sie die Leistung überprüfen können. Ich bin nicht vertraut mit dem Schreiben von CAD-Anwendungen, also wenn Sie sagen, Sie haben 3D-Objekte, bin ich nicht sicher, ob das statische oder Objekte, die sich ändern können, während die Anwendung ausgeführt wird.

    
EKS 18.04.2009 15:51
quelle
1

Unity 2.5 hat jetzt eine IDE, die unter Windows läuft. Es gibt auch einen Web-Viewer, so dass Sie (mithilfe eines Plugins) immersive Umgebungen direkt auf einer Webseite anzeigen können. Indie Lizenz ist nur $ 200.

BTW GarageGames lizenziert jetzt eine neuere Technologie namens Torque3D

Auch die C4-Engine , die bei devmaster.net

    
Scott Evernden 18.04.2009 15:59
quelle
1

Ich habe mit OpenSceneGraph gearbeitet und meiner Meinung nach, wenn Sie nicht sehr gut darin sind, Ihren Graphen zu organisieren, könnten Sie aufgrund der Besonderheiten Ihrer Modelle (hohe Details, hohe Objektanzahl, verstreute Szenen) schlechte Ergebnisse erzielen. Sie müssen in der Lage sein, Ihre Szene räumlich zu partitionieren (wie Oktbäume, kd-Bäume usw.).

Wenn Kosten kein Problem darstellen, können Sie sich an Anbieter wenden, die auch Beratungsdienste anbieten und Motoren verkaufen, die nicht die gleiche 3D-Grafik-Expertise erfordern wie zum Beispiel das OSG.

Ein weiterer wichtiger Punkt ist, wie Sie Ihre Modelle in die Engine importieren. Wenn Sie mit dokumentierten Dateiformaten arbeiten, können Sie dies selbst tun, ansonsten müssen Sie sich auf externe Bibliotheken verlassen, um das Modell in Ihre Engine Ihrer Wahl einzulesen und / oder zu importieren.

Wenn Ihre Modelle extrem groß sind, benötigen Sie etwas, das gepauscht werden kann, da Ihr Modell nicht in den verfügbaren Speicher passt (in diesem Fall ist es nicht die beste Idee IMO, sich auf das Betriebssystem für Paging zu verlassen).

Hier finden Sie eine Liste von 3D-Engines, von denen einige kommerziell sind: Ссылка

    
grivei 21.04.2009 13:00
quelle
0

Ссылка kommt mit einer Spiele-Engine

    
Name 18.04.2009 14:12
quelle
0

Sie sollten sich WPF, Windows Presentation Framework (siehe winfx, siehe Avalon) ansehen und sich eingehend mit den neuesten Entwicklungen befassen. Vielleicht finden Sie diesen Link von Interesse. Was ist Thriple ?

    
Chris Morley 19.04.2009 16:18
quelle

Tags und Links