1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

3D-Bild in den VideoRam

    • Frage
  • Danshi
  • 2. November 2006 um 10:05
  • Unerledigt
  • Danshi
    2
    Danshi
    Mitglied
    Punkte
    35
    Beiträge
    5
    • 2. November 2006 um 10:05
    • #1

    Hallo zusammen!

    Wie kann ich ein 3D-Bild(Modell) in den VRAM einer Grafikkarte laden, damit dieses nicht immer wieder neu gezeichnet werden muss bei jeder Verschiebung/Drehung des Bildes?
    Im Moment wird es Pixel für Pixel gezeichnet (so in etwa :winking_face: ).
    Es geht ja schließlich viel schneller wenn es erst im Video-Ram liegt!

    Anmerkung:
    Ich nutze Java (Eclipse) und Python.

  • samyjr
    8
    samyjr
    Mitglied
    Reaktionen
    4
    Punkte
    609
    Beiträge
    117
    • 5. November 2006 um 15:07
    • #2

    was meinst du genau?

    was ist dein model? eine 3d texture? ein polygon haufen?
    was meinst du mir Verschiebung/drehung? soll es nur eine 2D texture sein, die du einfach drehst und scherst?
    verwendest du opengl/directx/java3d?

    bitte erkläre ein bischen genauer dein problem, dann kann ich dir vielleicht helfen...

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 5. November 2006 um 23:24
    • #3

    Falls du OpenGL verwendest, kannst du display lists oder vertex array einsetzen. VBOs helfen auch sehr.
    Falls du nicht OpenGL verwendest, solltest du das tun :) 3D-Modelle in Software zu rendern ist hoffnungslos langsam. Eine Java-Lib für OpenGL ist zB lwjgl.

    Aber so is das ganze sehr schwer zu beantworten.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Danshi
    2
    Danshi
    Mitglied
    Punkte
    35
    Beiträge
    5
    • 6. November 2006 um 10:28
    • #4

    Aufgabe und Problem nun etwas detailierter:

    Ich habe mehrere 2D-Bilder(Schichten: CT-Bilder-nicht transparent), welche ich in ein Stack packe. Diese befinden sich dann (mit Abstand in Z-Richtung) alle übereinander (Man stelle sich einen Würfel vor). Dann werden die Pixel jeder Schicht ausgelesen (durch verschiedene Berechnungen).
    Daraus entsteht dann ein (gerendertes) 3D-Modell.

    Mein Kollege und ich haben einen BeispielCode gefunden der Teile von ImageJ verwendet, unter anderem ImageStack und ImagePlus. Mit diesem BeispielCode ist uns das Rendern möglich aber bei ca. 400 Bildern (Schichten) dauert das in etwa 30sek. Dies sollte jedoch annähernd in Echtzeit geschehen, da das gerenderte 3D-Modell häufig gedreht wird.
    Ziel: Nicht alle Pixel ständig neu zu berechnen!

    Wir würden auch gern OpenGL verwenden, aber uns fehlt die Erfahrung (noch nie verwendet).
    Ich versuchte mich auch mal kurz mit Java3D, aber von Erfahrung kann ich da nicht sprechen.

    Bildgröße(Schicht): 512x512 Pixel
    Grafikkarte: Geforce 6800
    Betriebssystem: Windows XP (und 2000)

    Ich wäre für eventuelle Beispiele sehr dankbar, natürlich auch für jede andere Hilfe!

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 6. November 2006 um 10:40
    • #5

    Das ist ein durchaus nicht-triviales Problem, das man kaum in einem Forumspost lösen kann. Dazu kann ich das Buch Real-Time Volume Graphics empfehlen.

    Das fällt übrigens in die Lehrveranstaltung Visualisierung, aber bei dieser Übung ist von realtime-Darstellung auch keine Spur.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • mtintel
    37
    mtintel
    Mitglied
    Reaktionen
    19
    Punkte
    14.759
    Beiträge
    2.654
    • 6. November 2006 um 11:06
    • #6

    Könnte man nich die Schichten zusammen legen, ein 3D modell in einem richtigen "3D Format" machen und das dann über OpenGL einfach aufrufen, drehen und was man halt so braucht?

    HU: PISWIBibliothekHUStudentPointStatus Neuer Studienplan SammelzeugnisZID
    TU:
    TUWISBibliothekTULehrmittelzentrum TUWEL Neuer Studienplan Unifreie TageZID AbschlussarbeitenPublikationsdatenbank
    Studium: Informatik-Forum REBIRTHMitschriften1 Mitschriften2 Vorlesungs WikiForenkalender
    Allgemein: Apple on CampusUSIUniWikipedia WegfinderUni WegfinderÖffis (VOR)OpenBookMeine WebseiteBücherbörse
    Fehlende/nicht funktionierende
    Links bitte melden :)

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 6. November 2006 um 11:17
    • #7

    das funktioniert nur, solange man auf die Schichten von vorne (oder hinten) draufschaut, von der Seite geht das nicht mehr.

    Möglich ist allerdings, dass man aus dem ganzen Modell Dreiecke bastelt zur Darstellung, das ist aber auch wieder sehr komplex, und das Endergebnis ist meistens nicht das, was man gerne hätte von einem Volumsdatensatz.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • mtintel
    37
    mtintel
    Mitglied
    Reaktionen
    19
    Punkte
    14.759
    Beiträge
    2.654
    • 6. November 2006 um 13:28
    • #8
    Zitat von hal

    Möglich ist allerdings, dass man aus dem ganzen Modell Dreiecke bastelt zur Darstellung, das ist aber auch wieder sehr komplex, und das Endergebnis ist meistens nicht das, was man gerne hätte von einem Volumsdatensatz.

    Mit Maya und anderen Programmen kann man aber dann wieder das optimieren recht gut! Gibt oft das Problem wenn man z.b. Sachen auf ZBrush raus bringen will in ein 3D Programm, dass man viel zu viele Daten hat. deswegen gibt es ja oft Funktionen das man nahe Vertecies löscht bzw mit einander veschmelzen lässt oder eben nen "Mittelwert" macht und dan den Punkt nimmt. Und mit nem MEL, COFFEE,.. Script wird das schon gehen... und da das ein häufiges Problem ist (aus zu vielen Daten weniger zu machen) sollte es da auch am kostenlosen Sektor einiges gutes geben....

    HU: PISWIBibliothekHUStudentPointStatus Neuer Studienplan SammelzeugnisZID
    TU:
    TUWISBibliothekTULehrmittelzentrum TUWEL Neuer Studienplan Unifreie TageZID AbschlussarbeitenPublikationsdatenbank
    Studium: Informatik-Forum REBIRTHMitschriften1 Mitschriften2 Vorlesungs WikiForenkalender
    Allgemein: Apple on CampusUSIUniWikipedia WegfinderUni WegfinderÖffis (VOR)OpenBookMeine WebseiteBücherbörse
    Fehlende/nicht funktionierende
    Links bitte melden :)

  • samyjr
    8
    samyjr
    Mitglied
    Reaktionen
    4
    Punkte
    609
    Beiträge
    117
    • 6. November 2006 um 16:09
    • #9

    schau dir mal nvidia gpu-gems an. da gibt es ein artikel über volume-rendering.

  • Danshi
    2
    Danshi
    Mitglied
    Punkte
    35
    Beiträge
    5
    • 7. November 2006 um 15:04
    • #10

    Danke für die Hinweise...!

    Ich versuch mich jetzt aber mal mit dem VTK (Visualisation Toolkit).
    Denn dieses soll sogar direkt mit CT-Daten umgehen können und dazu sehr umfangreich sein. (Da muss doch was für mich dabei sein :winking_face: )

    Vergleich zwischen OpenGL und VTK

    Vorteil für OpenGL:

    • Geschwindigkeit des Programmes

    Vorteil für VTK:

    • Geschwindigkeit der Programmerstellung


    Hat damit schon jemand Erfahrung (Java + VTK) sammeln können?

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung