[go: up one dir, main page]

WO2022113246A1 - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法 Download PDF

Info

Publication number
WO2022113246A1
WO2022113246A1 PCT/JP2020/044101 JP2020044101W WO2022113246A1 WO 2022113246 A1 WO2022113246 A1 WO 2022113246A1 JP 2020044101 W JP2020044101 W JP 2020044101W WO 2022113246 A1 WO2022113246 A1 WO 2022113246A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
map
color
image processing
height
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/JP2020/044101
Other languages
English (en)
French (fr)
Inventor
章男 大場
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
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 Sony Interactive Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Priority to JP2022564916A priority Critical patent/JP7604521B2/ja
Priority to PCT/JP2020/044101 priority patent/WO2022113246A1/ja
Priority to US18/253,067 priority patent/US20230351674A1/en
Publication of WO2022113246A1 publication Critical patent/WO2022113246A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding

Definitions

  • the present invention relates to an image processing device and an image processing method for generating a display image.
  • the present invention has been made in view of these problems, and an object of the present invention is to provide a technique for displaying an image including a three-dimensional object with low delay and high quality.
  • an aspect of the present invention relates to an image processing device.
  • This image processing device uses hierarchical data representing a color map showing the distribution of color values on the surface of an object to be displayed and a height map showing the distribution of heights from a reference shape on the surface at different resolutions.
  • the data acquisition part that loads the part necessary for drawing the object and the loaded height map, the point on the object that the ray reaches in late racing is obtained, and then the color map is referenced. It is characterized by including a drawing unit that acquires a color value of an object at a reaching point and determines a pixel value of a display image, and an output unit that outputs data of a display image.
  • the image processing device displays a color map showing the distribution of color values on the surface of the object to be displayed and a height map showing the distribution of heights from the reference shape on the surface at different resolutions.
  • the step of loading the part necessary for drawing the object into the memory and the loaded height map from the created hierarchical data the point on the object reached by the ray in late racing is obtained, and then the color map is obtained. It is characterized by including a step of acquiring a color value of an object at a destination and determining a pixel value of a display image by reference, and a step of outputting data of a display image.
  • an image including a three-dimensional object can be displayed with low delay and high quality.
  • FIG. 1 It is a figure which shows the configuration example of the image display system in this embodiment. It is a figure for demonstrating the outline of the drawing process of the display image used in this embodiment. It is a flowchart which shows the determination processing procedure of the pixel value when the ray marching is adopted in this embodiment. It is a figure for demonstrating the influence on ray tracing when the height map is used in this embodiment. It is a figure which illustrates the shape of the reference map which can be used in this embodiment. It is a figure which illustrates the display image when the display target is a month in this embodiment. It is a figure which illustrates the reference map which can be used when expressing the moon shown in FIG.
  • FIG. 1 shows a configuration example of an image display system to which this embodiment can be applied.
  • the image display system 1 includes image processing devices 10a, 10b, and 10c for displaying images according to user operations, and a content server 20 for providing image data used for display.
  • Input devices 14a, 14b, 14c for user operation and display devices 16a, 16b, 16c for displaying images are connected to the image processing devices 10a, 10b, and 10c, respectively.
  • the image processing devices 10a, 10b, and 10c and the content server 20 can establish communication via a network 8 such as a WAN (World Wide Network) or a LAN (Local Area Network).
  • a network 8 such as a WAN (World Wide Network) or a LAN (Local Area Network).
  • the image processing devices 10a, 10b, and 10c and the display devices 16a, 16b, 16c and the input devices 14a, 14b, 14c may be connected either by wire or wirelessly, respectively. Alternatively, two or more of those devices may be integrally formed.
  • the image processing device 10b is connected to a head-mounted display which is a display device 16b.
  • the head-mounted display also functions as an input device 14b because the field of view of the displayed image can be changed by the movement of the user who wears the head-mounted display on the head.
  • the image processing device 10c is a mobile terminal, and is integrally configured with a display device 16c and an input device 14c which is a touch pad covering the screen.
  • the appearance shape and connection form of the illustrated device are not limited.
  • the number of image processing devices 10a, 10b, 10c and the content server 20 connected to the network 8 is also not limited.
  • the image processing devices 10a, 10b and 10c are collectively referred to as an image processing device 10
  • the input devices 14a, 14b and 14c are collectively referred to as an input device 14
  • the display devices 16a, 16b and 16c are collectively referred to as a display device 16.
  • the input device 14 may be any or a combination of general input devices such as a controller, keyboard, mouse, touch pad, and joystick, and supplies the contents of user operations to the image processing device 10.
  • the display device 16 may be a general display such as a liquid crystal display, a plasma display, an organic EL display, a wearable display, or a projector, and displays an image output from the image processing device 10.
  • the content server 20 provides the image processing device 10 with content data accompanied by an image display.
  • the type of the content is not particularly limited, and may be any of electronic games, ornamental images, web pages, electronic newspapers, electronic books, and the like.
  • the image processing device 10 may realize the display processing while acquiring the content data used for display from the content server 20, or may read the content data acquired in advance from the internal storage device and use it for display. .. In the latter case, the source of the content data is not limited to the content server 20, and may be a recording medium.
  • the display target is composed of a three-dimensional object.
  • the three-dimensional object may be a manually created object or a live-action (actually measured) object as long as the shape and color information in three dimensions are obtained.
  • the image processing device 10 displays a state in which the object to be displayed is viewed from a free angle in response to a user operation via the input device 14.
  • the image processing device 10 may control the viewpoint and line of sight to the object according to the progress of the game.
  • the 3D object may be stationary, moved, or changed in posture. Further, the three-dimensional object may be deformed. In any case, the image processing device 10 displays a moving image by generating a display image including a three-dimensional object at a predetermined rate.
  • the display technology of 3D objects has greatly developed in terms of both hardware and software. For example, path tracing, which is a type of ray tracing, reduces the amount of calculation by probabilistically calculating a rendering equation expressing the relationship between a ray (light ray) and an object surface using the Monte Carlo method.
  • BVH Binary Volume Hierarchy
  • FIG. 2 is a diagram for explaining the outline of the drawing process of the display image used in the present embodiment.
  • a spherical object 106 is displayed. That is, in the world coordinate system that defines the virtual space, the object 106 defined by the three-dimensional model and the view screen 102 corresponding to the position of the viewpoint and the direction of the line of sight of the user 100 are arranged. Basically, the display image is generated by projecting the object 106 and the background 108 onto the view screen 102.
  • the object 106 can be moved from various distances and angles. You can display the displayed video.
  • high-quality image expression is realized by using ray tracing as a base.
  • Ray tracing generally obtains the color information of the destination as a pixel value by generating a ray passing through each pixel on the view screen 102 from the viewpoint and tracing the path in consideration of interactions such as reflection, transmission, and refraction. It is a technique to do.
  • the pixel value of the pixel 103a is determined by acquiring the color of the arrival point. Further, since the ray 104b passing through the pixel 103b does not include the object 106 in the path, the color of the arrival point in the background 108 is acquired as the pixel value of the pixel 103b.
  • the ray 104a may take a complicated route such that the object 106 reflects or transmits to reach another object, and further reflects or transmits.
  • ray marching can be mentioned as a method for improving the efficiency of tracking until a ray reaches an object.
  • Ray marching uses a distance function specified for each object shape, obtains the distance from the ray to the object, and advances the ray by the distance to the nearest object to reach the final ray. It is a method to find the destination.
  • FIG. 3 is a flowchart showing a procedure for determining a pixel value when ray marching is adopted. This flowchart shows a procedure for determining the value of one pixel in the display image, and repeats the illustrated procedure for all the pixels in drawing the entire display image.
  • a view screen corresponding to the viewpoint and the line of sight is set, and then a ray passing through the target pixel is generated from the viewpoint (S10). This process actually corresponds to defining the direction in which the ray travels.
  • the object closest to the ray position (first time, the viewpoint) is searched for in all directions (S12). The distance from the ray to the object is calculated by the distance function given for each shape of the object.
  • the ray is advanced by that distance (S16). If the path length up to that point of the ray has not reached the preset upper limit (N in S18), the nearest object is searched for in the advanced destination (S12). After that, the same process is repeated, and when an object whose distance is short enough to be considered to be in contact with the ray is detected (Y in S14), that object is determined as the destination (S20).
  • the ray that reaches the object will be determined to reach the object in the second search.
  • the color value at the point on the object, which is the destination of the ray is acquired (S22).
  • the acquired color value is output to the display device 16 as one pixel of the display image (S24).
  • the path length of the ray reaches the upper limit in S18 (Y in S18)
  • it is determined that the object is not included in the path the destination on the background in that direction is set as the destination, and the pixel value is determined. (S20 to S24).
  • a color map representing the color values acquired in S22 as a distribution on the entire surface of the object is generated in advance.
  • the color map can be generated in advance over time, it can be generated in detail by the original ray tracing.
  • the means for generating the color map is not particularly limited, and the color map may be acquired by measurement by a sensor or photography.
  • the color map may include distribution information of various parameters that affect the color, such as the reflection coefficient.
  • the obtained color value can be corrected according to the situation. For example, a lighting process such as expressing the reflection of a light source according to the relationship between the normal on the surface of the object and the ray may be performed by using the reflection coefficient.
  • a height map representing the size of the unevenness of the object surface as a distribution over the entire surface is also generated, and is introduced when the distance to the ray is acquired in S12 to obtain the distance of the object surface.
  • FIG. 4 is a diagram for explaining the influence on ray tracing when the height map is used.
  • the object is approximately a sphere, and a cross section shows a state in which the surface is uneven.
  • the height map shows the distribution of height in the normal direction from the surface of the sphere, which is the basic shape, as shown by the thick arrow in the figure. If the heightmap is not taken into consideration, the ray 112 shown in the figure does not reach the object, but when the height is added to the surface of the sphere by the heightmap, the ray 112 reaches the object 110. In S12 of FIG. 3, if the distance to the ray is calculated by the distance function including the height map, such an arrival event can be detected, and as a result, the unevenness of the surface of the object 110 can be accurately expressed.
  • the distance function varies depending on the basic shape such as a sphere or a cube
  • the method of reflecting the height represented by the height map in the distance function also varies depending on the type of the basic shape. Therefore, if a distance function including a heightmap reference is prepared for each basic shape in advance and the type and size of the basic shape are associated with the object to be displayed, the unevenness in S12 of FIG. 3 can be obtained. You can get the distance including.
  • the heightmap is acquired at the same time in the process of generating the color map by, for example, path tracing using a polygon mesh as described above. Alternatively, it may be acquired by measurement with a sensor or shooting with a stereo camera. By generating a plurality of color maps and height maps over time, changes in the color and shape of the object may be expressed.
  • the color map and the height map may be collectively referred to as a "reference map”.
  • the reference map is originally data that represents the distribution of color values and heights on a three-dimensional surface, but by storing it in a storage device in a form expanded on a plane, data access is facilitated.
  • FIG. 5 illustrates the shape of the reference map that can be used in this embodiment.
  • the left side of (a) to (e) is the three-dimensional shape defined when drawing the reference map, and the right side is the shape of the plane on which it is developed.
  • the solid containing the object is selected and defined from the simple shapes as shown in the figure. Then, after obtaining the color value of the object surface and the height from the basic shape by ray tracing or the like, those values are mapped to the three-dimensional surface by projecting in the radial direction from the center of gravity of the object. Basically, if you select and map a solid that resembles the shape of an object, you can suppress the error associated with coordinate conversion. For example, if it is a spherical object, the value is mapped on the spherical surface.
  • (A) is a so-called cube map showing the distribution on the surface of a cube, and is represented by a plane connecting six squares.
  • (B) is a spherical map (SphereMap) showing the distribution over the entire spherical surface, and is represented by a plane obtained by equirectangular projection.
  • (C) is a hemisphere map showing the distribution on the surface of the hemisphere, and is represented by a plane obtained by equidistant projection.
  • (D) is a kind of spherical map, and combines equirectangular projection and a plane obtained by equidistant projection.
  • (E) is also a kind of spherical map, and each of the spheres divided into two equal parts is represented by equidistant projection.
  • the shapes of the solid and the map plane shown are examples, and are not particularly limited as long as the position coordinates on the solid surface when drawing the map and the developed two-dimensional coordinates are associated with each other.
  • the method of drawing a 3D object using an object color map or height map is, for example, "Head Model Cubemap Distance Map", [online], November 22, 2019, Shadertoy, [Reiwa 2 November 13, 2019. Search], disclosed on the Internet ⁇ URL: https://www.shadertoy.com/view/wdyXRV>.
  • Such a method can generally be processed efficiently when the display target is a small model, but when trying to accurately represent a complicated model or a large model, the processing load tends to increase on the contrary. Become.
  • FIG. 6 illustrates a display image when the display target is the moon.
  • the moon is approximately spherical in the distant view.
  • (B) is a view seen from 100 km above, and unevenness due to the crater is confirmed.
  • (C) is a view from the sky of 5 km, and even finer unevenness of the hills can be confirmed.
  • the change in appearance is large, and by dynamically expressing it, it is possible to realize an image expression with a sense of reality.
  • FIG. 7 illustrates a reference map that can be used to represent the moon shown in FIG. (A) is a color map and (b) is a height map, and it is assumed that the distribution of the color value and the height of the surface of the sphere is represented by a plane having 16000 pixels in the horizontal direction and 8000 pixels in the vertical direction by equirectangular projection. Since the outer circumference of the moon is about 10921 km, it represents information of 0.68 km per pixel near the equator.
  • FIG. 8 is a diagram for explaining the relationship between the data of the reference map composed of a plurality of resolutions and the displayed image.
  • the height map 120a shows the distribution of the height of the entire lunar surface as shown by FIG. 7 (b).
  • the height map 120b represents the height of the lunar surface of a partial region 122a of the height map 120a with a higher resolution than the height map 120a.
  • the heightmap 120c represents the height of the lunar surface of a partial region 122b of the heightmap 120b with a higher resolution than the heightmap 120b.
  • the image processing device 10 draws, for example, an image 124a of the moon seen from 100 km above using a height map 120a having the lowest resolution and a color map having the same resolution. Further, the image 124b of the moon seen from 5 km above is drawn by using the height map 120b with one step higher resolution and the color map having the same resolution. By switching the reference destination in this way, the image can be drawn with the same amount of processing regardless of the magnification.
  • the figure shows a height map in which the area is limited as the resolution increases, it is not the purpose of limiting the present embodiment to this. For example, if you want to magnify every part of an object, prepare a reference map for the entire surface regardless of the resolution. On the other hand, when the enlarged portion is limited to a partial area of the object, the amount of data can be reduced by preparing a high-resolution reference map only in a partial area as shown in the figure.
  • FIG. 9 shows a conceptual diagram of the data structure of the reference map used in the present embodiment.
  • the reference map data has a hierarchical structure including a 0th layer 90, a 1st layer 92, a 2nd layer 94, and a 3rd layer 96 in the depth (Z-axis) direction. Although only four layers are shown in the figure, the number of layers is not limited to this. Hereinafter, data having such a hierarchical structure is referred to as "hierarchical data".
  • the hierarchical data shown in FIG. 9 has a hierarchical structure of quadtrees, and each layer is composed of one or more tile areas 98. All tile regions 98 are formed of the same size with the same number of pixels and have, for example, 256 ⁇ 256 pixels.
  • pixel refers to a unit of an area to which one color value or height is associated on a map.
  • the data of each layer expresses one reference map with different resolutions, and the reference map of the third layer 96 having the highest resolution is reduced to a plurality of stages, and the second layer 94, the first layer 92, and the 0th layer are reduced.
  • the data of the layer 90 is generated.
  • the resolution of the Nth layer (N is an integer of 0 or more) may be 1/2 of the resolution of the (N + 1) layer in both the left-right (X-axis) direction and the up-down (Y-axis) direction.
  • Hierarchical data is stored in a hard disk drive inside the image processing device 10 or a storage device of the content server 20 in a state of being compressed in a predetermined compression format.
  • the image processing device 10 obtains the degree of detail required for displaying an object in response to a change in viewpoint, reads data in a tile area necessary for drawing in the corresponding hierarchy, decodes it, and expands it in an internal memory. do.
  • the hierarchical data is defined in a virtual three-dimensional space in which the plane of the reference map represented by the same resolution is represented by XY coordinates and the resolution is represented by Z coordinates.
  • FIG. 10 shows the internal circuit configuration of the image processing device 10.
  • the image processing device 10 includes a CPU (Central Processing Unit) 22, a GPU (Graphics Processing Unit) 24, and a main memory 26. Each of these parts is connected to each other via a bus 30.
  • An input / output interface 28 is further connected to the bus 30.
  • the input / output interface 28 outputs data to a peripheral device interface such as USB or IEEE1394, a communication unit 32 composed of a wired or wireless LAN network interface, a storage unit 34 such as a hard disk drive or non-volatile memory, and a display device 16.
  • An output unit 36, an input unit 38 for inputting data from the input device 14, and a recording medium driving unit 40 for driving a removable recording medium such as a magnetic disk, an optical disk, or a semiconductor memory are connected.
  • the CPU 22 controls the entire image processing device 10 by executing the operating system stored in the storage unit 34.
  • the CPU 22 also executes various programs read from the removable recording medium, loaded into the main memory 26, or downloaded via the communication unit 32.
  • the GPU 24 has a geometry engine function and a rendering processor function, performs drawing processing according to a drawing command from the CPU 22, and stores a display image in a frame buffer (not shown). Then, the display image stored in the frame buffer is converted into a video signal and output to the output unit 36.
  • the main memory 26 is composed of a RAM (Random Access Memory) and stores programs and data required for processing.
  • FIG. 11 schematically shows the flow of data in this embodiment.
  • the hierarchical data of each reference map 50a, 50b, 50c is the content connected to the storage unit 34 inside the image processing device 10, the recording medium mounted on the recording medium driving unit 40, or the image processing device 10 via the network 8. It is stored in a storage device 52 such as a server 20.
  • the reference map is composed of a background map (reference map 50a) representing outer space, a color map of the moon (reference map 50b), and a height map of the moon (reference map 50c).
  • each reference map 50a, 50b, 50c has a four-layer structure from the 0th layer having the lowest resolution to the 3rd layer having the highest resolution (for example, the 0th layer 54a and the 1st layer 54b of the background map). , 2nd layer 54c, 3rd layer 54d).
  • the reference map of each layer is compressed and coded by a general method such as JPEG (Joint Photographic Experts Group) or PNG (Portable Network Graphics).
  • the image processing device 10 loads some data of the reference maps 50a, 50b, and 50c into the main memory 26 in a compressed and coded state.
  • the data to be loaded here is determined according to the viewpoint and line of sight of the display target. That is, in the three-dimensional space of the hierarchical data shown in FIG. 9, the Z coordinate is obtained based on the degree of detail determined according to the distance from the viewpoint to the object, and the tile data of the area corresponding to the display area determined by the viewpoint or the line of sight is included.
  • the range of the X coordinate and the Y coordinate is determined so as to be.
  • the tile data required after that may be predicted and loaded into the main memory 26 based on the viewpoint up to the fear and the history of changes in the line of sight.
  • the fact that a part of the reference maps 50a, 50b, and 50c is loaded is shown by showing only the tiles of the loaded portion of the rectangle representing the reference map plane of each layer.
  • the load process may be performed not only when new data is required due to movement of the viewpoint or line of sight, but also at any time, for example, at predetermined time intervals. This makes it possible to prevent the load process from being concentrated at one time.
  • the load may be a block unit composed of a plurality of tile areas.
  • the reference maps 50a, 50b, and 50c are divided into blocks according to a predetermined rule. At this time, one block may be composed of only tile data of the same layer, or may include tile data of a plurality of layers.
  • data management in the main memory 26 can be efficiently performed by dividing the blocks so that the data sizes are approximately the same. That is, even if the tile data is compressed with a variable length, the data size can be made uniform to some extent if it is in block units. As a result, the new data load is completed by overwriting any of the blocks previously stored in the main memory 26. Therefore, fragmentation is less likely to occur, memory can be used efficiently, and address management becomes easy.
  • the tile data in the area necessary for drawing the display image or the tile data in the area predicted to be necessary is decoded and decompressed, and the inside of the GPU 24 is decompressed. It is stored in the memory 56 of.
  • the GPU 24 of the image processing device 10 draws the display image 58 by the procedure as shown in FIG. 3 using the tile data stored in the memory 56.
  • the pixel area where the ray reaches the object of the moon is specified by the heightmap, and then the image of the moon is drawn by the color map.
  • the pixel area where the ray does not reach the object of the moon draws outer space by the background map.
  • the GPU 24 When the display device 16 is a head-mounted display, the GPU 24 generates an image for the left eye and an image for the right eye, which are equivalent to the display image 58, and makes a correction for giving the opposite distortion so that the display device 16 can be seen without distortion through the eyepiece.
  • the display device 16 when the display device 16 is a flat plate type display, the display image 58 before correction is output, and when the display device 16 is a head-mounted display, the display image 60 after correction is output. In the meantime, the image processing device 10 loads and decodes another tile data as needed. According to this method, the required memory capacity can be significantly reduced as compared with expanding the entire hierarchical data of the original reference maps 50a, 50b, and 50c into the memory. Therefore, efficient memory access can be performed inside the GPU without using a large amount of external memory, and high-speed drawing becomes possible.
  • FIG. 12 shows a functional block of the image processing device 10.
  • the image processing device 10 has an input information acquisition unit 70 for acquiring the contents of user operations, a target data determination unit 72 for determining the hierarchy and area of the reference map required for drawing, and a tile data acquisition unit for acquiring tile data of the reference map. 74, includes a compressed data storage unit 76 for storing acquired tile data.
  • the image processing device 10 further includes a decoding / stretching unit 78 that decodes and decompresses tile data, a tile data storage unit 80 that stores the tile data after decoding and decompression, a drawing unit 82 that draws a display image using the tile data, and a display image.
  • the output unit 84 that outputs data to the display device 16 is included.
  • each element described as a functional block that performs various processes can be configured by the CPU 22, GPU 24, main memory 26, and other LSIs shown in FIGS. 10 and 11 in terms of hardware.
  • software it is realized by a program loaded in the main memory 26 that realizes a communication function, an image processing function, various calculation functions, and the like. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and the present invention is not limited to any of them.
  • the input information acquisition unit 70 is realized by the input unit 38, the CPU 22 and the like in FIG. 10, and acquires the contents of the user operation via the input device 14.
  • contents of the user operation selection of a display target or electronic content, movement of a viewpoint or line of sight to the display target, input of various commands to the electronic content, and the like can be considered.
  • particular attention is paid to the movement operation of the viewpoint and the line of sight with respect to the display target.
  • the viewpoint and line of sight may be directly operated by the user or may be changed as a result of content processing such as an electronic game. In the latter case, the input information acquisition unit 70 may acquire information related to the movement of the viewpoint or the line of sight from a content processing function (not shown).
  • the target data determination unit 72 is realized by the CPU 22 or the like in FIG. 10 and determines the tile data of the reference map necessary for drawing the display image. Specifically, the target data determination unit 72 obtains the Z coordinate according to the distance from the viewpoint to the object in the three-dimensional space of the hierarchical data as shown in FIG. 9, and obtains the Z coordinate according to the position of the viewpoint and the direction of the line of sight. Find the range in the XY plane. Then, the tile data including the range of the corresponding XY plane in the nearest hierarchy of the determined Z coordinate is specified.
  • the target data determination unit 72 may predict necessary tile data according to the viewpoint and the movement of the line of sight up to that point. Further, when the object itself is moving, the target data determination unit 72 may determine necessary tile data according to the movement. The target data determination unit 72 notifies the tile data acquisition unit 74 and the decoding / expansion unit 78 of the determined information.
  • the tile data acquisition unit 74 is realized by the CPU 22, the communication unit 32, the storage unit 34, the recording medium drive unit 40, and the like in FIG. 10, and is necessary for drawing from the storage device, the content server 20, and the like of the image processing device 10 itself. Load unacquired tile data and tile data around it. These load sources correspond to the storage device 52 of FIG. The data loaded here is in a compressed coded state, and the tile data acquisition unit 74 stores it in the compressed data storage unit 76.
  • the compressed data storage unit 76 is realized by the main memory 26 and the like in FIGS. 10 and 11. As described above, the tile data acquisition unit 74 realizes efficient use of the storage area of the compressed data storage unit 76 and high-speed memory access by loading the hierarchical data of the reference map in block units divided by a predetermined rule. ..
  • the decoding / decompression unit 78 is realized by the CPU 22, GPU 24, etc. of FIG. 10, and among the tile data stored in the compressed data storage unit 76, necessary tile data is decoded and decompressed and stored in the tile data storage unit 80.
  • the tile data storage unit 80 is the internal memory of the GPU 24 of FIGS. 10 and 11 or the memory accessible to the GPU 24, and corresponds to the memory 56 of FIG.
  • the tile data storage unit 80 stores the tile data of the reference map necessary for drawing the display image at that time and the tile data in a predetermined range around the reference map. Necessary tile data is updated at any time according to the relative movement of the viewpoint and the line of sight with respect to the object, and the data expanded in the tile data storage unit 80 also changes.
  • the drawing unit 82 is realized by the GPU 24 of FIGS. 10 and 11, and draws a display image using the tile data of the reference map expanded in the tile data storage unit 80.
  • a view screen corresponding to the viewpoint and line of sight at that time is set, a ray is generated for each pixel, and the pixel value is determined as shown in FIG.
  • the range on the map corresponding to each pixel area on the view screen is specified, and the data in the range is filtered. That is, for the pixels on the solid surface representing the reference map shown in FIG. 5, the coverage of the pixels on the view screen is calculated using the partial differential function.
  • one value is determined by weighting and averaging the pixel values on the map, that is, the color value or the height, in which the pixel area on the view screen is included in a predetermined ratio or more.
  • the drawing unit 82 may correct the color value by performing a lighting process as described above.
  • the drawing unit 82 stores the determined pixel value in a frame buffer (not shown). As shown in FIG. 11, the drawing unit 82 may further correct the image as necessary.
  • the output unit 84 is realized by the output unit 36 or the like of FIG. 10, and outputs the data of the display image written in the frame buffer to the display device 16 as a video signal at an appropriate timing.
  • FIG. 13 is a diagram for explaining an embodiment in which a plurality of reference maps are prepared for one three-dimensional object.
  • the three-dimensional object to be displayed is the moon as in FIG.
  • (A) exemplifies a display image when the viewpoint further approaches from 5 km above the sky shown in FIG. 6 (c) and reaches the vicinity of the lunar surface.
  • the rock 132 is also sufficiently visible.
  • the heightmap defines the height in the normal direction of a three-dimensional surface having a basic shape such as a sphere
  • the hilly area 130 which is a simple uplift in the height direction, can be represented by the heightmap. ..
  • a part such as rock 132 that is partially in contact with or connected to the solid surface of the basic shape but whose bottom surface is partially separated from the solid surface of the basic shape is expressed in the height map. I can't cut it.
  • shapes such as spheres, objects protruding in the lateral direction, and tunnels include elements other than the height from the moon surface, so they cannot be accurately represented on the height map. Therefore, in the present embodiment, even if it is one three-dimensional object, by preparing a reference map for each part, the degree of freedom in the direction represented by the height of the height map is increased.
  • a reference map for representing the three-dimensional object of the rock 132 and model data 134 such as the basic shape and size are prepared separately from the moon data.
  • the state in which the shape of the rock 132 can be visually recognized is limited to when the viewpoints are close to each other, it is preferable to switch whether or not to combine the model data 134 depending on the distance from the viewpoint. For example, as shown in FIG. 6, in the distant view, the display image is drawn using only the reference map of the moon, and when the viewpoints are close to each other as shown in FIG. 13, the model data 134 of the rock 132 and the reference map are read and drawn. Incorporate into processing.
  • the height map is used to identify the pixel where the ray reaches the rock 132, and for that pixel, refer to the rock color map and the pixel value. To decide. By doing so, the appearance of the rock 132 seen from a close distance can be expressed more realistically.
  • model data 136 such as the basic shape and position and a reference map may be prepared so that the data can be expressed in more detail than the overall lunar data.
  • Well-known CSG Constructive Solid Geometry
  • FIG. 14 illustrates a reference map prepared in a mode in which a plurality of model data are used in combination.
  • a height map 142 for the entire moon surface and a color map corresponding to the height map 142 are prepared.
  • model data 134 for rocks and model data 136 for hills shown in FIG. 13 are prepared.
  • a height map 140 and a corresponding color map are prepared in association with the basic shape (sphere in the figure) representing the rock and its size and position.
  • a height map 138 and a corresponding color map are prepared in correspondence with the basic shape (hemisphere in the figure) representing the hill and its size and position.
  • FIGS. 15 and 16 are diagrams for explaining switching of the reference map according to a change in the viewpoint in a mode in which a plurality of model data are used in combination.
  • model data of hills and rocks are prepared separately as shown in FIG. 14, the heightmaps 138 and 140 of the heightmap 142 for the lunar surface overlap in the hills 152 and the rock area 154, respectively. It will be set.
  • the viewpoint 150a when the viewpoint 150a is at a distance of a predetermined distance or more from the moon surface, the height map 142 for the moon surface and the corresponding color map are valid and the display image is drawn.
  • heightmaps 138 and 140 prepared individually are drawn thinly to show that they are invalid. Even in this case, by utilizing the hierarchical structure, as shown in FIG. 6, the unevenness of the surface can be dynamically expressed according to the approach of the viewpoint.
  • the drawing unit 82 arranges a model of the hill with reference to data such as the basic shape of the hill and its position and size, and then refers to those reference maps in ray tracing.
  • the rock model is placed and the display image is drawn using the height map 140 and the corresponding color map.
  • the hills 152 and the rock area 154 are drawn thinly to show that the parts are invalid. This makes it possible to accurately represent hills and rocks as compared to the case where only the height map 142 for the lunar surface is used. For example, when the rock is viewed from the side as in the viewpoint 150c, the gap between the moon surface and the rock can be accurately expressed.
  • the reference map by making the reference map a hierarchical structure, even a large change in magnification can be seamlessly expressed, but if the maximum resolution is increased, the data size increases by that amount, and at the time of loading processing. Data access will also take time. Therefore, by suppressing the maximum resolution of the reference map for the entire month to some extent and locally preparing a reference map with a higher resolution as needed, such as hills and rocks, the data size can be reduced while maintaining quality. It is possible to improve the efficiency of processing.
  • the base model that represents the entire 3D object to be displayed such as the moon is called the “base model”
  • the partial model such as rocks and hills that is combined with it is called the “parts model”.
  • the reference map of the parts model may be prepared at one resolution, or may be hierarchical data of a plurality of resolutions as in the base model.
  • the switching is indicated by arrows A and B.
  • FIG. 17 is a diagram for explaining a method for defining switching between a base model and a parts model.
  • the three triangles show the hierarchical data 160 of the reference map of the base model and the hierarchical data 162a and 162b of the reference map of the two parts models.
  • Hierarchical data 160, 162a, 162b actually have a configuration in which reference maps having different resolutions are discretely present in the Z-axis direction of the figure, as shown in FIG.
  • the target data determination unit 72 moves the required resolution in the Z-axis direction of the figure.
  • the target data determination unit 72 moves the range of necessary data to the horizontal plane in the figure.
  • the hierarchical data 160 of the base model and the hierarchical data 162a and 162b of the parts model are set to overlap as shown in the figure.
  • the target data determination unit 72 switches the reference map data required for the relevant portion from the hierarchical data 160 of the base model to the hierarchical data 162a of the parts model.
  • the movement of the viewpoint as shown by the arrow a replaces a small part of the display image drawn using the reference map of the base model with the image drawn using the relatively low resolution reference map of the parts model.
  • the viewpoint gets closer and the required resolution moves in the Z-axis direction, many parts of the display image are drawn using the high resolution reference map of the parts model. Further, if the viewpoint moves in the direction opposite to the arrow a, the display image is naturally drawn using only the reference map of the base model.
  • the resolution and area that trigger the switching of the reference destination to the reference map of another model are set in advance as "link information" represented by line 164 in the figure.
  • switching from the hierarchical data 160 to the hierarchical data 162a is performed in the region on the XY plane (see FIG. 9) represented by the line 164 and the resolution where the Z axis is z1.
  • switching of the reference map is referred to as a "link”.
  • the number of parts models for which links are set in the hierarchical data 160 of the base model is not limited.
  • a link to another part model may be set in the hierarchical data 162a of the parts model.
  • each layer data 160, 162a, 162b is associated with information necessary for drawing, such as a basic shape and size.
  • the drawing unit 82 can draw the display image while switching the reference map in the same manner as the processing procedure shown in FIG.
  • the same link structure can be used even when the reference map of the parts model does not have a hierarchical structure.
  • the example shown is a link structure that associates the same type of reference map, but different types of data may be associated by the same principle.
  • different types of model data for drawing the part model may be associated with each other.
  • the parts model is expressed by a procedural model, and a calculation formula or the like for expressing by the model is set in association with the link information of the line 164.
  • the data represented by the hierarchy may be changed other than the resolution.
  • the reflected light may be strongly expressed or the three-dimensional effect may be emphasized by setting a high reflectance coefficient.
  • the data adjustment of the reference map according to the hierarchy is not limited to this.
  • the color value and the height itself may be changed. This makes it possible to express that the color and shape of the object change according to the distance of the viewpoint.
  • the change due to the hierarchy may be given to either the color map and the height map, or both.
  • FIG. 18 schematically shows the flow of data in the mode of combining parts models. Since the approximate flow of data is the same as that shown in FIG. 11, the differences will be mainly described.
  • the storage device 52 stores the background reference map 50a, the moon color map 170a, and the height map 172a as the base model, as in FIG. In this aspect, the color maps 170b and 170c of hills and rocks, and their heightmaps 172b and 172c, which are represented as parts models, are also stored.
  • the hills and rock color maps 170b and 170c are linked in the area 174a of the moon color map 170a.
  • the heightmaps 172a and 172b of the hills and rocks are linked in the region 174b of the heightmap 172a of the moon.
  • the hill color map 170b and the height map 172b are hierarchical data
  • the rock color map 170c and the height map 172c are single resolution data.
  • a so-called reduction process of reducing the amount of data is performed on a part of the map of the highest resolution.
  • the reduction in the amount of data for half the area of the map is shown as "reduction".
  • the data size is small, memory access can be made more efficient. It is understood by those skilled in the art that various methods can be considered as reduction processing.
  • the tile data acquisition unit 74 of the image processing device 10 loads the necessary reference map tile data into the main memory 26 in block units or the like according to the relative viewpoint or line-of-sight movement with respect to the object.
  • the target data determination unit 72 identifies the reference map of the parts model associated with the area. Include in the required data.
  • the reference map of the parts model is also stored in the main memory 26.
  • the decoding / stretching unit 78 stores the tile data after decoding / stretching in the memory 56 of the GPU 24, and the drawing unit 82 draws a display image using the tile data.
  • the tile data of the reference map is associated with the identification information and basic shape of the object represented by each.
  • the drawing unit 82 can appropriately switch and refer to the reference map of the object in the traveling direction of the ray, and draw one object by using the plurality of reference maps.
  • a color map showing the distribution of color values on the surface of the three-dimensional object to be displayed and a height map showing the distribution of heights from the basic shape are acquired in advance.
  • the pixel value is determined by referring to them by ray tracing. This makes it possible to draw a display image at high speed by skipping complicated operations such as rendering equations. In addition, it takes time to generate the map, so that the quality of the image can be improved.
  • the hierarchical structure of the reference map and setting links to different reference maps and different data various changes can be given with the movement of the viewpoint as an opportunity. For example, by switching the reference map to that of a parts model that represents only a specific part in detail, it is possible to accurately represent a structure that cannot be represented by a base model that represents the whole. In addition, the overall data size can be suppressed while maintaining the level of detail of a specific part. As a result, the display target can be expressed with low delay without losing the fineness even when the viewpoint or the line of sight is greatly changed.
  • the present invention applies to various information processing devices such as image processing devices, head-mounted displays, game devices, content processing devices, image display devices, mobile terminals, personal computers, and image processing systems including any of them. It is available.
  • image display system 10 image processing device, 14 input device, 16 display device, 20 content server, 22 CPU, 24 GPU, 26 main memory, 32 communication unit, 34 storage unit, 36 output unit, 52 storage device, 56 memory , 70 Input information acquisition unit, 72 Target data determination unit, 74 Tile data acquisition unit, 76 Compressed data storage unit, 78 Decoding and decompression unit, 80 Tile data storage unit, 82 Drawing unit, 84 Output unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

記憶装置52には参照マップ50a、50b、50cとして、背景マップ、オブジェクトのカラーマップ、オブジェクトのハイトマップが、複数解像度の階層データとして格納される。画像処理装置は、そのうち描画に必要な部分を、視点の動きなどに応じてメインメモリ26に随時ロードし、その一部を復号伸張したうえGPU24内部のメモリ56に展開する。GPU24はレイトレーシングによりそれらのデータを参照し、表示画像58を描画する。

Description

画像処理装置および画像処理方法
 この発明は、表示画像を生成する画像処理装置および画像処理方法に関する。
 近年の情報処理技術や画像表示技術の向上により、様々な形態で映像世界を体験することができるようになってきた。例えばヘッドマウントディスプレイにパノラマ映像を表示し、ユーザの視線に対応する画像を表示させることにより、映像世界への没入感を高めたり、ゲームなどのアプリケーションの操作性を向上させたりできる。また、潤沢なリソースを有するサーバからストリーミング転送された画像データを表示させることにより、ユーザは場所や規模によらず高精細な動画像やゲーム画面を楽しむことができる。
 画像表示の目的や表示形式によらず、画像をいかに効率よく描画し表示させるかは常に重要な問題となる。例えば視点や視線に自由度を持たせ、様々なアングルから3次元オブジェクトを見せる態様においては、視点の動きに対する表示の変化に高い応答性が求められる。3次元オブジェクトが動いたり変形したりする場合も同様である。一方で、高品質な画像を表示させるには、解像度を高くしたり複雑な計算を実施したりする必要が生じ、画像処理の負荷が増大する。結果として、本来表現されるべきオブジェクトの像の変化に遅延が生じやすくなる。
 本発明はこうした課題に鑑みてなされたものであり、その目的は、3次元オブジェクトを含む画像を低遅延かつ高品質で表示させる技術を提供することにある。
 上記課題を解決するために、本発明のある態様は画像処理装置に関する。この画像処理装置は、表示対象のオブジェクトの表面におけるカラー値の分布を表すカラーマップと、当該表面における基準形状からの高さの分布を表すハイトマップとを、それぞれ異なる解像度で表した階層データから、オブジェクトの描画に必要な部分をロードするデータ取得部と、ロードされたハイトマップを参照することにより、レイトレーシングにおけるレイが到達するオブジェクト上の点を求めたうえ、カラーマップを参照することにより、到達点におけるオブジェクトのカラー値を取得して表示画像の画素値を決定する描画部と、表示画像のデータを出力する出力部と、を備えたことを特徴とする。
 本発明の別の態様は画像処理方法に関する。この画像処理方法は画像処理装置が、表示対象のオブジェクトの表面におけるカラー値の分布を表すカラーマップと、当該表面における基準形状からの高さの分布を表すハイトマップとを、それぞれ異なる解像度で表した階層データから、オブジェクトの描画に必要な部分をメモリにロードするステップと、ロードされたハイトマップを参照することにより、レイトレーシングにおけるレイが到達するオブジェクト上の点を求めたうえ、カラーマップを参照することにより、到達点におけるオブジェクトのカラー値を取得して表示画像の画素値を決定するステップと、表示画像のデータを出力するステップと、を含むことを特徴とする。
 なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
 本発明によれば、3次元オブジェクトを含む画像を低遅延かつ高品質で表示させることができる。
本実施の形態における画像表示システムの構成例を示す図である。 本実施の形態で利用する、表示画像の描画処理の概略を説明するための図である。 本実施の形態においてレイマーチングを採用したときの画素値の決定処理手順を示すフローチャートである。 本実施の形態においてハイトマップを用いた際のレイトレーシングへの影響を説明するための図である。 本実施の形態において利用できる参照マップの形状を例示する図である。 本実施の形態において表示対象を月としたときの表示画像を例示する図である。 図6で示した月を表現する際に利用できる参照マップを例示する図である。 本実施の形態における、複数解像度で構成する参照マップのデータと表示画像の関係を説明するための図である。 本実施の形態において使用する参照マップのデータ構造の概念図を示す図である。 本実施の形態における画像処理装置の内部回路構成を示す図である。 本実施の形態におけるデータの流れを模式的に示す図である。 本実施の形態における画像処理装置の機能ブロックを示す図である。 本実施の形態において1つの3次元オブジェクトに複数の参照マップを準備する態様を説明するための図である。 本実施の形態の、複数のモデルデータを組み合わせて用いる態様において準備する参照マップを例示する図である。 本実施の形態の、複数のモデルデータを組み合わせて用いる態様において、視点の変化に応じた参照マップの切り替えを説明するための図である。 本実施の形態の、複数のモデルデータを組み合わせて用いる態様において、視点の変化に応じた参照マップの切り替えを説明するための図である。 本実施の形態におけるベースモデルとパーツモデルの切り替えを定義する手法を説明するための図である。 本実施の形態の、パーツモデルを組み合わせる態様におけるデータの流れを模式的に示す図である。
 図1は本実施の形態を適用できる画像表示システムの構成例を示す。画像表示システム1は、ユーザ操作に応じて画像を表示させる画像処理装置10a、10b、10cおよび、表示に用いる画像データを提供するコンテンツサーバ20を含む。画像処理装置10a、10b、10cにはそれぞれ、ユーザ操作のための入力装置14a、14b、14cと、画像を表示する表示装置16a、16b、16cが接続される。画像処理装置10a、10b、10cとコンテンツサーバ20は、WAN(World Wide Network)やLAN(Local Area Network)などのネットワーク8を介して通信を確立できる。
 画像処理装置10a、10b、10cと、表示装置16a、16b、16cおよび入力装置14a、14b、14cはそれぞれ、有線または無線のどちらで接続されてもよい。あるいはそれらの装置の2つ以上が一体的に形成されていてもよい。例えば図において画像処理装置10bは、表示装置16bであるヘッドマウントディスプレイに接続している。ヘッドマウントディスプレイは、それを頭部に装着したユーザの動きによって表示画像の視野を変更できるため、入力装置14bとしても機能する。
 また画像処理装置10cは携帯端末であり、表示装置16cと、その画面を覆うタッチパッドである入力装置14cと一体的に構成されている。このように、図示する装置の外観形状や接続形態は限定されない。ネットワーク8に接続する画像処理装置10a、10b、10cやコンテンツサーバ20の数も限定されない。以後、画像処理装置10a、10b、10cを画像処理装置10、入力装置14a、14b、14cを入力装置14、表示装置16a、16b、16cを表示装置16と総称する。
 入力装置14は、コントローラ、キーボード、マウス、タッチパッド、ジョイスティックなど一般的な入力装置のいずれかまたは組み合わせでよく、画像処理装置10へユーザ操作の内容を供給する。表示装置16は、液晶ディスプレイ、プラズマディスプレイ、有機ELディスプレイ、ウェアラブルディスプレイ、プロジェクタなど一般的なディスプレイでよく、画像処理装置10から出力される画像を表示する。
 コンテンツサーバ20は、画像表示を伴うコンテンツのデータを画像処理装置10に提供する。当該コンテンツの種類は特に限定されず、電子ゲーム、観賞用画像、ウェブページ、電子新聞や電子書籍などのいずれでもよい。画像処理装置10は、表示に用いるコンテンツデータをコンテンツサーバ20から取得しつつ表示処理を実現してもよいし、事前に取得したコンテンツデータを内部の記憶装置にから読み出して表示に用いてもよい。後者の場合、コンテンツデータの提供元はコンテンツサーバ20に限らず、記録媒体であってもよい。
 本実施の形態において表示対象の少なくとも一部は、3次元オブジェクトで構成される。3次元オブジェクトは3次元での形状や色情報が得られている限り、人手により作成された物でも実写(実測)された物でも構わない。例えば画像処理装置10は、入力装置14を介したユーザ操作に応じて表示対象のオブジェクトを自由な角度から見た様子を表示させる。あるいはゲームの進捗などに応じて、オブジェクトに対する視点や視線を画像処理装置10が制御してもよい。
 3次元オブジェクトは静止していてもよいし、移動したり姿勢を変化させたりしてもよい。また3次元オブジェクトは変形してもよい。いずれにしろ画像処理装置10は、3次元オブジェクトを含む表示画像を所定のレートで生成することにより動画像を表示させる。コンピュータグラフィクスの分野において、3次元オブジェクトの表示技術は、ハードウェア、ソフトウェアの両面で大きく発展してきた。例えばレイトレーシングの一種であるパストレーシングは、レイ(光線)と物体表面との関係を表すレンダリング方程式の計算を、モンテカルロ法を用いて確率的に行うことで演算量を軽減させる。
 近年ではBVH(Bounding Volume Hierarchy)などの高速化データ構造を用いて、レイと物体との交差判定を効率化させることにより、ラスタリング用のポリゴンモデルをレイトレーシングに利用することも可能になっている。しかしながら表示対象のモデルが複雑化、大規模化すればその分だけ演算の負荷が増し、視点や視線、オブジェクトの状態変化に追随するリアルな画像表現が困難となる。本実施の形態では、オブジェクトの色や表面の凹凸を、表面上の分布を表すマップとしてあらかじめ取得しておくことで、画像表示時の処理の負荷を軽減させる手法を採用する。
 図2は、本実施の形態で利用する、表示画像の描画処理の概略を説明するための図である。ここでは簡易な例として、球体のオブジェクト106を表示対象としている。すなわち仮想空間を定義するワールド座標系に、3次元モデルで規定されるオブジェクト106と、ユーザ100の視点の位置や視線の方向に対応するビュースクリーン102を配置する。基本的には表示画像は、オブジェクト106や背景108をビュースクリーン102に射影することにより生成される。
 ユーザ操作やゲームの進捗などに応じて視点の位置や視線の方向を所定のレートで取得し、それに応じてビュースクリーン102の位置や向きを変化させれば、オブジェクト106を様々な距離や角度から表した動画を表示できる。本実施の形態では特に、レイトレーシングをベースとすることにより高品質な画像表現を実現する。レイトレーシングは一般に、視点からビュースクリーン102上の各画素を通るレイを発生させ、反射、透過、屈折などのインタラクションを考慮して経路を追跡することで、到達先の色情報を画素値として取得する技術である。
 図の例では、画素103aを通るレイ104aはオブジェクト106に到達するため、その到達地点の色を取得することにより、画素103aの画素値が決定する。また画素103bを通るレイ104bは経路にオブジェクト106を含まないため、背景108における到達地点の色を画素103bの画素値として取得する。ただし実際には、レイ104aはオブジェクト106で反射したり透過したりして別のオブジェクトに到達し、さらに反射したり透過したりする、といった複雑な経路をとり得る。
 したがって各オブジェクトの形状や反射特性、光源の位置などを踏まえてレンダリング方程式を解くことなどにより、物の材質や周囲の環境などを反映させたリアルな画像表現が実現される。ここでレイがオブジェクトに到達するまでの追跡を効率化する手法としてレイマーチングが挙げられる。レイマーチングは、オブジェクトの形状ごとに規定される距離関数を用い、レイからオブジェクトまでの距離を取得し、最近傍にあるオブジェクトまでの距離だけレイを進めていくことにより、最終的なレイの到達先を求める手法である。
 図3は、レイマーチングを採用したときの画素値の決定処理手順を示すフローチャートである。このフローチャートは、表示画像のうち1つの画素の値を決定する手順を示しており、表示画像全体の描画には図示する手順を全ての画素に対し繰り返す。
 まず上述のとおり、表示対象のオブジェクトが配置された仮想空間に、視点や視線に対応するビュースクリーンを設定したうえ、視点から対象画素を通るレイを発生させる(S10)。この処理は実際には、レイの進む方向を定義することに対応する。次に、レイの位置(初回は視点)に最も近いオブジェクトを全方向に対し探索する(S12)。レイからオブジェクトまでの距離は、オブジェクトの形状ごとに与えられる距離関数により求められる。
 最近傍のオブジェクトまでの距離が、レイがオブジェクトと接したとみなされるほど短くなければ(S14のN)、当該距離分、レイを進める(S16)。レイのそれまでの経路長が、あらかじめ設定された上限に達していなければ(S18のN)、進めた先において最近傍のオブジェクトを探索する(S12)。以後、同様の処理を繰り返し、レイが接したとみなされるほど距離が短いオブジェクトが検出されたら(S14のY)、そのオブジェクトを到達先として決定する(S20)。
 なお図2のようにオブジェクトが1つの場合、オブジェクトへ到達するレイは2回目の探索で当該オブジェクトへの到達が判定されることになる。次にレイの到達先である、オブジェクト上の地点におけるカラー値を取得する(S22)。取得したカラー値を、対象画素の画素値としてフレームバッファなどに書き込むことにより、表示画像の1画素として表示装置16へ出力される(S24)。一方、S18においてレイの経路長が上限に到達した場合(S18のY)、オブジェクトが経路に含まれないと判定し、その方向にある背景上の地点を到達先としたうえ画素値を決定する(S20~S24)。
 このような処理において、本実施の形態ではまず、S22で取得されるカラー値をオブジェクトの表面全体における分布として表したカラーマップをあらかじめ生成しておく。これにより表示時におけるS22では、レイの到達地点におけるカラー値を、カラーマップから取得するのみですむ。カラーマップは事前に時間をかけて生成することができるため、本来のレイトレーシングにより精細に生成しておくことができる。
 例えば人の顔など複雑なモデルであっても、ポリゴンメッシュを利用したパストレーシングなどにより精細な表現が可能である。ただしカラーマップの生成手段は特に限定されず、センサによる計測や撮影などにより取得してもよい。またカラーマップにはカラー値のほか、反射係数など、色に影響を与える各種パラメータの分布情報を含めてもよい。この場合、S22において、得られたカラー値を状況に応じて補正できる。例えば反射係数を用い、オブジェクト表面の法線とレイの関係に応じて光源の反射を表現するなどのライティング処理を実施してもよい。
 本実施の形態ではさらに、オブジェクト表面の凹凸の大きさを、表面全体における分布として表したハイトマップも生成しておき、S12においてレイとの距離を取得する際に導入することで、オブジェクト表面の凹凸を表現する。図4はハイトマップを用いた際のレイトレーシングへの影響を説明するための図である。この例では、オブジェクトがおよそ球体であり、表面に凹凸がある状態を断面で示している。
 ハイトマップは、図に太線矢印で示すように、基本形状である球体の表面からの、法線方向の高さの分布を表す。ハイトマップを考慮しない場合、図に示すレイ112はオブジェクトには到達しないが、ハイトマップにより球体表面に高さを加えると、レイ112がオブジェクト110に到達するようになる。図3のS12において、ハイトマップを加味した距離関数によりレイとの距離を計算すれば、このような到達事象を検出でき、結果としてオブジェクト110表面の凹凸を正確に表現できる。
 公知のとおり、球体や立方体など基本形状によって距離関数は様々となるため、ハイトマップに表される高さの、距離関数への反映のさせ方も、基本形状の種類によって様々となる。したがってあらかじめ、ハイトマップの参照を含めた距離関数を基本形状ごとに準備しておき、表示対象のオブジェクトに、その基本形状の種類や大きさを対応づけておけば、図3のS12において、凹凸を加味した距離を取得できる。
 ハイトマップは例えば、上述のとおりポリゴンメッシュを用いたパストレーシングなどによりカラーマップを生成する過程で同時に取得する。あるいはセンサによる計測や、ステレオカメラによる撮影などにより取得してもよい。なおカラーマップやハイトマップを時間経過に対し複数生成しておくことにより、オブジェクトの色や形状の変化を表現してもよい。以後、カラーマップとハイトマップを「参照マップ」と総称する場合がある。
 参照マップは本来、立体表面に対しカラー値や高さの分布を表したデータであるが、それを平面に展開した形式で記憶装置に格納することにより、データアクセスを容易にする。図5は、本実施の形態において利用できる参照マップの形状を例示している。(a)~(e)の左側は参照マップを描画する際に定義する立体形状、右側はそれを展開した平面の形状である。
 参照マップの生成においては、まずオブジェクトを内包する立体を、図示するような単純な形状のなかから選択して定義する。そしてレイトレーシングなどによりオブジェクト表面のカラー値や基本形状からの高さを求めたうえ、オブジェクトの重心などから放射方向に射影することで、立体表面にそれらの値をマッピングする。基本的にはオブジェクトの形状に類似した立体を選択しマッピングすれば、座標変換に伴う誤差を抑えられる。例えば球体のオブジェクトであれば球面上に値をマッピングする。
 (a)は立方体表面に分布を表したいわゆるキューブマップ(Cube Map)であり、6つの正方形を接続した平面で表す。(b)は球面全体に分布を表した球状マップ(Sphere Map)であり、正距円筒図法によって得られる平面で表す。(c)は半球の表面に分布を表した半球状マップ(Hemisphere Map)であり、等距離射影によって得られる平面で表す。(d)は球状マップの一種であり、正距円筒図法と等距離射影によって得られる平面を組み合わせる。(e)も球状マップの一種であり、球を2等分したそれぞれを等距離射影で表す。なお図示する立体とマップ平面の形状は一例であり、マップを描画する際の立体表面上の位置座標と展開後の2次元座標が対応づけられる限り特に限定されるものではない。
 オブジェクトのカラーマップやハイトマップを用いて3次元オブジェクトを描画する手法は、例えば"Head Model Cubemap Distance Map"、[online]、2019年11月22日、Shadertoy、[令和2年11月13日検索]、 インターネット<URL:https://www.shadertoy.com/view/wdyXRV>に開示される。ただしこのような手法は一般に、表示対象が小規模なモデルの場合には効率よく処理できるが、複雑なモデルや大規模なモデルを正確に表現しようとすると、却って処理の負荷が増大する傾向となる。
 ここで大規模なモデルの一例として、図2の球体を月とした場合を考える。図6は表示対象を月としたときの表示画像を例示している。(a)に示すように遠景においては、月はおよそ球状である。(b)は100km上空から見た様子であり、クレーターによる凹凸が確認される。(c)は5km上空からみた様子であり、丘陵地のさらに細かい凹凸までが確認される。このように表示倍率の大幅な変化が許容される大規模なオブジェクトでは見た目の変化が大きく、それをダイナミックに表すことで臨場感のある画像表現を実現できる。
 図7は、図6で示した月を表現する際に利用できる参照マップを例示している。(a)はカラーマップ、(b)はハイトマップであり、それぞれ球体表面のカラー値および高さの分布を、正距円筒図法によって横16000画素、縦8000画素の平面で表すとする。月の外周は約10921kmのため、赤道付近で1画素あたり0.68kmの情報を表す。
 すなわちこのようなマップを用いることにより、数百メートル単位で色や凹凸を表現できることになる。一方、月のような大規模なモデルでは、遠景から近景までの倍率変化が大きく、遠景での表現に詳細なマップを用いるのは効率的でない。そこで本実施の形態では、カラーマップおよびハイトマップを複数の解像度で準備しておき、表示に求められる詳細度に応じて用いるマップを切り替える。これにより、倍率によらず同程度の処理の負荷で、品質の高い画像表現を実現できる。
 図8は、複数解像度で構成する参照マップのデータと表示画像の関係を説明するための図である。ここでハイトマップ120aは図7の(b)で示したように月面全体の高さの分布を表している。ハイトマップ120bは、ハイトマップ120aの一部領域122aの月面の高さを、ハイトマップ120aより高解像度で表している。ハイトマップ120cは、ハイトマップ120bの一部領域122bの月面の高さを、ハイトマップ120bより高解像度で表している。
 画像処理装置10は例えば、100km上空から見た月の画像124aを、最低解像度のハイトマップ120aと、同じ解像度のカラーマップを用いて描画する。また5km上空から見た月の画像124bを、一段階解像度を上げたハイトマップ120bと、同じ解像度のカラーマップを用いて描画する。このように参照先を切り替えることで、倍率によらず同程度の処理量で画像を描画できる。
 なお図では解像度が上がるごとに領域を限定したハイトマップを示しているが、本実施の形態をこれに限定する主旨ではない。例えばオブジェクトのあらゆる箇所を拡大して見られるようにする場合は、解像度によらず表面全体に対し参照マップを準備する。一方、拡大する箇所が、オブジェクトの一部領域に限定される場合は、図示するように、高解像度の参照マップを一部領域のみ準備することによりデータ量を削減できる。
 図9は、本実施の形態において使用する参照マップのデータ構造の概念図を示す。参照マップデータは、深さ(Z軸)方向に、第0階層90、第1階層92、第2階層94および第3階層96からなる階層構造を有する。なお同図においては4階層のみ示しているが、階層数はこれに限定されない。以下、このような階層構造をもつデータを「階層データ」とよぶ。
 図9に示す階層データは4分木の階層構造を有し、各階層は1以上のタイル領域98で構成される。すべてのタイル領域98は同じ画素数を持つ同一サイズに形成され、たとえば256×256画素を有する。ここで「画素」は、マップ上で1つのカラー値あるいは高さが対応づけられる領域の単位を指す。各階層のデータは、一つの参照マップを異なる解像度で表現しており、最高解像度をもつ第3階層96の参照マップを複数段階に縮小して、第2階層94、第1階層92、第0階層90のデータが生成される。たとえば第N階層の解像度(Nは0以上の整数)は、左右(X軸)方向、上下(Y軸)方向ともに、第(N+1)階層の解像度の1/2であってよい。
 階層データは、所定の圧縮形式で圧縮された状態で、画像処理装置10内部のハードディスクドライブやコンテンツサーバ20の記憶装置などに格納される。画像処理装置10は、視点の変化などに応じて、オブジェクトの表示に求められる詳細度を求め、それに対応する階層のうち描画に必要なタイル領域のデータを読み出し、デコードして内部のメモリに展開する。図示するように階層データは、同一解像度で表される参照マップの平面をXY座標、解像度をZ座標で表す仮想的な3次元空間において定義される。
 図10は画像処理装置10の内部回路構成を示している。画像処理装置10は、CPU(Central Processing Unit)22、GPU(Graphics Processing Unit)24、メインメモリ26を含む。これらの各部は、バス30を介して相互に接続されている。バス30にはさらに入出力インターフェース28が接続されている。入出力インターフェース28には、USBやIEEE1394などの周辺機器インターフェースや、有線又は無線LANのネットワークインターフェースからなる通信部32、ハードディスクドライブや不揮発性メモリなどの記憶部34、表示装置16へデータを出力する出力部36、入力装置14からデータを入力する入力部38、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部40が接続される。
 CPU22は、記憶部34に記憶されているオペレーティングシステムを実行することにより画像処理装置10の全体を制御する。CPU22はまた、リムーバブル記録媒体から読み出されてメインメモリ26にロードされた、あるいは通信部32を介してダウンロードされた各種プログラムを実行する。GPU24は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU22からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部36に出力する。メインメモリ26はRAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
 図11は本実施の形態におけるデータの流れを模式的に示している。まず各参照マップ50a、50b、50cの階層データは、画像処理装置10内部の記憶部34、記録媒体駆動部40に装着された記録媒体、あるいは画像処理装置10がネットワーク8を介して接続したコンテンツサーバ20などの記憶装置52に格納されている。この例で参照マップは、宇宙空間を表した背景マップ(参照マップ50a)、月のカラーマップ(参照マップ50b)および月のハイトマップ(参照マップ50c)で構成される。
 この例で各参照マップ50a、50b、50cは、最低解像度を有する第0階層から最高解像度を有する第3階層までの4階層の構造を有する(例えば背景マップの第0階層54a、第1階層54b、第2階層54c、第3階層54d)。各階層の参照マップは、JPEG(Joint Photographic Experts Group)やPNG(Portable Network Graphics)など一般的な方式により圧縮符号化されている。
 画像処理装置10は、参照マップ50a、50b、50cのうち、一部のデータを圧縮符号化された状態でメインメモリ26にロードする。ここでロードするデータは、表示対象に対する視点や視線に応じて決定する。すなわち図9で示した階層データの3次元空間において、視点からオブジェクトまでの距離に応じて定まる詳細度に基づきZ座標を求めるとともに、視点や視線により定まる表示領域に対応する領域のタイルデータを含むようにX座標およびY座標の範囲を決定する。
 なおそれまでの視点や視線の変化の履歴などに基づき、以後に必要とされるタイルデータを予測し、メインメモリ26にロードしておいてもよい。図では、参照マップ50a、50b、50cのうちの一部がロードされていることを、各階層の参照マップ平面を表す矩形のうちロードされた部分のタイルのみを示すことで表している。
 ロード処理は、視点や視線の移動により新たなデータが必要になったときのみならず、例えば所定の時間間隔で随時行ってよい。これによりロード処理が一時期に集中しないようにできる。またロードは、複数のタイル領域で構成されるブロック単位としてもよい。この場合、参照マップ50a、50b、50cを、所定の規則でブロックに分割しておく。このとき1つのブロックを、同一階層のタイルデータのみで構成してもよいし、複数階層のタイルデータを含めてもよい。
 例えば、およそ同一のデータサイズとなるようにブロック分割することにより、メインメモリ26におけるデータ管理を効率よく行える。すなわち、タイルデータが可変長圧縮されたものであっても、ブロック単位であればデータサイズをある程度均一化できる。これにより、メインメモリ26にそれまで格納されていたブロックのいずれかを上書きすることによって新たなデータロードが完了する。そのためフラグメンテーションが発生しにくく、メモリを効率的に使用できるうえ、アドレス管理も容易になる。
 次に、メインメモリ26に格納されている参照マップの圧縮符号化データのうち、表示画像の描画に必要な領域のタイルデータ、または必要と予測される領域のタイルデータを復号伸張し、GPU24内部のメモリ56に格納する。その時点で必要な参照マップより広い範囲のタイルデータをメモリ56に展開しておくことにより、ある程度の視点や視線の移動に対し即時の対応が可能となる。この際、階層の異なるタイルデータも展開しておけば、視点とオブジェクトとの距離の変化にも容易に対応できる。
 画像処理装置10のGPU24は、メモリ56に格納されたタイルデータを用いて、図3で示したような手順により表示画像58を描画する。この例では、レイが月のオブジェクトに到達する画素領域をハイトマップにより特定したうえ、カラーマップにより月の像を描画する。レイが月のオブジェクトに到達しない画素領域は、背景マップにより宇宙空間を描画する。表示装置16をヘッドマウントディスプレイとする場合、GPU24は表示画像58と同等の左目用画像と右目用画像を生成したうえ、接眼レンズを介して歪みなく見えるように逆の歪みを与える補正を行う。
 そして、表示装置16が平板型ディスプレイの場合は補正前の表示画像58を、ヘッドマウントディスプレイの場合は補正後の表示画像60を、それぞれ出力する。画像処理装置10はその間にも随時、別のタイルデータを必要に応じてロードしデコードしておく。この手法によれば、元の参照マップ50a、50b、50cの階層データ全体をメモリに展開するのに比べ、必要なメモリ容量を格段に小さくできる。そのため大容量の外部メモリを利用せず、GPU内部で効率的なメモリアクセスを行え、高速描画が可能になる
 図12は画像処理装置10の機能ブロックを示している。画像処理装置10は、ユーザ操作の内容を取得する入力情報取得部70、描画に必要な参照マップの階層や領域を決定する対象データ決定部72、参照マップのタイルデータを取得するタイルデータ取得部74、取得したタイルデータを格納する圧縮データ記憶部76を含む。画像処理装置10はさらに、タイルデータを復号伸張する復号伸張部78、復号伸張後のタイルデータを格納するタイルデータ記憶部80、タイルデータを用いて表示画像を描画する描画部82、表示画像のデータを表示装置16に出力する出力部84を含む。
 図12において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、図10、11で示したCPU22、GPU24、メインメモリ26、その他のLSIで構成することができ、ソフトウェア的には、メインメモリ26にロードされた、通信機能、画像処理機能、各種演算機能などを実現するプログラムによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
 入力情報取得部70は、図10の入力部38、CPU22などで実現され、入力装置14を介してユーザ操作の内容を取得する。ユーザ操作の内容として、表示対象や電子コンテンツの選択、表示対象への視点や視線の移動、電子コンテンツに対する各種コマンド入力などが考えられる。本実施の形態では特に、表示対象に対する視点や視線の移動操作に着目する。視点や視線はユーザが直接操作するほか、電子ゲームなどのコンテンツ処理の結果として変化させてもよい。後者の場合、入力情報取得部70は、図示しないコンテンツ処理機能から視点や視線の動きに係る情報を取得してよい。
 対象データ決定部72は、図10のCPU22などで実現され、表示画像を描画するのに必要な参照マップのタイルデータを決定する。具体的には対象データ決定部72は、図9で示したような階層データの3次元空間において、視点からオブジェクトまでの距離に応じてZ座標を求め、視点の位置および視線の方向に応じてXY平面での範囲を求める。そして決定されたZ座標の最近傍の階層における、対応するXY平面の範囲を含むタイルデータを特定する。
 対象データ決定部72は上述のとおり、それまでの視点や視線の動きに応じて必要なタイルデータを予測してもよい。またオブジェクト自体が動いている場合、対象データ決定部72は当該動きによっても必要なタイルデータを決定してよい。対象データ決定部72は、決定した情報をタイルデータ取得部74および復号伸張部78に通知する。
 タイルデータ取得部74は、図10のCPU22、通信部32、記憶部34、記録媒体駆動部40などにより実現され、画像処理装置10自体が有する記憶装置やコンテンツサーバ20などから、描画に必要なタイルデータやその周辺のタイルデータのうち未取得のものをロードする。これらのロード元は、図11の記憶装置52に対応する。ここでロードされるデータは圧縮符号化された状態であり、タイルデータ取得部74はそれを圧縮データ記憶部76に格納する。
 圧縮データ記憶部76は図10、11のメインメモリ26などにより実現される。上述のとおりタイルデータ取得部74は、参照マップの階層データを所定の規則で分割したブロック単位でロードすることにより、圧縮データ記憶部76の記憶領域の効率的な利用と高速メモリアクセスを実現する。復号伸張部78は、図10のCPU22、GPU24などにより実現され、圧縮データ記憶部76に格納されたタイルデータのうち、必要なものを復号伸張し、タイルデータ記憶部80に格納する。
 タイルデータ記憶部80は、図10、11のGPU24の内部メモリあるいはGPU24がアクセス可能なメモリであり、図11のメモリ56に対応する。タイルデータ記憶部80には、その時点で表示画像の描画に必要な参照マップのタイルデータと、その周囲の所定範囲のタイルデータが格納される。オブジェクトに対する視点や視線の相対的な動きに応じて、必要なタイルデータは随時更新され、タイルデータ記憶部80に展開されるデータも変化する。描画部82は、図10、11のGPU24などにより実現され、タイルデータ記憶部80に展開された参照マップのタイルデータを用いて表示画像を描画する。
 すなわちその時点での視点や視線に対応するビュースクリーンを設定し、画素ごとにレイを発生させ図3で示したようにして画素値を決定する。なお参照マップからカラー値や高さの値を取得する際、ビュースクリーンにおける各画素領域に対応する、マップ上の範囲を特定し、当該範囲のデータをフィルタリングする。すなわち図5で示した、参照マップを表す立体表面の画素について、ビュースクリーン上の画素のカバー率を、偏微分関数を用いて計算する。
 そしてビュースクリーン上の画素領域が所定割合以上含まれる、マップ上の画素の値、すなわちカラー値または高さを重みづけ平均するなどして、1つの値を決定する。最終的な画素値を決定する際は、描画部82は、上述のとおりライティング処理を実施するなどしてカラー値を補正してよい。描画部82は、図示しないフレームバッファに決定した画素値を格納する。描画部82はさらに図11で示したように、必要に応じた画像の補正を行ってよい。出力部84は図10の出力部36などにより実現され、フレームバッファに書き込まれた表示画像のデータを、ビデオ信号として適切なタイミングで表示装置16に出力する。
 これまで述べた例は、表示対象の3次元オブジェクトごとに、カラーマップとハイトマップを一つずつ準備する態様であった。一方、1つの3次元オブジェクトを複数のパーツに分解し、それぞれにカラーマップとハイトマップを準備することにより、効率的に画像の詳細度や精度を高めることができる。図13は、1つの3次元オブジェクトに複数の参照マップを準備する態様を説明するための図である。ここで表示対象の3次元オブジェクトは図6と同様に月とする。
 (a)は、図6の(c)に示した上空5kmからさらに視点が接近し、月面近傍に達したときの表示画像を例示している。ここでは図6の(c)でも見られたような丘陵地130のほか、岩132も十分視認されるとする。図4で示したように、ハイトマップは、球など基本形状の立体表面の、法線方向の高さを規定するため、単純な高さ方向の隆起である丘陵地130はハイトマップによって表現できる。一方、岩132のように、基本形状の立体に一部が接している、あるいはつながっているものの、部分的に底面が基本形状の立体表面と離間している部分については、ハイトマップでは表現しきれない。
 例えば球体、横方向にせり出した物、トンネルなどの形状は、月面からの高さ以外の要素を含むため、ハイトマップでは正確に表せない。そこで本実施の形態では、1つの3次元オブジェクトであってもパーツごとに参照マップを準備することにより、ハイトマップの高さが表す方向の自由度を増やす。図示する例では(b)に示すように、岩132の3次元オブジェクトを表すための参照マップおよび、基本形状や大きさなどのモデルデータ134を、月のデータとは別に準備する。
 岩132の形状が視認されるような状態は、視点が接近したときに限られるため、好適にはモデルデータ134を組み合わせるか否かを、視点からの距離によって切り替える。例えば図6で示したように、遠景においては月の参照マップのみを用いて表示画像を描画し、図13のように視点が接近した状態において、岩132のモデルデータ134や参照マップを読み出し描画処理に組み入れる。
 具体的には岩132の基本形状を月面に配置したうえ、そのハイトマップを用いて、レイが岩132に到達する画素を特定し、当該画素については岩のカラーマップを参照して画素値を決定する。このようにすることで、近くから見た岩132の様子をよりリアルに表現できる。なお丘陵地130についても同様に、基本形状や位置などのモデルデータ136と参照マップを準備し、全体的な月のデータより詳細に表現できるようにしてもよい。基本形状自体の組み合わせには、周知のCSG(Constructive Solid Geometry)モデルの演算を利用できる。
 図14は、複数のモデルデータを組み合わせて用いる態様において準備する参照マップを例示している。図13と同様、表示対象を月とすると、まず、月面全体に対するハイトマップ142と、それに対応するカラーマップを準備する。さらに図13で示した岩のためのモデルデータ134および丘陵地のためのモデルデータ136を準備する。具体的には、岩を表す基本形状(図では球)とその大きさや位置に対応づけて、ハイトマップ140とそれに対応するカラーマップを準備する。さらに丘陵地を表す基本形状(図では半球)とその大きさや位置に対応づけて、ハイトマップ138とそれに対応するカラーマップを準備する。
 図15、16は、複数のモデルデータを組み合わせて用いる態様において、視点の変化に応じた参照マップの切り替えを説明するための図である。図14で示したように丘陵地と岩のモデルデータを別途準備した場合、月面に対するハイトマップ142のうち、丘陵地152および岩の領域154で、それぞれのハイトマップ138、140が重複して設定されることになる。
 ここで図15に示すように、視点150aが月面から所定距離以上の遠方にある場合、月面に対するハイトマップ142とそれに対応するカラーマップを有効として表示画像を描画する。図では個別に準備したハイトマップ138、140を薄く描くことで、それらが無効であることを示している。この場合でも階層構造を活用することにより、図6で示したように、視点の接近に従い表面の凹凸をダイナミックに表現できる。
 一方、図16に示すように、視点150bが丘陵地152にしきい値より近づいたら、丘陵地のハイトマップ138とそれに対応するカラーマップを有効として表示画像を描画する。実際には描画部82は、丘陵地の基本形状とその位置や大きさなどのデータを参照して丘陵地のモデルを配置したうえで、レイトレーシングにおいてそれらの参照マップを参照する。
 視点150cが岩の領域154にしきい値より近づいた場合も同様に、岩のモデルを配置したうえ、ハイトマップ140とそれに対応するカラーマップを用いて表示画像を描画する。図では月面に対するハイトマップ142のうち、丘陵地152および岩の領域154の部分を薄く描くことで、その部分が無効であることを示している。これにより、月面に対するハイトマップ142のみを用いた場合と比較し、丘陵地や岩を精密に表現できる。例えば視点150cのように岩を横から見た状態において、月面と岩の隙間を正確に表現できる。
 また本実施の形態では、参照マップを階層構造とすることにより、多大な倍率の変化であってもシームレスに表現できるが、最高解像度を高くすればその分だけデータサイズが増え、ロード処理時のデータアクセスにも時間を要することになる。そのため、月全体に対する参照マップの最高解像度をある程度抑え、それより高い解像度での参照マップを、丘陵地や岩など必要に応じて局所的に準備することで、品質を保ちながらデータサイズの軽減や処理の効率化を実現できる。
 以後、月など表示対象の3次元オブジェクト全体を表す、ベースとなるモデルを「ベースモデル」と呼び、それに組み合わせる、岩や丘陵地などの部分的なモデルを「パーツモデル」と呼ぶ。パーツモデルの参照マップは、1つの解像度で準備してもよいし、ベースモデルと同様に、複数解像度の階層データとしてもよい。ここで、パーツモデルへ切り替えの契機となる視点の距離と切り替える領域を、ベースモデルの参照マップの階層構造を表す3次元空間において定義しておくと都合がよい。図16においては当該切り替えを、矢印A、Bで示している。
 図17はベースモデルとパーツモデルの切り替えを定義する手法を説明するための図である。図中、3つの三角形は、ベースモデルの参照マップの階層データ160および、2つのパーツモデルの参照マップの階層データ162a、162bを示している。階層データ160、162a、162bは実際には、それぞれ図9に示すように解像度の異なる参照マップが図のZ軸方向に離散的に存在する構成を有する。
 視点がオブジェクトに近づくと、対象データ決定部72は必要な解像度を図のZ軸方向に移動させる。同じ距離で視点や視線が移動したら、対象データ決定部72は必要なデータの範囲を、図の水平面に移動させる。このような階層データの3次元空間において、ベースモデルの階層データ160およびパーツモデルの階層データ162a、162bが、図のように重なり合った状態を設定する。
 ここでベースモデルの階層データ160を用いて表示画像を描画中、視点がオブジェクトに近づき矢印aのように移動すると、パーツモデルの階層データ162aが必要なデータに含まれるようになる。これにより対象データ決定部72は、該当部分について必要な参照マップのデータを、ベースモデルの階層データ160からパーツモデルの階層データ162aへ切り替える。
 矢印aのような視点の動きにより、ベースモデルの参照マップを用いて描画された表示画像のごく一部が、パーツモデルの比較的低解像度の参照マップを用いて描画された像に置き換わる。さらに視点が接近し、必要な解像度がZ軸方向に移動すれば、表示画像の多くの部分が、パーツモデルの高解像度の参照マップを用いて描画される。また、矢印aと逆方向に視点が動けば、自ずとベースモデルの参照マップのみを用いて表示画像が描画されるようになる。
 表示中のオブジェクトにおいて、参照先を別のモデルの参照マップへ切り替える契機となる解像度および領域は、図中、線164で表される「リンク情報」としてあらかじめ設定しておく。同図の例では、Z軸がz1なる解像度、線164が表すXY平面(図9参照)上の領域において、階層データ160から階層データ162aへの切り替えが行われる。以後、このような参照マップの切り替えを「リンク」と呼ぶ。ベースモデルの階層データ160にリンクを設定するパーツモデルの数は限定されない。
 またパーツモデルの階層データ162aに、さらに別のパーツモデルへのリンクを設定してもよい。上述のとおり各階層データ160、162a、162bには、基本形状や大きさなど、描画に必要な情報が対応づけられている。これにより、描画部82は図3で示した処理手順と同様にして、参照マップを切り替えながら表示画像を描画できる。なお上述のとおりパーツモデルの参照マップを階層構造としない場合も、同様のリンク構造を利用できる。
 図示する例は、同種類の参照マップを対応づけるリンク構造であったが、同様の原理により、異なる種類のデータを対応づけてもよい。例えばパーツモデルの参照マップの代わりに、パーツモデルを描画するための異なる種類のモデルデータを対応づけてもよい。一例として、パーツモデルをプロシージャルモデルで表現することとし、線164のリンク情報に対応づけて、当該モデルで表現するための計算式などを設定する。これにより、参照マップを用いたレイトレーシングにより描画している3次元オブジェクトの表示倍率が所定値に達したら、拡大されている部分の物性に適したモデルへ表現手法を臨機応変に切り替えることができる。
 あるいは、リンク情報に動画像を対応づけることにより、表示倍率が所定値に達したら、拡大した部分が動き出すような演出を加えてもよい。また1つの参照マップであっても、階層によって表されるデータに解像度以外の変化を与えてもよい。例えば解像度が高い階層のカラーマップにおいて、反射係数を高く設定しておくことにより、拡大したときに反射光を強く表現したり立体感を強調したりしてもよい。階層に応じた参照マップのデータ調整はこれに限らず。カラー値や高さ自体を変化させてもよい。これにより、視点の距離に応じてオブジェクトの色や形状が変化するように表現できる。階層による変化は、カラーマップおよびハイトマップのどちらかに与えてもよいし、双方に与えてもよい。
 図18は、パーツモデルを組み合わせる態様におけるデータの流れを模式的に示している。データのおよその流れは図11で示したのと同様であるため、主に異なる点について説明する。まず記憶装置52には、図11と同様に背景の参照マップ50aと、ベースモデルとしての月のカラーマップ170aおよびハイトマップ172aを格納する。本態様ではさらに、パーツモデルとして表す、丘陵地および岩のカラーマップ170b、170c、およびそれらのハイトマップ172b、172cも格納する。
 丘陵地および岩のカラーマップ170b、170cは、月のカラーマップ170aの領域174aにおいてリンクが設定されている。丘陵地および岩のハイトマップ172a、172bは、月のハイトマップ172aの領域174bにおいてリンクが設定されている。なおこの例で丘陵地のカラーマップ170bとハイトマップ172bは階層データであり、岩のカラーマップ170cとハイトマップ172cは単一解像度のデータである。
 さらにこの例では、月のカラーマップ170aおよびハイトマップ172aの階層データのうち、最高解像度のマップの一部領域に対し、データ量を減らす、いわゆるリダクション処理が施されている。図ではマップの半分の領域についてデータ量が削減されていることを、「reduction」として示している。例えば視点を近づけたときに表示される可能性が小さい領域についてはあえて品質を落とすことにより、参照マップの生成においても無駄な処理の発生を抑えられる。またデータサイズが小さくなるため、メモリアクセスを効率化できる。リダクション処理として様々な手法が考えられることは当業者には理解されるところである。
 画像処理装置10のタイルデータ取得部74は、オブジェクトに対する相対的な視点や視線の動きに応じて、必要な参照マップのタイルデータをブロック単位などでメインメモリ26にロードする。ここで対象データ決定部72は、必要なデータの範囲に、リンクが設定されている領域174a、174bが含まれている場合に、当該領域に対応づけられたパーツモデルの参照マップを特定し、必要なデータに含める。これによりメインメモリ26には、パーツモデルの参照マップも格納される。
 図ではパーツモデルの参照マップが全て格納されているが、必要なデータが一部であれば当然、ロードも一部であってよい。その後は図11と同様、復号伸張部78がGPU24のメモリ56に復号伸張後のタイルデータを格納し、描画部82がそれを用いて表示画像を描画する。参照マップのタイルデータには、それぞれが表すオブジェクトの識別情報や基本形状などを対応づけておく。これにより描画部82は、レイの進行方向にあるオブジェクトの参照マップを適切に切り替えて参照し、1つのオブジェクトを複数の参照マップを用いて描画できる。
 以上述べた本実施の形態によれば、表示対象の3次元オブジェクトの表面におけるカラー値の分布を表したカラーマップと、基本形状からの高さの分布を表したハイトマップをあらかじめ取得しておき、表示時はレイトレーシングによりそれらを参照して画素値を決定する。これにより、レンダリング方程式などの複雑な演算をスキップして高速に表示画像を描画できる。またマップの生成には時間をかけられるため、画像の品質を高めることができる。
 さらにカラーマップ、ハイトマップを複数解像度の階層データで準備することにより、惑星など巨大なモデルであっても倍率の大きな変化に対し同等の処理負荷でシームレスかつ低遅延に表示を変化させられる。このとき元の階層データのサイズが大きくても、階層データを構成する3次元空間において必要な範囲を特定し、その部分のデータのみを取得してメモリに展開しておくことにより、メモリ容量の節約やアクセスの効率化を実現できる。
 参照マップの階層構造を利用し、別の参照マップや異なるデータへのリンクを設定しておくことにより、視点の移動を契機として様々な変化を与えられる。例えば参照マップを、特定の部分のみ詳細に表したパーツモデルのものに切り替えることにより、全体を表すベースモデルでは表現できない構造を正確に表せる。また特定の部分の詳細度を維持しつつ、全体的なデータサイズを抑えることができる。結果として、視点や視線の大きな変化においても精細さを失うことなく低遅延で表示対象を表現できる。
 以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 以上のように本発明は、画像処理装置、ヘッドマウントディスプレイ、ゲーム装置、コンテンツ処理装置、画像表示装置、携帯端末、パーソナルコンピュータなど各種情報処理装置や、それらのいずれかを含む画像処理システムなどに利用可能である。
 1 画像表示システム、 10 画像処理装置、 14 入力装置、 16 表示装置、 20 コンテンツサーバ、 22 CPU、 24 GPU、 26 メインメモリ、 32 通信部、 34 記憶部、 36 出力部、 52 記憶装置、 56 メモリ、 70 入力情報取得部、 72 対象データ決定部、 74 タイルデータ取得部、 76 圧縮データ記憶部、 78 復号伸張部、 80 タイルデータ記憶部、 82 描画部、 84 出力部。

Claims (11)

  1.  表示対象のオブジェクトの表面におけるカラー値の分布を表すカラーマップと、前記表面における基準形状からの高さの分布を表すハイトマップとを、それぞれ異なる解像度で表した階層データから、前記オブジェクトの描画に必要な部分をロードするデータ取得部と、
     ロードされた前記ハイトマップを参照することにより、レイトレーシングにおけるレイが到達するオブジェクト上の点を求めたうえ、前記カラーマップを参照することにより、到達点における前記オブジェクトのカラー値を取得して表示画像の画素値を決定する描画部と、
     前記表示画像のデータを出力する出力部と、
     を備えたことを特徴とする画像処理装置。
  2.  前記オブジェクトに対する視点および視線に基づき、前記カラーマップおよび前記ハイトマップの平面と解像度の軸で構成される3次元空間において必要な領域を決定する対象データ決定部をさらに備え、
     前記データ取得部は、前記必要な領域に対応する前記カラーマップおよび前記ハイトマップのデータをロードすることを特徴とする請求項1に記載の画像処理装置。
  3.  前記階層データは、前記3次元空間において異なるデータへの切り替えが設定されたリンク領域を有し、
     前記データ取得部は、前記必要な領域に前記リンク領域が含まれているとき、前記異なるデータをロードすることを特徴とする請求項2に記載の画像処理装置。
  4.  前記データ取得部は、前記オブジェクトの一部に対し別途生成された前記カラーマップおよび前記ハイトマップを、前記異なるデータとして取得し、
     前記描画部は、前記オブジェクトの一部を表す画素値を、前記異なるデータを用いて決定することを特徴とする請求項3に記載の画像処理装置。
  5.  前記データ取得部は、前記オブジェクトの一部を異なる種類のモデルで表現するためのデータを、前記異なるデータとして取得し、
     前記描画部は、前記オブジェクトの一部を表す画素値を、前記異なるデータを用いて決定することを特徴とする請求項3または4に記載の画像処理装置。
  6.  前記カラーマップと前記ハイトマップの少なくともいずれかは、前記階層データの階層によって、表されるデータに解像度以外の変化が与えられていることを特徴とする請求項1から5のいずれかに記載の画像処理装置。
  7.  前記カラーマップは前記オブジェクトの表面における反射係数の分布を含み、
     前記描画部は、前記反射係数に基づき、取得した前記カラー値を補正することを特徴とする請求項
    1から6のいずれかに記載の画像処理装置。
  8.  前記描画部は、前記カラーマップおよび前記ハイトマップを生成する際に定義した立体の表面のうち、前記表示画像の平面を表すビュースクリーン上の各画素領域に対応する領域においてフィルタリングしたカラー値および高さに基づき、前記画素値を決定することを特徴とする請求項1から7のいずれかに記載の画像処理装置。
  9.  前記データ取得部がロードした、圧縮符号化されたデータのうちの一部を復号伸張してGPUの内部メモリに格納する復号伸張部をさらに備えたことを特徴とする請求項1から8のいずれかに記載の画像処理装置。
  10.  表示対象のオブジェクトの表面におけるカラー値の分布を表すカラーマップと、前記表面における基準形状からの高さの分布を表すハイトマップとを、それぞれ異なる解像度で表した階層データから、前記オブジェクトの描画に必要な部分をメモリにロードするステップと、
     ロードされた前記ハイトマップを参照することにより、レイトレーシングにおけるレイが到達するオブジェクト上の点を求めたうえ、前記カラーマップを参照することにより、到達点における前記オブジェクトのカラー値を取得して表示画像の画素値を決定するステップと、
     前記表示画像のデータを出力するステップと、
     を含むことを特徴とする画像処理装置による画像処理方法。
  11.  表示対象のオブジェクトの表面におけるカラー値の分布を表すカラーマップと、前記表面における基準形状からの高さの分布を表すハイトマップとを、それぞれ異なる解像度で表した階層データから、前記オブジェクトの描画に必要な部分をロードする機能と、
     ロードされた前記ハイトマップを参照することにより、レイトレーシングにおけるレイが到達するオブジェクト上の点を求めたうえ、前記カラーマップを参照することにより、到達点における前記オブジェクトのカラー値を取得して表示画像の画素値を決定する機能と、
     前記表示画像のデータを出力する機能と、
     をコンピュータに実現させることを特徴とするコンピュータプログラム。
PCT/JP2020/044101 2020-11-26 2020-11-26 画像処理装置および画像処理方法 Ceased WO2022113246A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022564916A JP7604521B2 (ja) 2020-11-26 2020-11-26 画像処理装置および画像処理方法
PCT/JP2020/044101 WO2022113246A1 (ja) 2020-11-26 2020-11-26 画像処理装置および画像処理方法
US18/253,067 US20230351674A1 (en) 2020-11-26 2020-11-26 Image processing device and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/044101 WO2022113246A1 (ja) 2020-11-26 2020-11-26 画像処理装置および画像処理方法

Publications (1)

Publication Number Publication Date
WO2022113246A1 true WO2022113246A1 (ja) 2022-06-02

Family

ID=81755377

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/044101 Ceased WO2022113246A1 (ja) 2020-11-26 2020-11-26 画像処理装置および画像処理方法

Country Status (3)

Country Link
US (1) US20230351674A1 (ja)
JP (1) JP7604521B2 (ja)
WO (1) WO2022113246A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025013303A1 (ja) * 2023-07-13 2025-01-16 株式会社ソニー・インタラクティブエンタテインメント 画像処理装置、コンテンツサーバ、画像処理方法、および画像データ送信方法
WO2025224800A1 (ja) * 2024-04-22 2025-10-30 株式会社ソニー・インタラクティブエンタテインメント 画像処理装置、画像処理方法、および3次元オブジェクトのデータ構造

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2024131411A (ja) * 2023-03-16 2024-09-30 キヤノン株式会社 画像処理システム、画像処理方法及びコンピュータプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007328460A (ja) * 2006-06-06 2007-12-20 Sega Corp 画像生成プログラム
JP2011090648A (ja) * 2009-10-26 2011-05-06 Sony Computer Entertainment Inc 画像処理装置および画像処理方法
JP2011134101A (ja) * 2009-12-24 2011-07-07 Sony Computer Entertainment Inc 画像処理装置、画像データ生成装置、画像処理方法、画像データ生成方法、および画像ファイルのデータ構造
CN111105491A (zh) * 2019-11-25 2020-05-05 腾讯科技(深圳)有限公司 场景渲染方法、装置、计算机可读存储介质和计算机设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9870629B2 (en) * 2008-06-20 2018-01-16 New Bis Safe Luxco S.À R.L Methods, apparatus and systems for data visualization and related applications
WO2011077623A1 (ja) * 2009-12-24 2011-06-30 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、画像データ生成装置、画像処理方法、画像データ生成方法、および画像ファイルのデータ構造
US9728002B2 (en) * 2015-12-18 2017-08-08 Advanced Micro Devices, Inc. Texel shading in texture space

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007328460A (ja) * 2006-06-06 2007-12-20 Sega Corp 画像生成プログラム
JP2011090648A (ja) * 2009-10-26 2011-05-06 Sony Computer Entertainment Inc 画像処理装置および画像処理方法
JP2011134101A (ja) * 2009-12-24 2011-07-07 Sony Computer Entertainment Inc 画像処理装置、画像データ生成装置、画像処理方法、画像データ生成方法、および画像ファイルのデータ構造
CN111105491A (zh) * 2019-11-25 2020-05-05 腾讯科技(深圳)有限公司 场景渲染方法、装置、计算机可读存储介质和计算机设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SUZUKI, TAKESHI: "An Accelerated Relief Mapping Using Depth Maps", IPSJ SIG TECHNICAL REPORTS, vol. 2006, no. 18, 21 February 2006 (2006-02-21), pages 69 - 74 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025013303A1 (ja) * 2023-07-13 2025-01-16 株式会社ソニー・インタラクティブエンタテインメント 画像処理装置、コンテンツサーバ、画像処理方法、および画像データ送信方法
WO2025224800A1 (ja) * 2024-04-22 2025-10-30 株式会社ソニー・インタラクティブエンタテインメント 画像処理装置、画像処理方法、および3次元オブジェクトのデータ構造

Also Published As

Publication number Publication date
JPWO2022113246A1 (ja) 2022-06-02
JP7604521B2 (ja) 2024-12-23
US20230351674A1 (en) 2023-11-02

Similar Documents

Publication Publication Date Title
CN111788610B (zh) 用于生成场景中的表面的三维重建的方法和设备
JP6181917B2 (ja) 描画システム、描画サーバ、その制御方法、プログラム、及び記録媒体
US10089790B2 (en) Predictive virtual reality display system with post rendering correction
KR101101570B1 (ko) 3차원 비디오게임 시스템
JP3461980B2 (ja) 高速描画方法および装置
JP5592011B2 (ja) マルチスケール3次元配向
EP2105905A2 (en) Image generation apparatus
CN114051629A (zh) 密集3d重建数据的缓存和更新
US20080246760A1 (en) Method and apparatus for mapping texture onto 3-dimensional object model
US20220270205A1 (en) Reference image generation apparatus, display image generation apparatus, reference image generation method, and display image generation method
WO2012037157A2 (en) System and method for displaying data having spatial coordinates
JP7604521B2 (ja) 画像処理装置および画像処理方法
CN110832442A (zh) 注视点渲染系统中的优化的阴影和自适应网状蒙皮
US9401044B1 (en) Method for conformal visualization
JP7353782B2 (ja) 情報処理装置、情報処理方法、及びプログラム
CN116051713A (zh) 渲染方法、电子设备和计算机可读存储介质
EP3748585B1 (en) Method for fast rendering of very large 3d models
JP5920858B1 (ja) プログラム、情報処理装置、深度定義方法及び記録媒体
US20100177098A1 (en) Image generation system, image generation method, and computer program product
Tschirschwitz et al. Interactive 3D visualisation of architectural models and point clouds using low-cost-systems
WO2025013303A1 (ja) 画像処理装置、コンテンツサーバ、画像処理方法、および画像データ送信方法
JP7752308B1 (ja) 画像表示装置、画像表示方法、及び画像表示プログラム
US20240111390A1 (en) Translating Interactions on a Two-Dimensional Interface to an Artificial Reality Experience
US11727638B1 (en) Adaptive geometric smoothing
JP5063022B2 (ja) プログラム、情報記憶媒体及び画像生成システム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20963511

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022564916

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20963511

Country of ref document: EP

Kind code of ref document: A1