Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Lars

Frischling

  • »Lars« ist der Autor dieses Themas

Beiträge: 14

Wohnort: Hamburg

Beruf: Musiker / Fotograf

  • Private Nachricht senden

1

22.03.2012, 14:36

Programmierung eines Hochfrequenz-Sonars, Bräuchte Tipps und Hilfe

Hallo,

ich habe zwar auch schon in meiner Projektvorstellung gepostet, aber ich denke dass hier vielleicht mehr von Euch reinschauen, also Sorry für den doppelten Eintrag.

Nun zu meinem Problem:
Für mein Projekt U-Bootsimulator (Siehe Projektvorstellung oder www.ubootsimulator.de) möchte ich nun das Hochfrequenz-Sonar anfangen.
Dies wird u.a. unter Eis und in Minenverseuchten Gewässern eingesetzt. Durch die hohe Frequenz ist das Sonar in der Lage, auch kleinere Objekte zu erfassen. Hier mal ein paar Bilder aus dem Spiel Dangerous Waters:


(Link)

Hier eine Captor-Mine



(Link)

Ein U-Boot


(Link)

Unter Eis


(Link)

Hier ein reales Bild vom HF-Sonar (Forschung)


(Link)

Und ein HF-Sonar in einem modernen U-Boot

Das Sonar ist in meinem Fall vorne am Turm und hat einen Erfassungswinke von +-45°. Mir reicht eine Umsetzung wie in den oberen drei Bildern.

Hier nun mein Problem.
Ich muss hier - denke ich jedenfalls - ja in die 3D-Programmierung gehen. Sämtliche 3D-Modelle inkl. Texturen sind vorhanden (in *.j3d").
Diese kann ich mit einem Tool in so gut wie jedes andere Format (OGRE) konvertieren. Das war es dann aber auch schon mit meinem
Wissenstand hier für....

Ich hatte schon mal das Buch von David, habe es aber wieder verkauft, weil ich keine Lust hatte eine eigene Engine zu schreiben, auch wenn mir der Vorteil natürlich bewusst ist. Die Erklärungen in dem Buch waren aber sehr hilfreich für mich. Ich dachte daran, eine Grafikengine wie OGRE zu benutzen. In die OGRE Tuts habe ich mich mal eingelesen und empfand das als relativ 'einfach' und verständlich.

Ich bin mir gar nicht sicher, ob ich wirklich hierfür in die 3D-Programmierung gehen muss. Allerdings müssen ja die erfassten Gegenstände z.B. an mir 'vorbeiziehen' oder auch eine gewisse Richtung und 'Tiefe' haben (siehe Bilder oben).

Ich denke mal, dass OGRE dafür eine gute Wahl ist. Vor allem, weil ich auch später das Seerohr noch programmieren muss und es gute Tools bzw. AddOns für OGRE gibt.

Also, ich bin für jede Hilfe und/oder Tipps dankbar. Vor allem, weil ich nicht genau weis, wie ich starten soll.


Wenn sich jemand an dem Projekt beteiligen möchte, nur zu :thumbsup:


So das wars erst Mal.


Gruß,
Lars

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

23.03.2012, 08:40

Du könntest natürlich auch einfach Videos rendern und diese dann einfach abspielen. Dass wäre dann zwar nicht unbedingt Echtzeit aber du hast schöne Animationen mit geringem Aufwand. Dabei könntest du dann natürlich mehrere verschiedene Videos rendern und dann immer ein anderes abspielen. Dann hast du ein bisschen Abwechslung. Für das Video könntest du zum Beispiel Blender benutzen. Bei statischen Modellen würde sich so eine Animation relativ einfach umsetzen lassen. Ansonsten könntest du die Objekte natürlich auch einfach über Ogre steuern. Wenn es nicht C++ sein muss und du ein Windowssystem benutzen solltest könntest du dir vielleicht auch mal C# angucken. Da könntest du dann mit Xna arbeiten. Damit sollte es dir einfacher fallen das umzusetzen. Mogre wäre dann auch eine Möglichkeit. Das ist die Ogreversion für C#. Natürlich kannst du auch einfach bei C++ bleiben wenn du nicht unbedingt was neues lernen willst. Mit Ogre sollte es dann auch relativ zügig gehen. An sich musst du ja nur gucken, dass du die Modelle geladen und bewegt bekommst. Dafür würde ich einfach mal auf der Ogreseite gucken. Das Framework welches für die Tutorials benutzt wird sollte für deine Zwecke ausreichen. Ich gehe nicht davon aus, dass du alles unbedingt selbst machen möchtest;) Dann guckst du dir ersten Tutorials an und solltest schon was auf die Beine stellen können. Wenn dann genaue Fragen auftreten kannst du hier ja einfach noch mal schreiben.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

3

23.03.2012, 13:45

Wenn ich es richtig gelesen habe, wäre es ein Raster und du prüfst für jeden Punkt ob dort ein Objekt ist (Gitterpunktfarbe an) oder nicht (Gitterpunktfarbe aus)? Anstelle der Farbe könnte man auch den Gitterpunkt nach oben schieben, wie im letzten Bild.
Musikvisualisierungsprojekt Soundbild 2

Lars

Frischling

  • »Lars« ist der Autor dieses Themas

Beiträge: 14

Wohnort: Hamburg

Beruf: Musiker / Fotograf

  • Private Nachricht senden

4

23.03.2012, 15:08

Hi, danke für die Tipps.

Das mit dem Video ist eine gute Idee für einen anderen Verwendungszweck (Drohnen mit Kamera). C# ist kein Problem. Mit XNA habe ich auch schon geliebäugelt, vor allem, weil ich ja auch noch das Seerohr programmieren muss. Aber irgendwie komm ich mit OGRE gut klar und verstehe auch ganz gut das Konzept. Allerdings habe ich mich mit XNA auch nicht so wirklich beschäftigt. OGRE hat halt - mit zusätzlichen Library - alles was ich brauche und ich kann in C++ bleiben, was mir doch geläufiger ist...

Mein Ansatz war jetzt folgender:
Ich platziere die Modelle und versuche die Modelle mit eigenen Texturen zu belegen, die dieses 'Sonarrauschen' haben, oder aber wie in den oberen drei Bildern... Ist allerdings auch mein erstes 3D-Projekt, muss halt noch viel experimentieren...

Mir ist nur noch nicht klar, wie ich mit dem (3D) Raster umgehen soll. Das XYZ-System ist mir natürlich klar, aber was für eine 'Einheit' nehme ich für die Entfernung der Modelle im 3D Raum? Float, also 0...0.1...0.2 bis 1 oder 3 ? Oder 0 bis 3000, weil mein Sonar ja nur eine Reichweite von 3000 Yards hat ?

Eigentlich ist es ja ganz Einfach, auch weil ich nur eine Kamera mit einer (Haupt)View benötige. Jedenfalls habe ich das bisher so verstanden...

Gruß,
Lars

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

23.03.2012, 15:35

Du musst dir halt überlegen was du genau sehen möchtest. Ein Raster zu rendern sollte ja nicht besonders schwer sein. Für die Einheitengröße würde ich einfach ein bisschen rumprobieren. Versuche einfach verschiedene größen zu testen und nimm am Ende dass was dir am besten gefällt. Rauschen kannst du auch gut nachträglich einbauen. Wenn nur die Modelle dieses rauschen enthalten sollen könntest du das über einen Pixelshader umsetzen. Dazu solltest du genug im Internet finden. An sich veränderst du die Textur auf dem Modell damit zur Laufzeit. Wenn du das Gesamtbild verändern willst kannst du mit einem Pixelshader auch einfach nachträglich das gerenderte Bild verändern. Dann könntest du den Effekt auf den gesamten Bildschirm bringen. Das sollte denke ich mit beidem schnell umgesetzt sein. Ich habe selbst noch nicht viel Erfahrung mit Ogre, bzw gucke mir grad Mogre an aber an sich sollte es damit nicht viel komplexer sein als mit Xna.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige