Renderer des Programms. Übernimmt sowohl die 2D-Slicedarstellung in verschiedenen Achsen, als auch das 3D-Raycasting. Dazu werden Shader-Funktionalitäten der Grafikkarte genutzt.


The following tables list the members exposed by Renderer.

Public Constructors

  Name Description
Public method Renderer Erstellt das Rendering-Device.
Top

Private Fields

  Name Description
Private field alpha X-Rotation der Kamera.
Private field alphaLight X-Rotation des Lichts.
Private field ambientIntensity Ambient Intensity des Lichts.
Private field autoRenderThread Thread, der automatisch nach 1000ms in Vollauflösung rendert.
Private field beta Y-Rotation der Kamera.
Private field betaLight Y-Rotation des Lichts.
Private field box Bounding-Box als Basis für die Generierung der Entry/Exit Positionstexturen.
Private field cameraPos Kameraposition.
Private field d3dPanel Panel, auf das sich der Renderer für seine Ausgabe bezieht.
Private field device Direct3D Device. Nötig für Direct3D-Ausgabe.
Private field diffuseIntensity Diffuse Intensity des Lichts.
Private field effect Ermöglicht Interaktion mit dem Grafikkarten-Shader.
Private field finalFiltering Aktiviert eine zusätzliche lineare Filterung des Endergebnisses.
Private field gradientOffset Offset, der angibt wie weit die Nachbarn zur Gradientenerrechnung entfernt sein sind.
Private field highQuality Aktiviert den High-Quality-Modus - in dem das 3D-Objekt momentan lediglich von oben betrachtet werden kann.
Private field isFinalRendered Flag, ob bereits in voller Auflösung gerendert wurde (nötig für autoRenderThread).
Private field isMouseDown Flag, ob ein Mausbutton gedrückt wird.
Private field isRendering Flag, gerade gerendert wird (nötig für autoRenderThread).
Private field matProjection Projektions-Matrix.
Private field matView View-Matrix.
Private field matWorld Welt-Matrix.
Private field mouseDownX X-Position der Maus beim Klick.
Private field mouseDownY Y-Position der Maus beim Klick.
Private field presentParams Presentation parameters, die nötige Einstellungen für das Direct3D-Device enthalten.
Private field ratio2D Seitenverhältnis 2-dimensionaler Slices (für unverzerrte Darstellung derer).
Private field render3D Aktiviert 3D-Raycast-Modus - andernfalls werden 2D-Slices ausgegeben.
Private field renderPerspective Aktiviert perspektivisches Rendering.
Private field renderTargetBackup Zwischenspeicher für das Rendering-Target.
Private field renderTextureBack Rendering-Texture für die Endpositionen der Volumen passierenden Rays.
Private field renderTextureFront Rendering-Texture für die Startpositionen der eingehenden Rays.
Private field renderTextureLowResRaycast Gering aufgelöste Rendering-Texture für die temporäre Ausgabe (Pre-Rendering) während User Interaktion.
Private field renderTextureRaycast Vollaufgelöste Rendering-Texture für die entgültige Ausgabe.
Private field sizeX Größe des Volumes in X-Richtung.
Private field sizeY Größe des Volumes in Y-Richtung.
Private field sizeZ Größe des Volumes in Z-Richtung.
Private field slicePos Position des Slices in Prozent - nur für 2D-Slice-Modues.
Private field specularIntensity Specular Intensity des Lichts.
Private field specularSize Größe des Specular-Light-Effekts.
Private field stepSize Schrittweite, mit der das Volumen während des Raycasts durchschritten wird.
Private field transferTexture Inhalt der Transferfunktion.
Private field vertexBuffer2D Vertexbuffer für die 2D-Slice Darstellung.
Private field vertexBuffer3D Vertexbuffer für die 3D-Volume Darstellung.
Private field viewingDirection Größe des Volumes in Z-Richtung.
Private field volumeTexture Enthält den eigentlichen Volumsdatensatz.
Private field zoom Zoom-Faktor.
Top

Public Properties

Public Methods

  Name Description
Public method KillRenderThread Bricht den automaitschen Render-Thread ab (z.B. beim Applikationsende).
Public method PreRender Führt einen Pre-Rendering-Vorgang mit geringer Auflösung durch.
Public method Render Overloaded.

M:Volumerenderer.Renderer.Render

Führt einen hochaufgelösten Rendering-Vorgang durch.

Public method SetDimensions  
Public method SetViewingDirection  
Public method StartRenderThread Startet den automatischen Render-Thread.
Top

Private Methods

  Name Description
Private method AutoRenderLoop Führt alle 1000ms einen hochaufgelösten Rendering-Vorgang durch, falls dies noch nicht erfolgt ist.
Private method InitializeGraphics Initialisiert das Device und alles, was dazugehört. Es ist eine Shader 3.0 Grafikkarte nötig, um diese Funktion ohne Fehlermeldung auszuführen und somit "Volumes" überhaupt ausführen zu können.
Private method OnCreateDevice Wird ausgeführt, nachdem das Device erstellt wurde. Hier werden Vertexbuffer initialisiert.
Private method OnCreateVertexBuffer2D Definiert/Positioniert den Inhalt des 2D-Slice-Vertexbuffers und bezieht dabei das Seitenverhältnis der 2D-Slices mit ein.
Private method OnCreateVertexBuffer3D Definiert/Positioniert den Inhalt des 3D-Volume-Vertexbuffers.
Private method OnResetDevice Legt grundlegende Rendering-Eigenschaften des Devices fest.
Private method Render Overloaded.

M:Volumerenderer.Renderer.Render

Führt einen hochaufgelösten Rendering-Vorgang durch.

Private method RenderIntoSurface Rendert die Entry/Exit-Positionstexturen in eine Textur.
Private method SetupMatrices Aktualisiert die Ansichts-Matrizen.
Private method ShowTexture Stellt eine beliebige Textur bildschirmfüllend dar.
Private method this_MouseDown  
Private method this_MouseEnter  
Private method this_MouseMove  
Private method this_MouseUp  
Private method this_MouseWheel  
Top

See Also