[go: up one dir, main page]

WO2007085482A1 - Verfahren zur erzeugung und darstellung räumlich wahrnehmbarer bilder - Google Patents

Verfahren zur erzeugung und darstellung räumlich wahrnehmbarer bilder Download PDF

Info

Publication number
WO2007085482A1
WO2007085482A1 PCT/EP2007/000724 EP2007000724W WO2007085482A1 WO 2007085482 A1 WO2007085482 A1 WO 2007085482A1 EP 2007000724 W EP2007000724 W EP 2007000724W WO 2007085482 A1 WO2007085482 A1 WO 2007085482A1
Authority
WO
WIPO (PCT)
Prior art keywords
fragments
views
vertex
view
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/EP2007/000724
Other languages
English (en)
French (fr)
Inventor
Alexander Schmidt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEWSIGHT GmbH
Original Assignee
NEWSIGHT GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEWSIGHT GmbH filed Critical NEWSIGHT GmbH
Publication of WO2007085482A1 publication Critical patent/WO2007085482A1/de
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/282Image signal generators for generating image signals corresponding to three or more geometrical viewpoints, e.g. multi-view systems

Definitions

  • the invention relates to a method with which a plurality of views of predetermined, horizontally different viewing positions are derived from a scene and from the views an image of the scene is generated, which is displayed spatially perceptibly on a picture display device for spatial representation with a predetermined resolution. It refers to the problem of the massive increase in the amount of processing that arises when producing the spatially representable image as soon as a larger number of views are to be derived and used for a better spatial impression.
  • a so-called scene contains the description of various objects in a common object space. These can be simple geometric objects such as cuboids, spheres, pyramids, etc., but also more complicated objects such as teapots, cars, etc.
  • primitives These are the smallest possible graphic objects down to lines or points into which the objects collected in the scene can be disassembled.
  • Spatial objects are usually decomposed into primitives from surfaces bounded by polygons, preferably triangles or quadrilaterals. Each vertex of such a polygon-that is, where two edges collide and there is a corner of the polygon-is assigned a vertex. This vertex contains at least the spatial coordinates of the vertex in the object coordinate system of the object space. In addition, the vertex may contain other information such as color, transparency, or texture coordinate.
  • a view can now be derived from a given viewing position and prepared for presentation.
  • the primitives are transformed into a viewing coordinate system by transforming their associated vertices. Conveniently, this places the origin of the viewing coordinate system in the viewing position from which the scene is to be viewed. This is not mandatory, but makes the next steps easier.
  • a depth coordinate z is then determined for each of the transformed vertices corresponding to the viewing distance to the viewing position perpendicular to a projection surface.
  • the vertices are then projected into the projection surface, with each vertex being assigned a horizontal and a vertical coordinate x, y in the projection surface and the determined depth coordinate z.
  • the projection surface or at least a portion thereof - the so-called viewport - corresponds to its position with respect to the viewer to what is later to be displayed on a screen.
  • the view is rasterized in a rasterization unit:
  • the view is underlaid with a raster, which is determined depending on the resolution of the image display device.
  • the primitives are then split up and converted into so-called fragments.
  • Each fragment corresponds to a potential pixel on the screen.
  • a fragment like the vertex, contains further information, e.g. the depth coordinate or illumination information.
  • the values are obtained by interpolation from the corresponding values assigned to the vertices for the vertices of the primitive.
  • fragment processing in a fragment processing entity, the fragments are then checked for their visibility based on their depth coordinate z. Visible fragments may optionally be further modified according to a given appearance.
  • the fragments may be underlaid with fog effects or other shades, textures may also be imaged onto the fragments - for example, a checkerboard pattern or text may be imaged onto a rectangle obliquely in space, tapering to a vanishing point.
  • the visible fragments are usually stored in a so-called frame buffer at a storage location corresponding to the pixel position. Position saved.
  • the content of the frame buffer is then output to the image display device, which has a predetermined resolution.
  • a spatially representable image which is perceivable three-dimensionally on a correspondingly equipped image display device for a viewer
  • several, but at least two views of the scene are needed, which seem to be taken from different viewing positions.
  • the rendering pipeline is re-run from the beginning.
  • all views are stored in frame buffers, they are appropriately combined according to a spatial representation assignment rule, i. it is decided which fragment from which view is assigned to which pixel on the image display device, if any.
  • the left eye On a correspondingly equipped image display device, the left eye then sees something other than the right eye, whereby a spatial impression is created.
  • Other display methods for example using special shutter glasses, are based on this procedure.
  • the assignment rule may vary depending on the type of representation, e.g. a selection or combination of individual fragments from the views and their compilation as shown on a working with filter array technology image display device possible.
  • the spatial impression can also be produced by images shown rapidly one after the other or simultaneously on a corresponding screen, which can work on a holographic basis, for example, provided that the condition that the left eye sees something other than the right is observed.
  • other assignment rules are used, which also includes the resolution of the image display device.
  • WO 00/00934 describes such a method. For both views, however, a common frame buffer is used here.
  • WO 98/43442 it is described how different objects of a scene are first identified, then decomposed into primitives, the primitives of each object being in a depth associated with that object. The primitives belonging to an object are each combined in two-dimensional image segments.
  • the segments as a whole are each shifted according to their associated depth and depending on the distance of the second viewing positions both to each other and to the respective segment. Since each segment is generated independently of the others, the generation of gaps in the shift can be prevented in this way.
  • the object of the invention is therefore to improve a method of the type described above, to the extent that the processing effort, in particular on a graphics card, with which the method is to be realized, is reduced, however, the highest possible accuracy in the 3D display can be achieved and artefacts as described above with respect to WO 98/43442 should be avoided as far as possible.
  • This object is achieved by such a method with which a plurality of views of predetermined, horizontally different viewing positions are derived from a scene, and from the views an image of the scene is output which is spatially perceivable on a picture display device for spatial representation with a predetermined resolution is solved, in which first the scene is decomposed into primitives from areas bounded by polygons, where each vertex of each primitive is assigned a vertex containing at least the spatial coordinates of the vertex in an object coordinate system, and then a first view is derived, in which the primitives are transformed into a viewing coordinate system by transformation of their associated vertices, a depth coordinate z is determined for each transformed vertex which determines the perpendicular to a projection surface corresponds to a first of the viewing positions, and the vertices are projected into the projection surface, wherein each vertex has a horizontal and a vertical coordinate x, y in the projection surface and the ermit- telte depth coordinate z is assigned.
  • the remaining views are then derived from the first view by horizontal displacement of the projected primitive, in which the horizontal coordinate x of each projected vertex of the first view is shifted horizontally according to the horizontal distance of the respective viewing position to the first viewing position and depending on its depth coordinate z ,
  • the displacement is horizontal only for the reason that the eyes of a viewer usually only have a distance with a horizontal component.
  • the term "horizontal" is thus subjectively related to a fictitious observer, but of course it is also possible to perform shifts in other directions, so each vertex is shifted horizontally according to its depth information in the projection plane so that no depth information is lost All the geometry data is transferred to the graphics card all at once, and all calculations, especially those for the lighting, must be done only once per vertex.
  • the views or primitives that belong to the views are highlighted in the next step with a raster, which is given as a function of the resolution of the image display device, and the primitives assigned to the views are converted into fragments. These are then checked for visibility in the corresponding view. Subsequently, the fragments visible in the views are combined to form the image in which, based on an assignment rule, the spatial representation for each position in a frame buffer is determined from the fragments and the corresponding image data value is stored on the position.
  • This assignment rule for the spatial representation is adapted to the corresponding image display device for spatial representation. If, for example, it is a device provided with a filter array, as described, for example, in DE 100 03 326 C2, then the fragments are combined in accordance with the assignment rules mentioned there. Not all fragments visible in one view therefore also appear in the final image, and depending on other devices, other assignment rules, in particular also those associated with temporal and / or spatial sequential or simultaneous presentation, can be used.
  • the contents of the frame buffer are output to the image display device for spatial presentation.
  • the output does not have to be directly and directly to the image display device, but of course the transmission via intermediate devices such as a signal splitter are included.
  • the primitives of the remaining views generated therefrom are converted into fragments in parallel.
  • the once transformed primitive of the first view is shifted eight times to produce the primitives of the remaining views.
  • These primitives are then rasterized together, that is, they are shaded and converted into fragments. Multiple views are processed simultaneously, which increases the speed of processing.
  • the fragments are modified prior to combination with the image according to a given appearance, with each fragment of the first view being modified in parallel with the corresponding fragments of the remaining views.
  • the resulting fragments are also processed in parallel.
  • the appearance may be affected, for example, by fog effects or shades requiring appropriate modification.
  • the fragments are also linked to one or more textures. The visibility of the fragments can also be checked with respect to their respective view in parallel for the respective fragments.
  • the object is also achieved by a method with which a plurality of views of predetermined horizontally different view positions are derived from a scene and from the views an image of the scene is generated, which spatially on a picture display device for spatial representation with a predetermined resolution perceptually outputting, in which first the scene is decomposed into primitives from areas bounded by polygons, where each vertex of each primitive is assigned a vertex containing at least the spatial coordinates of the vertex in an object coordinate system.
  • a first view is derived by transforming the primitives into a viewing coordinate system by transforming their associated vertices, obtaining a depth coordinate z corresponding to the viewing distance perpendicular to a projection surface to a first one of the viewing positions, and the vertices are projected into the projection surface, with each vertex being assigned a horizontal and a vertical coordinate xy in the projection surface and the determined depth coordinate z.
  • the rest of the views are not generated in the next step, but it is initially only the first view with a grid, which is given as a function of the resolution of the image display device, highlighted, and there are only those associated with the first view Primitive converted into fragments.
  • a depth value from the depth coordinates z of the vertices of the associated primitive is determined by interpolation, and the fragment is stored in one of a plurality of frame buffers according to its position in the view and depending on its depth value.
  • Each of the frame buffers is assigned a depth range with a mean depth that is different from the depth ranges assigned to the other frame buffers.
  • Each framebuffer thus corresponds to a depth slice, whereby only at the positions are values stored which fall within the associated depth range.
  • a distinction is not made here between individual objects, but rather the fragmented fragments of the objects are assigned to individual depth ranges. In this way, a higher accuracy can be achieved.
  • the remaining views are then generated by shifting the horizontal positions of the fragments in the frame buffers according to the horizontal distance of the respective viewing position from the first viewing position and depending on the central depths. In principle, it is of course also possible to perform displacements in directions other than horizontal. For each of the views are thus shifted the depth disks against each other.
  • the fragments are combined into the image by determining the corresponding bi-data value from the fragments using a spatial representation assignment rule for each position in a frame buffer and storing it on the position.
  • the content of this frame buffer is output to the image display device.
  • the output does not have to be directly and directly to the image display device, but of course the transmission via intermediate devices such as a signal splitter are included.
  • the fragments Prior to the combination with the image, the fragments are also analyzed for their visibility, preferably only the visible fragments are further processed.
  • FIG. 1 shows the sequence of the first method according to the invention and FIG. 2 shows the sequence of the second method according to the invention.
  • a first method is shown in which the views are generated by shifting the vertices.
  • a spatial scene 1 in an object space is first decomposed by an application program into primitives of surfaces bounded by polygons.
  • Each vertex of each primitive is then assigned a vertex that contains at least the spatial coordinates of the vertex in an object coordinate system.
  • the primitives or their vertices are transferred to a graphics card 2, where they are first in a vertex processing e are processed.
  • a first view is derived by transforming the primitives into a viewing coordinate system by transforming their associated vertices.
  • Each vertex is assigned, in addition to the coordinates in the object coordinate system, additional properties such as color or transparency.
  • a depth coordinate z is determined for each transformed vertex which corresponds to the viewing distance perpendicular to a projection surface to a first viewing position.
  • the vertices are then projected into the projection surface, with each vertex being assigned a horizontal and a vertical coordinate x, y in the projection surface and the determined depth coordinate z.
  • the remaining views are then derived from the first view by horizontal displacement of the primitive.
  • the displacement is horizontal only for the reason that the eyes of a viewer usually only have a distance with a horizontal component.
  • the horizontal coordinate x of each projected vertex of the first view is determined according to the horizontal distance of the respective viewing position to the first viewing position and in dependence In this way, the necessary disparity is generated for the corresponding stereo view
  • the shift is performed several times in succession for each vertex In the example shown in Fig. 1, a total of eight views are derived Rasterization unit 4.
  • the rasterization unit 4 consists of several subunits, each subunit processes a view, the vertices that have emerged from displacement apart being processed in parallel Unit 4, the views are each underlaid with a grid, which is given in dependence on the resolution of the image display device.
  • the primitives assigned to the views are converted into fragments.
  • a fragment corresponds to a potential pixel, it contains not only a coordinate pair x, y for the position in the view shown on a display device as a whole, the depth coordinate and other properties such as color, transparency, etc.
  • the processing and conversion into fragments happens in parallel for all primitive people emerging from displacement.
  • the next step also occurs in parallel for all parallel fragments, ie fragments that have a correspondence in the other views. Is it correct? the transformed primitive around a triangle, the fragments of this triangle are processed in parallel for each view. The fragments are for this purpose passed to a fragment processing unit 5, in which their appearance is changed. A test also takes place as to whether the fragment is visible in the respectively assigned view or not. If it is not visible, it need not be considered further. At the end of this process, the fragments are combined in a combination module 6 into an image by determining from them, using a spatial representation assignment rule, the corresponding image data value for each position in a frame buffer 7 the position is saved.
  • FIG. 2 shows another method according to the invention, but here as well-after decomposing scene 1 into primitives of surfaces bounded by polygons, where each vertex of each primitive is assigned a vertex which is at least the spatial coordinates of the vertex in an object coordinate system contains - the scene or the set of vertices must be passed only once to the graphic card 2 and in the vertex processing 3, the transformation of the primitive by transforming their respective associated vertices into a viewing coordinate system including the adaptation of the properties of the primitives, such as color, transparency, lighting - properties that may be stored in addition to the coordinates in each vertex - must be done only once. In particular, the bill for the lighting can be very expensive.
  • a depth n coordinate z is determined for each transformed vertex which corresponds to the viewing distance perpendicular to a projection surface to a first viewing position. Subsequently, the vertices are projected into the projection surface, with each vertex projecting one horizontal and one vertical each vertex is assigned a horizontal and a vertical coordinate x, y in the projection surface and the determined depth coordinate z.
  • the vertices or primitives thus generated for the first view are transferred to the latching unit 4, where they are underlaid with a grid, which is predefined as a function of the resolution of the image display device, and the primitives assigned to the first view are fragmented being transformed. Subsequently, the fragments are transferred to the fragment processing unit. In this, their appearance is adjusted according to external requirements, for example, textures can be applied to the fragments. It also checks if the fragment is visible in the view. However, in order to avoid the appearance of Lüdken in the picture through the following steps, it is advisable to carry out the visibility test later.
  • a depth value from the depth coordinates z of the vertices of the associated primitive is determined by interpolation for each fragment.
  • the fragment is then assigned to one of several depth slices in the form of frame buffers 9 according to its position in the view and depending on its depth value.
  • Each of the frame buffers 9 is assigned a depth range with a mean depth. The depth ranges of all frame buffers 9 differ.
  • Each framebuffer 9 or each depth disc thus covers its own depth range.
  • the remaining views are then generated by shifting the horizontal positions of the fragments in the frame buffers 9 according to the horizontal distance of the respective viewing position from the first viewing position and in dependence on the primitives. All depth disks are thus shifted against each other.
  • the number of Tiefen ⁇ assin is flexible and determines the accuracy of the resulting spatially perceivable image. It is independent of the number of views that should be derived.
  • Each view is formed, as it were, from a pile of shifted depth disks stacked from back to front. The image content can be added. If the visibility check has already been carried out in the fragment processing unit, then holes that may now occur must possibly be masked by interpolation algorithms.
  • fragments are combined into an image by determining the spatial representation for each position in a frame buffer 7 of the corresponding image data value from the fragments on the basis of an assignment rule stored on the position.
  • the content of the frame buffer 7 is finally output to the image display device 8.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)

Abstract

Die Erfindung betrifft ein Verfahren, mit dem aus einer Szene mehrere Ansichten von vorgegebenen, in horizontaler Richtung unterschiedlichen ßetrachtungspositionen abgeleitet werden und aus den Ansichten ein Bild der Szene erzeugt wird, welches auf einem Bildwiedergabegerät zur räumlichen Darstellung mit einer vorgegebenen Auflösung räumlich wahrnehmbar wiedergegeben wird. Dabei wird die Szene zunächst in Primitive zerlegt. Dann wird eine erste Ansicht abgeleitet, indem die Primitive in ein Betrachtungskoordinatensystem transformiert werden, für jeden transformierten Vertex eine Tiefenkoordinate ermittelt wird, die dem Vertex nach Projektion in eine Projektionsfläche wieder zugeordnet wird. Die übrigen Ansichten werden aus dieser Ansicht durch Verschiebung entweder der Vertizes oder aber der nach Rasterisierung erzeugten Fragmente abgeleitet. Die Fragmente werden anhand einer Zuordnungsvorschrift für die räumliche Darstellung zum Bild kombiniert, welches dann auf dem Bildwiedergabegerät ausgegeben wird. Die Szene wird nur ein einziges Mal an eine Vertex-Processing-Einheit in der Rendering-Pipeline einer Grafikkarte übergeben und durchläuft diese nur einmal.

Description

Verfahren zur Erzeugung und Darstellung räumlich wahrnehmbarer Bilder
Die Erfindung betrifft ein Verfahren, mit dem aus einer Szene mehrere Ansichten von vorgegebenen, in horizontaler Richtung unterschiedlichen Betrachtungspositionen abgeleitet werden und aus den Ansichten ein Bild der Szene erzeugt wird, welches auf einem Bildwiedergabegerät zur räumlichen Darstellung mit einer vorgegebenen Auflösung räumlich wahrnehmbar ausgegeben wird. Sie bezieht sich auf das Problem des massiven Verärbeitungsaufwaήdes, der bei der Erzeugung des räumlich darstellbaren- Bildes entsteht, sobald für einen besseren räumlichen Eindruck eine größer Anzahl von Ansichten abgeleitet und verwendet werden soll.
Im Stand der Technik enthält eine sogenannte Szene die Beschreibung von verschiedenen Objekten in einem gemeinsamen Objektraum. Dabei kann es sich um einfache geometrische Objekte wie Quader, Kugeln, Pyramiden etc. handeln, aber auch um kompliziertere Objekte wie Teekannen, Autos etc. Um aus dieser bisher nur im Objektraum vorliegenden Szene eine Ansicht aus einer Betrachtungsperspektive zu erzeugen wird die Szene zunächst in sogenannte Primitive zerlegt. Dies sind die kleinstmögli- chen graphischen Objekte bis hin zu Linien oder Punkten, in die sich die in der Szene versammelten Objekte zerlegen lassen. Räumliche Objekte werden dabei üblicherweise in Primitive aus von Polygonen begrenzten Flächen, bevorzugt Dreiecken oder Vierek- ken, zerlegt. Jedem Scheitelpunkt eines solchen Polygons - also dort, wo zwei Kanten zusammenstoßen und sich eine Ecke des Polygons befindet - wird ein Vertex zugeordnet. Dieser Vertex enthält mindestens die räumlichen Koordinaten des Scheitelpunktes im Objektkoordinatensystem des Objektraums. Darüber hinaus kann der Vertex weitere Angaben wie beispielsweise über die Farbe, eine mögliche Transparenz, oder auch .eine Texturkoordinate enthalten.
Anhand dieser Daten kann nun eine Ansicht aus einer vorgegebenen Betrachtungsposition abgeleitet und zur Darstellung vorbereitet werden. Dies geschieht in einer Vertex- Processi ng-Einheit in der sogenannten Rendering-Pipeline auf der Graphikkarte beispielsweise eines PCs oder eines sonstigen Geräts, in dem Grafikkarten verwendet werden. Die Primitive werden dabei durch Transformation der ihnen jeweils zugeordneten Vertizes in ein Betrachtungskoordinatensystem transformiert. Praktischerweise legt man dazu den Ursprung des Betrachtungskoordinatensystems in die Betrachtungsposition, von der die Szene betrachtet werden soll. Dies ist nicht zwingend, erleichtert jedoch die nächsten Schritte. Im Vertex-Processing wird dann für jeden der transformierten Vertizes eine Tiefenkoordinate z ermittelt, die den in bezug auf eine Projektionsfläche senkrechten Betrachtungsabstand zu der Betrachtungsposition entspricht. Die Vertizes werden dann in die Projektionsfläche projiziert, wobei jedem Vertex eine horizontale und eine vertikale Koordinate x,y in der Projektionsfläche sowie die ermittelte Tiefenkoordinate z zugeordnet wird. Die Projektionsfläche oder zumindest ein Ausschnitt davon - der sogenannte Viewport - entspricht von ihrer Lage in bezug auf den Betrachter dem, was später auf einem Bildschirm angezeigt werden soll.
Im nächsten Schritt in der Rendering-Pipeline wird die Ansicht in einer Rasterisierungs- Einheit rasterisiert: Die Ansicht wird mit einem Raster unterlegt, welches in Abhängigkeit von der Auflösung des Bildwiedergabegeräts vorgegeben wird. Die Primitive werden dann aufgeteilt und in sogenannten Fragmente umgewandelt. Jedes Fragment entspricht dabei einem potentiellen Pixel auf dem Bildschirm. Außer der Farbe und den möglichen Koordinaten auf dem Bildschirm enthält ein solches Fragment - ähnlich wie der Vertex - weitere Informationen, so z.B. die Tiefenkoordinate oder Beleuchtungsin- formationeπ. Die Werte werden dabei für jedes Fragment in einem Primitiv durch Interpolation aus den den Vertizes zugeordneten entsprechenden Werten für die Eckpunkte des Primitivs gewonnen.
Im folgenden sogenannten Fragment-Processing in einer Fragment-Processing-Elnheit werden dann die Fragmente anhand ihrer Tiefenkoordinate z auf ihre Sichtbarkeit hin überprüft. Sichtbare Fragmente können optionell entsprechend eines vorgegebenen Erscheinungsbildes dabei weiter modifiziert werden. Beispielsweise können den Fragmenten Nebeleffekte oder andere Schattierungen unterlegt werden, es können auch Texturen auf die Fragmente abgebildet werden - beispielsweise kann ein Schachbrettmuster oder ein Text auf ein schräg im Raum liegendes, sich zu einem Fluchtpunkt verjüngendes Rechteck abgebildet werden.
Am Ende der Rendering-Pipeline werden die sichtbaren Fragmente üblicherweise in einem sogenannten Framebuffer an einer der Pixelposition entsprechenden Speicher- Position gespeichert. Der Inhalt des Framebuffers wird dann an das Bildwiedergabegerät ausgegeben, welches eine vorgegebene Auflösung aufweist.
Für die Erzeugung eines räumlich darstellbaren Bildes, welches auf einem entsprechend ausgerüstetem Bildwiedergabegerät für einen Betrachter dreidimensional wahrnehmbar ist, werden mehrere, mindestens jedoch zwei Ansichten der Szene benötigt, die von unterschiedlichen Betrachtungspositionen aufgenommen scheinen. Im Stand der Technik wird für jede dieser Ansichten die Rendering-Pipeline von Anfang an neu durchlaufen. Jedesmal wird die Szene dabei mit der neuen Betrachtungsposition an die Crafikkarte übergeben, und jedesmal wird beispielsweise eine nur leicht abgewandelte Beleuchtungsrechnung durchgeführt. Erst zum Schluß, wenn alle Ansichten in Framebuffern gespeichert sind, werden sie entsprechend einer Zuordnungsvorschrift für die räumliche Darstellung entsprechend kombiniert, d.h. es wird entschieden, welches Fragment aus welcher Ansicht ggf. wann welchem Pixel auf dem Bildwiedergabegerät zugeordnet wird. Auf einem entsprechend ausgestatteten Bildwiedergabegerät sieht das linke Auge dann etwas anderes als das rechte Auge, wodurch ein räumlicher Eindruck hervorgerufen wird. Auch andere Darstellungsverfahren, bei denen-beispielswei- se eine spezielle Shutter-Brille verwendet wird, beruhen auf dieser Vorgehensweise. Die Zuordnungsvorschrift kann dabei je nach Art der Darstellung variieren, so ist z.B. eine Auswahl bzw. Kombination einzelner Fragmente aus den Ansichten und ihre Zusammenstellung entsprechend der Darstellung auf einem mit Filterarraytechnologie arbeitendem Bildwiedergabegerät möglich. Der räumliche Eindruck kann aber auch durch schnell nacheinander oder gleichzeitig auf einem entsprechenden Bildschirm - der beispielsweise auf holographischer Basis arbeiten kann - gezeigte Ansichten hervorgerufen werden, sofern die Bedingung, daß das linke Auge etwas anderes als das rechte sieht, eingehalten wird. Dementsprechend werden andere Zuordnungsvorschriften verwendet, wobei auch jeweils die Auflösung des Bildwiedergabegeräts einfließt.
Das Erzeugen von mehreren Ansichten auf herkömmliche Weise wie im Stand der Technik beschrieben erfordert also die mehrfache Ausführung der Verarbeitung. Speziell die mehrfache Kommunikation des Anwendungsprogrammes mit der Graphikkarte zur Übergabe von Szene und Betrachtungsposition ist eigentlich redundant.
Bei der Erzeugung eines räumlichen Bildes aus zwei Ansichten mag dies nicht ins Gewicht fallen. So beschreibt auch die WO 00/00934 ein solches Verfahren. Für beide Ansichten wird hier jedoch ein gemeinsamer Framebuffer verwendet. In der WO 98/43442 ist beschrieben, wie verschiedene Objekte einer Szene zunächst identifiziert werden, um sie dann in Primitive zerlegt werden, wobei sich die Primitive eines jeden Objektes in einer diesem Objekt zugeordneten Tiefe befinden. Die zu einem Objekt gehörigen Primitive werden jeweils in zweidimensionalen Bildsegmenten zusammengefaßt. Um nun stereoskopische Ansichten zu erzeugen, werden die Segmente als Ganzes jeweils entsprechend der ihnen zugeordneten Tiefe und in Abhängigkeit vom Abstand zweiter Betrachtungspositionen sowohl zueinander als auch zum jeweiligen Segment verschoben. Da jedes Segment unabhängig von den andern erzeugt wird, kann auf diese Weise die Entstehung von Lücken bei der Verschiebung verhindert werden. Nachteilig ist jedoch, daß bei einer hohen Anzahl von Objekten entsprechend viele Segmente anfallen und ein hoher Bearbeitungsaufwand entsteht. Problematisch ist auch die Verarbeitung von Objekten, die sich über einen größeren Tiefenbereich, der auch mehrere andere Objekte umfassen kann, erstrecken - beispielsweise die Erfassung einer Mauer, die in das Bild hinein auf eine Fluchtpunkt zuläuft, auf der aber vorne und hinten jeweils eine Person sitzt.
Aufgabe der Erfindung ist es daher, ein Verfahren der eingangs beschriebenen Art, dahingehend zu verbessern, daß der Verarbeitungsaufwand insbesondere auf einer Graphikkarte, mit der das Verfahren realisiert werden soll, verringert wird, wobei jedoch eine möglichst hohe Genauigkeit bei der 3D-Darstellung erzielt werden soll und Artefakte, wie sie oben in bezug auf die WO 98/43442 beschrieben sind, möglichst vermieden werden.
Diese Aufgabe wird durch ein solches Verfahren, mit dem aus einer Szene mehrere Ansichten von vorgegebenen, in horizontaler Richtung unterschiedlichen Betrachtungspositionen abgeleitet werden und aus den Ansichten ein Bild der Szene erzeugt wird, welches auf einem Bildwiedergabegerät zur räumlichen Darstellung mit einer vorgegebenen Auflösung räumlich wahrnehmbar ausgegeben wird, gelöst, bei dem zunächst die Szene in Primitive aus von Polygonen begrenzten Flächen zerlegt wird, wobei jedem Scheitelpunkt eines jeden Primitivs ein Vertex zugeordnet wird, der mindestens die räumlichen Koordinaten des Scheitelpunktes in einem Objektkoordinatensystem enthält, und anschließend eine erste Ansicht abgeleitet wird, in dem die Primitive durch Transformation der ihnen jeweils zugeordneten Vertizes in ein Betrachtungskoordinatensystem transformiert werden, für jeden transformierten Vertex eine Tiefenkoordinate z ermittelt wird, die den in bezug auf eine Projektionsfläche senkrechten Betrachtungsabstand zu einer ersten der Betrachtungspositionen entspricht, und die Vertizes in die Projektionsfläche projiziert werden, wobei jedem Vertex eine horizontale und eine vertikale Koordinate x,y in der Projektionsfläche sowie die ermit- telte Tiefenkoordinate z zugeordnet wird. Die übrigen Ansichten werden dann aus der ersten Ansicht durch horizontaler Verschiebung der projizierten Primitive abgeleitet, in dem die horizontale Koordinate x jedes projizierten Vertex der ersten Ansicht entsprechend des horizontalen Abstandes der jeweiligen Betrachtungsposition zur ersten Betrachtungsposition und in Abhängigkeit von seiner Tiefen koordinate z horizontal verschoben wird. Die Verschiebung ist einzig aus dem Grund horizontal, daß die Augen eines Betrachters in der Regel auch nur einen Abstand mit horizontaler Komponente aufweisen. Der Begriff „horizontal" ist also subjektiv auf einen fiktiven Betrachter bezogen. Grundsätzlich ist es natürlich auch möglich, Verschiebungen in anderen Richtungen durchzuführen. Jeder Vertex wird also entsprechend seiner Tiefeninformation in der Projektionsebene horizontal verschoben, so daß keine Tiefeninformation verloren geht. Vorteilhaft werden dabei sämtliche Geometriedaten auf einmal an die Graphikkarte übergeben. Ebenso müssen alle Berechnungen, insbesondere die für die Beleuchtung, nur einmal pro Vertex durchgeführt werden.
Die Ansichten bzw. die Primitive, die zu den Ansichten, gehören, werden im nächsten Schritt mit einem Raster, welches in Abhängigkeit von der Auflösung des Bildwiedergabegeräts vorgegeben wird, unterlegt und die den Ansichten zugeordneten Primitive werden in Fragmente umgewandelt. Diese werden anschließend auf ihre Sichtbarkeit in der entsprechenden Ansicht überprüft. Anschließend werden die in den Ansichten sichtbaren Fragmente zum Bild kombiniert, in dem aus den Fragmenten anhand einer Zuordnungsvorschrift die räumliche Darstellung für jede Position in einem Framebuffer der entsprechende Bilddatenwert ermittelt und auf der Position gespeichert wird. Diese Zuordnungsvorschrift für die räumliche Darstellung ist an das entsprechende Bildwiedergabegerät zur räumlichen Darstellung angepaßt. Handelt es sich beispielsweise um ein mit einem Filterarray versehenes Gerät, wie es beispielsweise in der DE 100 03 326 C2 beschrieben ist, so werden die Fragmente entsprechend der dort genannten Zuordnungsvorschriften kombiniert. Nicht unbedingt alle in einer Ansicht sichtbaren Fragmente erscheinen also auch im endgültigen Bild, in Abhängigkeit von anderen Geräten können auch andere Zuordnungsvorschrifteπ, insbesondere auch solche, die mit einer zeitlich und/oder räumlich sequentiellen oder gleichzeitigen Darstellung verknüpft sind, verwendet werden.
Schließlich wird der Inhalt des Framebuffers an das Bildwiedergabegerät zur räumlichen Darstellung ausgegeben. Die Ausgabe muß dabei nicht unmittelbar und direkt an das Bildwiedergabegerät erfolgen, sondern selbstverständlich sind dabei auch die Übertragung über Zwischengeräte wie beispielsweise einen Signalsplitter eingeschlossen. In einer bevorzugten Ausgestaltung der Erfindung werden mit jedem transformierten Primitiv der ersten Ansicht die daraus durch Verschiebung erzeugten Primitive der übrigen Ansichten parallel in Fragmente umgewandelt. Bei acht Ansichten wird also das einmal transformierte Primitiv der ersten Ansicht achtmal verschoben, um so die Primitive der übrigen Ansichten zu erzeugen. Diese Primitive werden dann gemeinsam ra- sterisiert, d.h. mit Rastern unterlegt und in Fragmente umgewandelt. Mehrere Ansichten werden so gleichzeitig abgearbeitet, was die Geschwindigkeit der Bearbeitung erhöht.
Bevorzugt werden die Fragmente vor der Kombination zum Bild entsprechend eines vorgegeben Erscheinungsbildes modifiziert, wobei mit jedem Fragment der ersten Ansicht die entsprechenden Fragmente der übrigen Ansichten parallel modifiziert werden. Nach der parallelen Rasterisierung werden also die entstanden Fragmente auch parallel weiterverarbeitet. Das Erscheinungsbild kann beispielsweise durch Nebeleffekte oder Schattierungen beeinflußt werden, die eine entsprechende Modifikation erfordern. Häufig werden die Fragmente auch mit einer oder mehreren Texturen verknüpft. Auch die Sichtbarkeit der Fragmente kann in bezug auf ihre jeweilige Ansicht parallel für die jeweiligen Fragmente überprüft werden.
Bevorzugt sind in jedem Vertex zusätzlich weitere Eigenschaften der Primitive, beispielsweise Farbe, Transparenz, Art der Lichtquelle und/oder Richtung des Lichteinfalls gespeichert. Bei der Transformation sowie der Umwandlung der Primitive in Fragmente werden diese Eigenschaften ebenfalls berücksichtigt. Insbesondere im Fragment- Processing, d.h. bei der Modifikation des Erscheinungsbildes der Fragmente, werden dies Eigenschafen entsprechend für jedes Fragment angepaßt, beispielsweise durch Interpolation.
Um den Verarbeituπgsaufwand weiter zu verringern, können nach der Überprüfung auf Sichtbarkeit nur die jeweils in einer Ansicht sichtbaren Fragmente weiter verarbeitet werden. Für jede Ansicht wird also überprüft, ob Fragmente sichtbar sind, nur diese werden dann dem Fragment-Processing unterzogen und letztendlich zum Bild kombiniert
Bevorzugt werden aus einer Szene acht Ansichten abgeleitet, dies hat sich als vertretbar sowohl in Hinsicht auf den Bearbeitungsaufwand als auch auf den räumlichen Eindruck erwiesen. Selbstverständlich ist es auch möglich, mehr oder weniger als acht Ansichten zu verwenden: Die Aufgabe wird außerdem auch durch ein Verfahren gelöst, mit dem aus einer Szene mehrere Ansichten von vorgegebenen in horizontaler Richtungen unterschiedlichen Betrachtungspositionen abgeleitet werden und aus den Ansichten ein -Bild der Szene erzeugt wird, welches auf einem Bildwiedergabegerät zur räumlichen Darstellung mit einer vorgegebenen Auflösung räumlich wahrnehmbar ausgegeben wird, bei dem zunächst die Szene in Primitive aus von Polygonen begrenzten Flächen zerlegt wird, wobei jedem Scheitelpunkt eines jedem Primitivs ein Vertex zugeordnet wird, der mindestens die räumlichen Koordinaten des Scheitelpunktes in einem Objektkoordinatensystem enthält. Dann wird eine erste Ansicht abgeleitet, indem die Primitive durch Transformation der ihnen jeweils zugeordneten Vertizes in ein Betrachtungskoordinatensystem transformiert werden, für jeden transformierten Vertex eine Tiefenkoordinate z ermittelt wird, die dem in bezug auf eine Projektionsfläche senkrechten Betrachtungsabstand zu einer ersten der Betrachtungspositionen entspricht, und die Vertizes in die Projektionsfläche projiziert, wobei jedem Vertex eine horizontale und eine vertikale Koordinate x.y in der Projektionsfläche sowie die ermittelte Tiefenkoordinate z zugeordnet wird. Im Unterschied zum vorangehend beschriebenen Verfahren werden im nächsten Schritt nicht die übrigen Ansichten erzeugt, sondern es wird zunächst nur die erste Ansicht mit einem Raster, welches in Abhängigkeit von der Auflösung des Bildwiedergabegeräts vorgegeben wird, unterlegt, und es werden nur die der ersten Ansicht zugeordneten Primitive in Fragmente umgewandelt. Dann wird für jedes Fragment ein Tiefenwert aus den Tiefenkoordinaten z der Vertizes des zugehörigen Primitivs durch Interpolation ermittelt und das Fragment entsprechend seiner Position in der Ansicht und in Abhängigkeit von seinem Tiefenwert in einem von mehreren Framebuffern gespeichert. Jedem der Framebuffer ist dabei ein Tiefen bereich mit einer mittleren Tiefe zugeordnet, der von den den anderen Framebuffern zugeordneten Tiefenbereichen verschieden ist. Jeder Framebuffer korrespondiert also zu einer Tiefenscheibe, wobei nur an den Stellen Werte gespeichert sind, die in den zugehörigen Tiefenbereich fallen. Im Cegensatz zum Stand der Technik wird dabei nicht nach einzelnen Objekten unterschieden, sondern es werden die schon in Pixelgröße zerlegten Fragmente der Objekte einzelnen Tiefenbereichen zugeordnet. Auf diese Weise läßt sich eine höhere Genauigkeit erzielen.
Die übrigen Ansichten werden dann erzeugt, indem die horizontalen Positionen der Fragmente in den Framebuffern entsprechend dem horizontalen Abstand der jeweiligen Betrachtungsposition von der ersten Betrachtungsposition und in Abhängigkeit von den mittleren Tiefen verschoben werden. Grundsätzlich ist es natürlich auch möglich, Verschiebungen in anderen Richtungen als der horizontalen durchzuführen. Für jede der Ansichten werden also die Tiefenscheiben gegeneinander verschoben. Schließlich werden die Fragmente zum Bild kombiniert, indem aus den Fragmenten anhand einer Zuordnungsvorschrift für die räumliche Darstellung für jede Position in einem Framebuffer der entsprechende Biiddatenwert ermittelt und auf der Position gespeichert wird. Der Inhalt dieses Framebuffers wird an das Bildwiedergabegerät ausgegeben. Die Ausgabe muß dabei nicht unmittelbar und direkt an das Bildwiedergabegerät erfolgen, sondern selbstverständlich sind dabei auch die Übertragung über Zwischengeräte wie beispielsweise einen Signalsplitter eingeschlossen. Vor der Kombination zum Bild werden die Fragmente außerdem auf ihre Sichtbarkeit hin analysiert, bevorzugt werden dabei nur die sichtbaren Fragmente weiterverarbeitet.
Bevorzugt sind in jedem Vertex zusätzlich weitere Eigenschaften der Primitive beispielsweise Farbe, Transparenz, Arte der Lichtquelle und/oder Richtung des Lichteinfalls gespeichert und werden bei der Transformation sowie bei der Umwandlung der Primitive in Fragmente berücksichtigt. Zweckmäßig werden dann die Fragmente vor der Kombination zum Bild entsprechend eines vorgegebenen Erscheinungsbildes modifiziert. Auf dieses Erscheinungsbild haben beispielsweise die zusätzlich" in den Vertizes gespeicherten Eigenschaften einen Einfluß. Weiterhin kann das Erscheinungsbild durch die Verknüpfung mit Texturen verändert werden. Auch in diesem Fall hat sich die Verwendung von acht Ansichten als Kompromiß im Hinblick auf Aufwand und räumlichen Eindruck bewährt. Es sei jedoch darauf hingewiesen, daß die Anzahl der Tiefenscheiben nicht von der Anzahl der Ansichten abhängt. Es können also mehr oder weniger Tiefenscheiben bzw. Framebuffer als Ansichten verwendet werden, natürlich auch gleichviel.
Die Erfindung soll im folgenden anhand von Ausführungsbeispielen näher erläutert werden. In den dazugehörigen Zeichnungen zeigt
Fig.1 den Ablauf des ersten erfindungsgemäßen Verfahrens und Fig.2 den Ablauf des zweiten erfindungsgemäßen Verfahrens.
In Fig. l ist ein erstes Verfahren dargestellt, bei der die Ansichten durch Verschiebung der Vertizes erzeugt werden. Eine räumliche Szene 1 in einem Objektraum wird zunächst durch ein Anwendungsprogramm in Primitive aus von Polygonen begrenzten Flächen zerlegt. Jedem Scheitelpunkt eines jeden Primitivs wird dann ein Vertex zugeordnet, der mindestens die räumlichen Koordinaten des Scheitelpunktes in einem Objektkoordinatensystem enthält. Anschließend werden die Primitive bzw. ihre Vertizes an eine Graphikkarte 2 übergeben, wo sie zunächst in einer Vertex-Processing-E\nhe\t 3 verarbeitet werden. Hier wird eine erste Ansicht abgeleitet, indem die Primitive durch Transformation der ihnen jeweils zugeordneten Vertizes in ein Betrachtungskoordinatensystem transformierten werden. Jedem Vertex werden außer den Koordinaten im Objektkoordinatensystem weitere Eigenschaften wie Farbe oder Transparenz zugeordnet. Diese Eigenschaften werden in der Vertex-Processing-Em' heit 3 entsprechend der Transformation modifiziert. Außerdem wird für jeden transformierten Vertex eine Tiefenkoordinate z ermittelt, die dem in bezug auf eine Projektionsfläche senkrechten Betrachtungsabstand zu einer ersten Betrachtungsposition entspricht. Die Vertizes werden dann in die Projektionsfläche projiziert, wobei jedem Vertex eine horizontale und eine vertikale Koordinate x,y in der Projektionsfläche sowie die ermittelte Tiefenkoordinate z zugeordnet wird.
Die übrigen Ansichten werden anschließend aus der ersten Ansicht durch horizontale Verschiebung der Primitive abgeleitet. Die Verschiebung ist einzig aus dem Grund horizontal, daß die Augen eines Betrachters in der Regel auch nur einen Abstand mit horizontaler Komponente aufweisen. „Horizontal" ist also subjektiv auf einen fiktiven Betrachter bezogen. Grundsätzlich ist es natürlich auch möglich, Verschiebungen in- anderen Richtungen durchzuführen. Die horizontale Koordinate x jedes projizierten Vertex der ersten Ansicht wird entsprechend des horizontalen Abstandes der jeweiligen Betrachtungsposition zur ersten Betrachtungsposition und in Abhängigkeit von seiner Tiefenkoordinate z horizontal verschoben. Auf diese Weise wird die notwendige Disparität für die entsprechende Stereoaπsicht erzeugt. Die Verschiebung wird für jeden Vertex mehrfach nacheinander ausgeführt. Im in Fig.1 gezeigten Beispiel werden insgesamt acht Ansichten abgeleitet. Die verschobenen Vertizes werden dann an eine Rasterisierungs-Einheit 4 übergeben. Die Rasterisierungs-Einheit 4 besteht aus mehreren Untereinheiten, jede Untereinheit bearbeitet eine Ansicht, wobei die Vertizes, die aus Verschiebung auseinander hervorgegangen sind, parallel verarbeitet werden. In der Rasterisierungs-Einheit 4 werden die Ansichten jeweils mit einem Raster, welches in Abhängigkeit von der Auflösung des Bildwiedergabegeräts vorgegeben wird, unterlegt. Die den Ansichten zugeordneten Primitive werden in Fragmente umgewandelt. Ein Fragment entspricht dabei einem potentiellen Pixel, es enthält neben einem Koordinatenpaar x,y für die Position in der auf einem Bildwiedergabegerät gezeigten Ansicht als Ganzes auch die Tiefenkoordinate sowie weitere Eigenschaften wie Farbe, Transparenz, etc. Die Verarbeitung und Umwandlung in Fragmente geschieht dabei parallel für alle aus Verschiebung auseinander hervorgegangen Primitive.
Auch der nächste Schritt erfolgt parallel für alle parallelen Fragmente, d.h. Fragmente, die eine Entsprechung in den jeweils anderen Ansichten haben. Handelt es sich bei dem transformierten Primitiv um ein Dreieck, so werden die Fragmente dieses Dreiek- kes für jede Ansicht parallel verarbeitet. Die Fragmente werden dazu an eine Fragment- Processing-Einheit 5 übergeben, in der ihr Erscheinungsbild verändert wird. Dabei findet auch ein Test statt, ob das Fragment in der jeweils zugeordneten Ansicht sichtbar ist oder nicht. Ist es nicht sichtbar, so muß es nicht weiter berücksichtigt werden. Sichtbare Fragmente können beispielsweise mit Texturen unterlegt werden, Nebeleffekten o.a. Am Ende dieses Prozesses werden die Fragmente in einem Kombinationsmodul 6 zu einem Bild kombiniert, indem aus ihnen anhand einer Zuordnungsvorschrift für die räumliche Darstellung für jede Position in einem Framebuffer 7 der entsprechende Bilddatenwert ermittelt und auf der Position gespeichert wird. Nicht alle in einer jeweiligen Ansicht sichtbaren Fragmente müssen dabei zum endgültigen Bild kombiniert werden, dies hängt von der jeweiligen Zuordnungsvorschrift ab, die wiederum von der Art des Bildschirms abhängt, auf dem das räumlich wahrnehmbare Bild dargestellt werden soll. Handelt es sich beispielsweise um einen Bildschirm basierend auf Filterarraytechnologie, so wird bei acht Ansichten jeweils nur etwa ein Achtel der Jeweiligen Ansicht verwendet. In jedem Falle wird am Ende des Verfahrens der Inhalt des Framebuffers 7 an ein Bildwiedergabegerät 8 zur räumlichen Darstellung ausgegeben. Als Bildwiedergabegerät 8 sind selbstverständlich nicht nur Geräte basierend auf Filterarraytechnologie geeignet, sondern auch sogenannte SΛwffer-Brillen, oder auch Head-Mounted-Displays. In diesem letzten Fall werden nur zwei Ansichten benötigt, die Zuordnungsvorschrift muß dann modifiziert werden.
In Fig.2 ist ein anderes erfindungsgemäßes Verfahren gezeigt, wobei jedoch auch hier - nach Zerlegung der Szene 1 in Primitive aus von Polygonen begrenzten Flächen, wobei jedem Scheitelpunkt eines jeden Primitivs ein Vertex zugeordnet ist, der mindestens die räumlichen Koordinaten des Scheitelpunktes in einem Objektkoordinatensystem enthält - die Szene bzw. die Menge von Vertizes nur einmal an die Craphikkarte 2 übergeben werden muß und in der Vertex-Processing-Einbeit 3 die Transformation der Primitive durch Transformation der ihnen jeweils zugeordneten Vertizes in ein Betrachtungskoordinatensystem einschließlich der Anpassung der Eigenschaften der Primitiven, wie beispielsweise Farbe, Transparenz, Beleuchtung - Eigenschaften, die zusätzlich zu den Koordinaten in jedem Vertex gespeichert sein können -, nur einmal durchgeführt werden muß. Insbesondere die Rechnung für die Beleuchtung kann sehr aufwendig sein. In der Vertex-Processing-Eϊnheit 3 wird nach der Transformation für jeden transformierten Vertex eine Tiefe nkoordinate z ermittelt, die dem in bezug auf eine Projektionsfläche senkrechten Betrachtungsabstand zu einer ersten Betrachtungsposition entspricht, ermittelt. Anschließend werden die Vertizes in die Projektionsfläche projiziert, wobei jedem Vertex eine horizontale und eine vertikale projiziert, wobei jedem Vertex eine horizontale und eine vertikale Koordinate x,y in der Projektionsfläche sowie die ermittelte Tiefenkoordinate z zugeordnet wird.
Die so für die erste Ansicht erzeugten Vertizes bzw. Primitive werden an die Rasteπsie- rungs-Einheit 4 übergeben, wo sie mit einem Raster, welches in Abhängigkeit von der Auflösung des Bildwiedergabegerätes vorgegeben wird, unterlegt werden und die der ersten Ansicht zugeordneten Primitive in Fragmente umgewandelt werden. Anschließend werden die Fragmente an die Fragment-Processing-Einheix 5 übergeben. In dieser wird ihr Erscheinungsbild entsprechend äußerer Vorgaben angepaßt, beispielsweise können Texturen auf die Fragmente aufgetragen werden. Außerdem wird untersucht, ob das Fragment in der Ansicht sichtbar ist. Um die Entstehung von Lüdken im Bild durch die folgenden Schritte zu vermeiden ist es jedoch empfehlenswert, die Prüfung auf Sichtbarkeit später durchzuführen.
Im nächsten Schritt wird für jedes Fragment ein Tiefenwert aus den Tiefenkoordinaten z der Vertizes des zugehörigen Primitivs durch Interpolation ermittelt. Das Fragment wird dann entsprechend seiner Position in der Ansicht und in Abhängigkeit von seinem Tiefenwert einem von mehreren Tiefenscheiben in Form von Framebuffern 9 zugeordnet. Jedem der Framebuffer 9 ist dabei ein Tiefenbereich mit einer mittleren Tiefe zugeordnet. Die Tiefenbereiche aller Framebuffer 9 unterscheiden sich. Jeder Framebuffer 9 bzw. jede Tiefenscheibe deckt also einen eigenen Tiefenbereich ab.
Die übrigen Ansichten werden dann erzeugt, in dem die horizontalen Positionen der Fragmente in den Framebuffern 9 entsprechend der horizontalen Abstand der jeweiligen Betrachtungsposition von der ersten Betrachtungsposition und in Abhängigkeit von den Primitiven verschoben werden. Alle Tiefenscheiben werden also gegeneinander verschoben. Die Anzahl der Tiefeπscheiben ist dabei flexibel und bestimmt die Genauigkeit des resultierenden räumlich wahrnehmbaren Bildes. Sie ist unabhängig von der Anzahl der Ansichten, die abgeleitet werden sollen. Jede Ansicht wird sozusagen aus einem Stapel verschobener Tiefenscheiben gebildet, die von hinten nach vorn aufein- andergestapelt werden. Die Bildinhalte können dabei addiert werden. Falls die Überprüfung auf Sichtbarkeit schon in der Fragment-Processing-Einh&iX 5 durchgeführt wurde, so müssen jetzt auftretende Löcher unter Umständen durch Interpolationsalgorithmen maskiert werden.
Schließlich werden im Kombinationsmodul 6 Fragmente zürn Bild kombiniert, indem aus den Fragmenten anhand einer Zuordnungsvorschrift die räumliche Darstellung für jede Position in einem Framebuffer 7 der entsprechenden Bilddatenwert ermittelt und auf der Position gespeichert wird. Im letzten Schritt wird der Inhalt des Framebuffers 7 schließlich an das Bildwiedergabegerät 8 ausgegeben.
Mit den eben beschriebenen Verfahrensweisen kann der Verarbeitungsaufwand auf der Grafikkarte erheblich verringert werden.

Claims

Patentansprüche
Verfahren, mit dem aus einer Szene (1 ) mehrere Ansichten von vorgegebenen, in horizontaler Richtung unterschiedlichen Betrachtungspositionen abgeleitet werden und aus den Ansichten ein Bild der Szene (1 ) erzeugt wird, welches auf einem Bildwiedergabegerät (8) zur räumlichen Darstellung mit einer vorgegebenen Auflösung räumlich wahrnehmbar ausgegeben wird, bei dem die Szene (1 ) in Primitive aus von Polygonen begrenzten Flächen zerlegt wird, wobei jedem Scheitelpunkt eines jeden Primitivs ein Vertex zugeordnet wird, der mindestens die räumlichen Koordinaten des Scheitelpunkts in einem Objektkoordinatensystem enthält, eine erste Ansicht abgeleitet wird, indem die Primitive durch Transformation der ihnen jeweils zugeordneten Vertizes in ein Betrachtungskoordinatensystem transformiert werden, für jeden transformierten Vertex eine Tiefenkoordinate (z) ermittelt wird, die dem in bezug auf eine Projektionsfläche senkrechten Betrachtungsabstand zu einer ersten der Betrachtungspositionen entspricht, und die Vertizes in die Projektionsfläche projiziert werden, wobei jedem Vertex eine horizontale und eine vertikale Koordinate (x, y) in der Projektionsfläche sowie die ermittelte Tiefenkoordinate (z) zugeordnet wird, die übrigen Ansichten aus der ersten Ansicht durch horizontale Verschiebung der projizierten Primitive abgeleitet werden, indem die horizontale Koordinate (x) jedes projizierten Vertex der ersten Ansicht entsprechend des horizontalen Abstandes der jeweiligen Betrachtungsposition zur ersten Betrachtungsposition und in Abhängigkeit von seiner Tiefenkoordinate (z) horizontal verschoben wird, die Ansichten jeweils mit einem Raster, welches in Abhängigkeit von der Auflösung des Bildwiedergabegeräts (8) vorgegeben wird, unterlegt und die den Ansichten zugeordneten Primitive in Fragmente umgewandelt und diese auf ihre Sichtbarkeit in der entsprechenden Ansicht überprüft werden, die in den Ansichten sichtbaren Fragmente zum Bild kombiniert werden, indem aus den Fragmenten anhand einer Zuordnungsvorschrift für die räumliche Darstellung für jede Position in einem Framebuffer (7) der entsprechende Bilddatenwert ermittelt und auf der Position gespeichert wird, und der Inhalt des Framebuffers (7) an das Bildwiedergabegerät (8) zur räumlichen Darstellung ausgegeben wird.
2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, daß mit jedem transformierten Primitiv der ersten Ansicht die daraus durch Verschiebung erzeugten Primitive der übrigen Ansichten parallel in Fragmente umgewandelt werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Fragmente vor der Kombination zum Bild entsprechend eines vorgegebenen Erscheinungsbildes modifiziert werden, wobei mit jedem Fragment der ersten Ansicht die entsprechenden Fragmente der übrigen Ansichten parallel modifiziert werden.
4 Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß die Fragmente mit einer oder mehreren Texturen verknüpft werden.
5. Verfahren, mit dem aus einer S;εene (1 ) mehrere Ansichten von vorgegebenen, in horizontaler Richtung unterschiedlichen Betrachtungspositionen abgeleitet werden und aus den Ansichten ein Bild der Szene (1) erzeugt wird, welches auf einem Bildwiedergabegerät (8) zur räumlichen Darstellung mit einer vorgegebenen Auflösung räumlich wahrnehmbar ausgegeben wird, bei dem die Szene (1 ) in Primitive aus von Polygonen begrenzten Flächen zerlegt wird, wobei jedem Scheitelpunkt eines jeden Primitivs ein Vertex zugeordnet wird, der mindestens die räumlichen Koordinaten des Scheitelpunkts in einem Objektkoordinatensystem enthält, eine erste Ansicht abgeleitet wird, indem die Primitive durch Transformation der ihnen jeweils zugeordneten Vertizes in ein Betrachtungskoordinatensystem transformiert werden, für jeden transformierten Vertex eine Tiefenkoordinate (z) ermittelt wird, die dem in bezug auf eine Projektionsfläche senkrechten Betrachtuπgsabstand zu einer ersten der Betrachtungspositionen entspricht, und die Vertizes in die Projektionsfläche projiziert werden, wobei jedem Vertex eine horizontale und eine vertikale Koordinate (x, y) in der Projektionsfläche sowie die ermittelte Tiefenkoordinate (z) zugeordnet wird, die erste Ansicht mit einem Raster, welches in Abhängigkeit von der Auflösung des Bildwiedergabegeräts (8) vorgegeben wird, unterlegt und die der ersten Ansicht zugeordneten Primitive in Fragmente umgewandelt werden, für jedes Fragment ein Tiefenwert aus den Tiefenkoordinaten (z) der Vertizes des zugehörigen Primitivs durch Interpolation ermittelt wird und das Fragment entsprechend seiner Position in der Ansicht und in Abhängigkeit von seinem Tiefenwert in einem von mehreren Framebuffern (9) gespeichert wird, wobei jedem der Framebuffer (9) ein Tiefenbereich mit einer mittleren Tiefe zugeordnet ist, der von den den anderen Framebuffern (9) zugeordneten Tiefenbereichen verschieden ist, die übrigen Ansichten erzeugt werden, indem die horizontalen Positionen der Fragmente in den Framebuffern (9) entsprechend dem horizontalen Abstand der jeweiligen Betrachtungsposition von der ersten Betrachtungsposition und in Abhängigkeit von den mittleren Tiefen verschoben werden, die Fragmente zum Bild kombiniert werden, indem aus den Fragmenten anhand einer Zuordnungsvorschrift für die räumliche Darstellung für jede Position in einem Framebuffer (7) der entsprechende Bilddatenwert ermittelt und auf der Position gespeichert wird, und der Inhalt dieses Framebuffers (7) an das Bildwiedergabegerät ausgegeben wird.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß die Fragmente vor der Kombination zum Bild entsprechend eines vorgegebenen Erscheinungsbildes modifiziert werden.
7. Verfahren nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß die Fragmente der ersten Ansicht auf ihre Sichtbarkeit überprüft werden und nur die sichtbaren Fragmente weiter verarbeitet werden.
8. Verfahren nach einem der vorgenannten Ansprüche, dadurch gekennzeichnet, daß in jedem Vertex zusätzlich weitere Eigenschaften der Primitive, beispielsweise Farbe, Transparenz, Art der Lichtquelle und / oder Richtung des Lichteinfalls gespeichert und bei der Transformation sowie der Umwandlung der Primitive in Fragmente berücksichtigt werden.
9. Verfahren nach einem der vorgenannten Ansprüche, dadurch gekennzeichnet, daß aus einer Szene acht Ansichten abgeleitet werden.
PCT/EP2007/000724 2006-01-30 2007-01-29 Verfahren zur erzeugung und darstellung räumlich wahrnehmbarer bilder Ceased WO2007085482A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102006005004.5 2006-01-30
DE102006005004 2006-01-30

Publications (1)

Publication Number Publication Date
WO2007085482A1 true WO2007085482A1 (de) 2007-08-02

Family

ID=37903452

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2007/000724 Ceased WO2007085482A1 (de) 2006-01-30 2007-01-29 Verfahren zur erzeugung und darstellung räumlich wahrnehmbarer bilder

Country Status (1)

Country Link
WO (1) WO2007085482A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2469867A3 (de) * 2010-12-22 2013-04-10 Sony Corporation Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren
CN110111408A (zh) * 2019-05-16 2019-08-09 洛阳众智软件科技股份有限公司 基于图形学的大场景快速求交方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998043442A1 (en) * 1997-03-22 1998-10-01 Koninklijke Philips Electronics N.V. Multiple viewpoint image generation
WO2000000934A2 (en) * 1982-08-31 2000-01-06 Koninklijke Philips Electronics N.V. Filter for transforming 3d data in a hardware accelerated rendering architecture
US20010052935A1 (en) * 2000-06-02 2001-12-20 Kotaro Yano Image processing apparatus
US6774895B1 (en) * 2002-02-01 2004-08-10 Nvidia Corporation System and method for depth clamping in a hardware graphics pipeline

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000000934A2 (en) * 1982-08-31 2000-01-06 Koninklijke Philips Electronics N.V. Filter for transforming 3d data in a hardware accelerated rendering architecture
WO1998043442A1 (en) * 1997-03-22 1998-10-01 Koninklijke Philips Electronics N.V. Multiple viewpoint image generation
US20010052935A1 (en) * 2000-06-02 2001-12-20 Kotaro Yano Image processing apparatus
US6774895B1 (en) * 2002-02-01 2004-08-10 Nvidia Corporation System and method for depth clamping in a hardware graphics pipeline

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2469867A3 (de) * 2010-12-22 2013-04-10 Sony Corporation Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren
CN110111408A (zh) * 2019-05-16 2019-08-09 洛阳众智软件科技股份有限公司 基于图形学的大场景快速求交方法

Similar Documents

Publication Publication Date Title
DE69714551T2 (de) Treiberstufe für stereoskopische bildanzeige
DE19953595B4 (de) Verfahren und Vorrichtung zur Verarbeitung dreidimensionaler Bilder
DE69621509T2 (de) Verfahren zur Auswahl zweier Einzelbilder einer zweidimensionalen Bildsequenz als Basis für die Berechnung der relativen Tiefe von Bildobjekten
EP2024793B1 (de) Verfahren und einrichtung zum rendern und generieren computer-generierter videohologramme
EP2027728B1 (de) Verfahren und vorrichtung zur pseudoholographischen bilderzeugung
DE69331031T2 (de) Vorrichtung zur parallelen Bilderzeugung
DE69521739T2 (de) Verfahren und Vorrichtung zur Bildverarbeitung
DE69722139T2 (de) Dreidimensionale abbildung von bildtexturen
DE102004063838A1 (de) Verfahren und Einrichtung zum Berechnen computer generierter Videohologramme
EP0862141A2 (de) Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
DE102015210453B3 (de) Verfahren und vorrichtung zum erzeugen von daten für eine zwei- oder dreidimensionale darstellung zumindest eines teils eines objekts und zum erzeugen der zwei- oder dreidimensionalen darstellung zumindest des teils des objekts
EP2540089A2 (de) Verfahren zur visualisierung von dreidimensionalen bildern auf einer 3d-anzeigevorrichtung und 3d-anzeigevorrichtung
DE102010028668B4 (de) Verfahren zur räumlichen Darstellung
DE10056978B4 (de) Verfahren zur Erzeugung eines stereographischen Bildes
DE112015006086B4 (de) Bildverarbeitungsvorrichtung, Bildanzeigevorrichtung und Bildverarbeitungsverfahren
WO2008025842A1 (de) Schnittstelle und schaltungsanordnung insbesondere für holografische kodiereinheiten oder holografische wiedergabeeinrichtungen
DE69420819T2 (de) Bildverarbeitung
DE102014206914A1 (de) Ein stereoskopisches Aufbereitungssystem
WO2014037039A1 (de) Verfahren und bildverarbeitungsanlage zum entfernen eines visuellen objektes aus einem bild
WO2009118156A2 (de) Verfahren zum erzeugen einer 3d-abbildung einer szene aus einer 2d-abbildung der szene
WO2007085482A1 (de) Verfahren zur erzeugung und darstellung räumlich wahrnehmbarer bilder
EP2478705A1 (de) Verfahren und vorrichtung zum erzeugen von teilansichten und/oder einer raumbildvorlage aus einer 2d-ansicht für eine stereoskopische wiedergabe
EP1249134B1 (de) Verfahren und vorrichtung zu einer hardware-unabhängigen realisierung einer stereoskopischen darstellung
EP0846309B1 (de) Bildverarbeitungsverfahren zur simulation einer tiefenstruktur und zugehörige vorrichtung
DE10246122B4 (de) Verfahren und Vorrichtung zur Darstellung eines computermodellierten Gegenstands

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07711399

Country of ref document: EP

Kind code of ref document: A1