WO2023017623A1 - 情報処理装置、情報処理方法およびプログラム - Google Patents
情報処理装置、情報処理方法およびプログラム Download PDFInfo
- Publication number
- WO2023017623A1 WO2023017623A1 PCT/JP2022/006403 JP2022006403W WO2023017623A1 WO 2023017623 A1 WO2023017623 A1 WO 2023017623A1 JP 2022006403 W JP2022006403 W JP 2022006403W WO 2023017623 A1 WO2023017623 A1 WO 2023017623A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- volume data
- polygon
- information processing
- rendering
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 78
- 238000003672 processing method Methods 0.000 title description 2
- 238000009877 rendering Methods 0.000 claims abstract description 184
- 238000000034 method Methods 0.000 claims description 28
- 230000015572 biosynthetic process Effects 0.000 claims description 21
- 238000003786 synthesis reaction Methods 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 20
- 238000010586 diagram Methods 0.000 description 33
- 238000013500 data storage Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 15
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 230000002194 synthesizing effect Effects 0.000 description 10
- 238000002156 mixing Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005401 electroluminescence Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
Definitions
- the present disclosure relates to an information processing device, an information processing method, and a program.
- a searching unit that obtains a search result by searching the volume data based on a label indicating whether to search for inner data existing in a position included in polygon data in the volume data.
- a rendering unit that performs rendering based on the polygon data and the volume data based on the search result.
- the volume data is searched based on a label indicating whether to search for inner data existing in a position included in the polygon data in the volume data, and the search result is obtained. and a processor performing rendering based on the polygon data and the volume data based on the search result.
- the computer searches the volume data based on a label indicating whether to search for inner data existing in a position included in the polygon data in the volume data.
- a program functioning as an information processing apparatus is provided, which includes a search unit that obtains a search result, and a rendering unit that performs rendering based on the polygon data and the volume data based on the search result.
- FIG. 2 is a diagram for explaining an outline of a ray tracing method
- FIG. FIG. 10 is a diagram showing a ray skipped to polygon data in an existing technique
- FIG. 10 is a diagram showing how a ray reaches volume data in an existing technique
- FIG. 10 is a diagram that distinguishes between data reached by a ray and polygon data among volume data in an existing technique.
- FIG. 4 is a diagram showing inside data, front side data, and polygon data from the viewpoint side;
- FIG. 4 is a diagram showing an example of polygon data;
- FIG. 4 is a diagram showing an example of volume data;
- FIG. 4 is a diagram for explaining an example of rendering that is aimed to be realized in an embodiment of the present disclosure;
- FIG. FIG. 10 is a diagram showing a ray skipped to polygon data in an existing technique
- FIG. 10 is a diagram showing how a ray reaches volume data in an existing technique
- FIG. 10 is a diagram that distinguishes between
- FIG. 3 is a diagram illustrating an example of a rendering target that is aimed to be realized in an embodiment of the present disclosure
- FIG. FIG. 10 is a diagram for explaining a case where an existing technique is used to realize rendering that is aimed at being realized in the embodiment of the present disclosure
- 1 is a diagram for explaining a configuration example of an information processing device according to an embodiment of the present disclosure
- FIG. FIG. 4 is a diagram showing a configuration example of polygon data according to the embodiment of the present disclosure
- FIG. FIG. 10 is a diagram for explaining an example of searching inside data by label
- FIG. 4 is a diagram for explaining an example of rendering according to an embodiment of the present disclosure
- FIG. 4 is a flow chart showing an operation example of a polygon data rendering unit; 4 is a flow chart showing an operation example of a volume data rendering unit; 4 is a flow chart showing an operation example of a volume data rendering unit; It is a figure for demonstrating the outline
- 9 is a flowchart showing an operation example of the information processing device according to the first modified example;
- FIG. 11 is a diagram for explaining a configuration example of an information processing device according to a second modified example; It is a block diagram which shows the hardware structural example of an information processing apparatus.
- a plurality of components having substantially the same or similar functional configurations may be distinguished by attaching different numerals after the same reference numerals.
- attaching different numerals after the same reference numerals.
- similar components in different embodiments may be distinguished by attaching different alphabets after the same reference numerals.
- attaching different alphabets after the same reference numerals.
- only the same reference numerals are used.
- CG Computer Graphics
- Rendering may be performed in the process of generating an image by CG.
- rendering can mean generating an image by processing various data with a computer.
- rendering in CG can be a technique that transforms modeled three-dimensional data into two-dimensional images.
- Modeling can mean defining things such as the shape and color of an object as three-dimensional data.
- Examples of objects include polygon data and volume data.
- rendering based on polygon data and volume data is assumed.
- polygon data is composed of a combination of multiple polygons.
- a polygon can mean a polygon.
- Polygon data is generally composed of a combination of triangles (polygons with three vertices), but may be composed of polygons other than triangles (polygons with four or more vertices).
- Polygon data has characteristics such as being able to reduce the data size and being easy to express the texture of the surface. Therefore, polygon data is suitable for expressing faces, skin, opaque clothing, and the like.
- volume data is composed of a combination of multiple voxels.
- a voxel is the smallest unit that constitutes volume data, and is typically composed of a cube (regular lattice).
- Volume data has features such as high reproducibility of complex shapes and ease of transparent expression. Therefore, volume data is suitable for expressing hair, translucent clothes, and the like.
- FIG. 1 is a diagram for explaining the outline of the ray tracing method.
- object B1 modeled in CG space exists.
- object B1 may be volume data.
- a viewpoint C0 exists in the CG space. The position of the viewpoint C0 can be appropriately changed according to the user's operation.
- a virtual screen 20 exists between the viewpoint C0 and the object B1.
- the screen 20 is made up of a plurality of pixels.
- each of the plurality of pixels is the minimum unit of color information. That is, a set of color information for each of the plurality of pixels on the screen 20 can correspond to an image generated by CG.
- a pixel 21 is shown in FIG. 1 as a representative of the plurality of pixels.
- a line of sight (hereinafter also referred to as a "ray") is sequentially projected from the viewpoint C0 to each pixel on the screen 20.
- the point at which each ray first intersects the object is then calculated.
- Rays R1 to R3 are shown in FIG. 1 as examples of rays shot to each pixel. Also shown are the points r1-r3 where the rays R1-R3 first intersect the object.
- the brightness of each point is calculated based on the color information at each point, the brightness of the light source L1, the positional relationship between the light source L1 and each point, and the like.
- the brightness of each point thus calculated is treated as color information of the pixel corresponding to each point.
- not only the light directly reaching each point from the light source L1 but also the light emitted from the light source L1 and reflected by some object and reaching each point may be taken into consideration. . In this way, the color information of each pixel on the screen 20 is calculated and an image is generated.
- volume data is displayed as an example of object B1.
- the rendering result of polygon data and the rendering result of volume data are combined.
- the rendering result of the polygon data is unconditionally overwritten by the rendering result of the volume data, the number of cases where the polygon data is not displayed increases.
- FIG. 2 is a diagram showing how a ray is projected onto polygon data in the existing technology.
- viewpoint C0 and polygon data P1 are shown.
- each arrow indicates a ray shot from the viewpoint C0.
- the length of each ray is limited to the distance from the viewpoint C0 to the surface of the polygon data P1 (the depth of the polygon data P1).
- FIG. 3 is a diagram showing how a ray reaches volume data in existing technology.
- the data reached by the ray is indicated as front side data 31
- the data 32 not reached by the ray is indicated as inner data 32 .
- the near side data 31 is rendered, but the inner side data 32 is not rendered.
- FIG. 4 is a diagram that distinguishes between data reached by a ray and polygon data among volume data in the existing technology.
- the data reached by the ray in the volume data 30 is limited to the front side data 31 located in front of the polygon data P1 with respect to the viewpoint C0.
- no ray reaches the inner data 32 .
- FIG. 5 is a diagram showing inside data, front side data, and polygon data from the viewpoint side.
- polygon data P1 is shown.
- Data existing on the surface of the polygon data P1 in the volume data 30 corresponds to the near side data 31.
- the data existing in the position included in the polygon data P1 in the volume data 30 corresponds to the inside data 32.
- FIG. 6 is a diagram showing an example of polygon data.
- polygon data P1 is shown.
- the polygon data P1 includes polygon data of the face, hair, and opaque clothing of the person.
- the polygon data P1 are suitable for representing faces and opaque clothing.
- polygon data P1 is not very suitable for expressing hair.
- FIG. 7 is a diagram showing an example of volume data.
- volume data V1 is shown. Similar to the polygon data P1, the volume data V1 includes volume data of the face, hair, and opaque clothing of the person. Here, as described above, the volume data V1 is suitable for expressing hair. However, volume data V1 is not very suitable for expressing faces and opaque clothing.
- FIG. 8 is a diagram for explaining an example of rendering that is aimed to be realized in the embodiment of the present disclosure.
- polygon data P1 (FIG. 6)
- polygon data P3 of the hair portion and polygon data P2 other than the hair portion are shown.
- volume data is more suitable than polygon data for expressing hair.
- polygon data is more suitable than volume data for representing faces and opaque clothing.
- the polygon data P3 of the hair portion is not rendered.
- the volume data V2 of the hair portion existing at the position included in the polygon data P3 of the hair portion is rendered. Aim to be targeted.
- the volume data V2 of the hair portion is merely an example of the inner data. Therefore, the inside data is not limited to the volume data of the hair portion.
- FIG. 9 is a diagram showing an example of a rendering target to be realized in the embodiment of the present disclosure.
- polygon data P2 other than the hair portion is shown.
- the embodiment of the present disclosure aims, as an example, to render polygon data P2 other than the hair portion and volume data V2 of the hair portion.
- FIG. 10 is a diagram for explaining a case where an existing technique is used to achieve the rendering that is intended to be achieved in the embodiment of the present disclosure. As shown in FIG. 10, in existing technology, the length of each ray is limited to the distance from the viewpoint C0 to the surface of the polygon data P1.
- the near side data V3 of the volume data 30 is rendered, but the inner side data V4 is not rendered. Therefore, with the existing technology, only a part of the volume data V2 (FIG. 9) of the hair portion existing at the position included in the polygon data P1 is rendered.
- the object is to render volume data that exists at a position included in polygon data.
- FIG. 11 is a diagram for explaining a configuration example of an information processing device according to an embodiment of the present disclosure.
- the information processing apparatus 10 according to the embodiment of the present disclosure is implemented by a computer and includes a control unit (not shown) and a storage unit (not shown).
- the controller may be composed of, for example, one or more CPUs (Central Processing Units).
- CPUs Central Processing Units
- the control unit is configured by a processing device such as a CPU
- the processing device may be configured by an electronic circuit.
- a control unit (not shown) can be realized by executing a program by such a processing device.
- the control unit (not shown) includes a polygon data rendering unit 122, a volume data rendering unit 124, a buffer synthesizing unit 126, and an image output unit 140. Details of these blocks will be described later.
- the storage unit includes a memory and is a recording medium that stores a program executed by a control unit (not shown) and data necessary for executing the program.
- a storage unit temporarily stores data for calculation by a control unit (not shown).
- a storage unit is configured by a magnetic storage device, a semiconductor storage device, an optical storage device, a magneto-optical storage device, or the like.
- the storage unit (not shown) includes a polygon data storage unit 112, a volume superimposed label data storage unit 114, a volume data storage unit 116, a first color buffer 132, a depth buffer 134, and a second color buffer 136. Prepare. Details of these blocks will be described later.
- a label indicating whether to search for inner data in volume data is associated in advance with each area of polygon data. Then, the information processing apparatus 10 according to the embodiment of the present disclosure performs a search for the volume data based on the label and obtains a search result, and a search unit (not shown) obtains the search result, and converts the polygon data and the volume data based on the search result.
- a rendering unit (not shown) that performs rendering based on the
- a search unit (not shown) can be realized by the polygon data rendering unit 122 and the volume data rendering unit 124.
- a rendering unit (not shown) can be realized by the volume data rendering unit 124 and the buffer synthesizing unit 126 .
- FIG. 12 is a diagram showing a configuration example of polygon data according to the embodiment of the present disclosure.
- the polygon data includes polygon data P3 of the hair portion and polygon data P2 other than the hair portion.
- the inner data existing in the position included in the polygon data P2 other than the hair portion is not rendered, and the polygon data of the hair portion is not rendered.
- the inner data existing at the position contained in the data P3 is targeted for rendering.
- FIG. 13 is a diagram for explaining an example of searching inside data by label.
- the polygon data P3 of the hair portion is associated with a label indicating that inner data should be searched.
- the polygon data P2 other than the hair portion is associated with a label indicating that the inner data is not searched.
- a search unit searches for the inner data of the hair polygon data P3 associated with the label based on the fact that the label indicates that the inner data should be searched.
- the search unit (not shown) does not search the inner data of the polygon data P2 other than the hair portion associated with the label based on the fact that the label indicates that the inner data is not searched.
- FIG. 14 is a diagram for explaining an example of rendering according to the embodiment of the present disclosure.
- the distance of the ray cast toward the polygon data P2 other than the hair portion is limited to the surface of the polygon data P2 other than the hair portion. be done. Therefore, of the volume data, the data inside the polygon data P2 other than the hair portion is not rendered.
- the distance of the ray shot toward the polygon data P3 of the hair portion is extended so as to reach the inner data of the polygon data P3 of the hair portion. Therefore, the volume data V2 of the hair portion present in the position included in the polygon data P3 of the hair portion is rendered.
- a search unit (not shown) searches for volume data in the depth direction with reference to the viewpoint C0. At this time, regardless of the label, the front side data located in front of the polygon data is searched with reference to the viewpoint C0 in the volume data. That is, of the volume data, the near side data located in front of the polygon data is the object of rendering regardless of the label.
- the polygon data storage unit 112 stores polygon data.
- polygon data is composed of a combination of multiple polygons. More specifically, the polygon data includes data on vertices forming each of a plurality of polygons.
- the vertex-related data includes vertex names and vertex coordinates.
- the vertex name is information for uniquely identifying the vertex in that frame.
- the vertex coordinates are coordinates that express the position of the vertex.
- the coordinates of vertices can be represented by three-dimensional coordinates (x-coordinate, y-coordinate, z-coordinate).
- the vertices that make up the polygon correspond to the coordinates (UV coordinates) in the texture pasted on the polygon data.
- Textures contain color information and transparency. In the following description, RGB values are used as color information, but the color information may be expressed by any method. Also, the transparency may be an ⁇ value.
- the polygon data is three-dimensional data extracted from an object appearing in imaged data (imaged data) at a certain point in time.
- the 3D data can consist of one frame at a certain point in time.
- the polygon data may consist of multiple frames.
- volumetric capture technology is known as an example of a technology for extracting three-dimensional data of an object captured in captured data based on data (captured data) continuously captured in time series by a plurality of cameras. ing.
- volumetric capture techniques use extracted 3D data to reproduce a 3D moving image of an object from an arbitrary viewpoint.
- volumetric data is three-dimensional moving image data composed of frames at each of a plurality of consecutive times.
- the polygon data may be multiple frames obtained in this way.
- the volume superimposed label data storage unit 114 stores a label indicating whether to search for internal data existing in a position included in polygon data in volume data. Such labels are associated in advance with each area of the polygon data.
- the method of labeling each area of polygon data is not limited. For example, textures corresponding to polygon data may be labeled.
- labeling textures may be done manually.
- the labeling of the textures may be done using machine-learning site detection. For example, when associating a hair portion with a label indicating that the inner data should be searched, the hair portion is detected by machine learning, and the inner data is searched for the detected hair portion. may be associated.
- volume data storage unit 116 stores volume data.
- Volume data is composed of a plurality of voxels. Each voxel is assigned an RGB value and an ⁇ value.
- RGB value a value assigned to an RGB value
- ⁇ value a value assigned to an RGB value.
- volume data is three-dimensional data extracted from an object appearing in imaged data (imaged data) at a certain point in time.
- volume data may consist of a plurality of frames.
- the polygon data rendering section 122 acquires polygon data from the polygon data storage section 112 . Furthermore, the polygon data rendering unit 122 acquires the label from the volume superimposition label data storage unit 114. FIG. Then, the polygon data rendering unit 122 renders the polygon data based on the acquired label and polygon data. More specifically, the polygon data rendering unit 122 executes vertex shaders.
- the vertex shader By executing the vertex shader, the position of each of the multiple vertices that make up the polygon data in the screen coordinate system (that is, in which pixel of the two-dimensional image the vertex is located) is calculated. Further, the vertex shader calculates the texture coordinates corresponding to each of the plurality of vertices forming the polygon data as texture coordinates.
- the polygon data rendering unit 122 executes pixel shaders. In the pixel shader, pixel processing is performed sequentially. At this time, the polygon data rendering unit 122 processes the pixel being processed based on the label associated with the pixel being processed.
- the polygon data rendering unit 122 writes the distance corresponding to the label associated with the pixel being processed to the depth buffer 134 as the ray tracking distance.
- polygon data rendering unit 122 determines the position corresponding to the pixel being processed in depth buffer 134 based on the label indicating to search inside data. Writes a given distance in .
- the predetermined distance may be a distance equal to or greater than the maximum distance between the viewpoint C0 and the volume data. This may allow sufficient ray tracing distance for the inner data to be searched at the pixel being processed.
- the polygon data rendering unit 122 determines the position corresponding to the pixel being processed in the depth buffer 134 based on the label indicating that the inner data is not searched. to the depth of the polygon data at the pixel being processed.
- the depth of the polygon data in the pixel being processed can correspond to the distance between the viewpoint C0 and the polygon data in the pixel being processed. This prevents inner data from being searched for in the pixel being processed.
- the polygon data rendering unit 122 calculates the color information (RGB value) and The ⁇ value is determined, and the determined color information (RGB value) and the ⁇ value are written to the location corresponding to the pixel being processed in the first color buffer 132 .
- a volume data rendering unit 124 acquires volume data from the volume data storage unit 116 . Additionally, the volume data rendering unit 124 reads ray tracing distances from the depth buffer 134 . The volume data rendering unit 124 sequentially selects pixels and renders volume data corresponding to the selected pixels based on the ray tracing distance corresponding to the selected pixels.
- the volume data rendering unit 124 advances the ray (point of interest) step by step in the depth direction with the viewpoint C0 as a reference, and the length of the ray (that is, the distance between the viewpoint C0 and the point of interest) is written in the depth buffer 134. If it is smaller than the ray tracking distance and if there is volume data at the ray position, extract the volume data at the ray position.
- the volume data rendering unit 124 synthesizes the volume data extracted from the currently selected pixel based on the ⁇ value of the volume data extracted from the currently selected pixel, and acquires the volume data synthesis result.
- the volume data rendering unit 124 may synthesize the R values of the volume data extracted from the currently selected pixel by ⁇ -blending. Similarly, the volume data rendering unit 124 may synthesize the G values of the volume data extracted from the currently selected pixel by ⁇ -blending. Also, the volume data rendering unit 124 may synthesize the B values of the volume data extracted from the currently selected pixel by alpha blending.
- the volume data rendering unit 124 maintains the selected pixel and advances the ray when the sum of the ⁇ values of the volume data extracted from the selected pixel is smaller than a predetermined value.
- the predetermined value may be one. In such a case, the volume data rendering unit 124 similarly extracts volume data existing at the position of the ray.
- the volume data rendering unit 124 writes the volume data synthesis result, which is the synthesis result of the volume data extracted from the currently selected pixel, to the position corresponding to the currently selected pixel in the second color buffer 136. .
- the volume data rendering unit 124 selects the next pixel and performs similar processing on the selected pixel.
- the operation is transferred from the volume data rendering unit 124 to the buffer synthesizing unit 126 .
- the buffer synthesizing unit 126 acquires the RGB ⁇ value of each pixel in the two-dimensional image corresponding to the polygon data from the first color buffer 132 as the rendering result of the polygon data. Further, the buffer synthesizing unit 126 acquires the RGB ⁇ value of each pixel in the two-dimensional image corresponding to the volume data from the second color buffer 136 as the rendering result of the volume data.
- the buffer synthesizing unit 126 synthesizes the rendering result of polygon data and the rendering result of volume data. More specifically, the rendering result of polygon data and the rendering result of volume data are combined by alpha blending.
- the buffer combining section 126 outputs the combining result to the image output section 140 .
- Image output unit 140 The image output unit 140 acquires the composition result input from the buffer composition unit 126 . Then, the image output unit 140 outputs the acquired synthesis result. A result of synthesis by the image output unit 140 may be transmitted to another device or displayed on a display. The composite result displayed by the display can be viewed by the user.
- the type of display is not limited.
- the display may be an LCD (Liquid Crystal Display), an organic EL (Electro-Luminescence) display, or a PDP (Plasma Display Panel).
- LCD Liquid Crystal Display
- organic EL Electro-Luminescence
- PDP Plasma Display Panel
- the output result of the pixel corresponding to the label indicating that the inner data is to be searched will be the synthesis result of the volume data.
- the output result of the pixel corresponding to the label indicating that the inner data is not searched is the synthesis result of the synthesis result of the volume data and the rendering result of the polygon data.
- the synthesis result of the volume data can be the rendering result of the inner data.
- the synthesis result of the volume data is the synthesis result of the front side data and the inside data.
- FIG. 15 is a flow chart showing an operation example of the polygon data rendering unit 122.
- the polygon data rendering section 122 acquires polygon data from the polygon data storage section 112 . Furthermore, the polygon data rendering unit 122 acquires the label from the volume superimposition label data storage unit 114.
- FIG. 15 As shown in FIG. 15, the polygon data rendering unit 122 executes a vertex shader (S11).
- the vertex shader By executing the vertex shader, the position in the screen coordinate system of each of the multiple vertices that make up the polygon data is calculated. Further, the vertex shader calculates the texture coordinates corresponding to each of the plurality of vertices forming the polygon data as texture coordinates.
- the polygon data rendering unit 122 starts executing the pixel shader (S12). In the pixel shader, the polygon data rendering unit 122 starts processing pixels (S13).
- the polygon data rendering unit 122 corresponds to the pixel being processed in the depth buffer 134.
- the depth of the polygon data in the pixel being processed is written as the ray tracing distance at the position where the pixel is being processed (S17).
- the polygon data rendering unit 122 performs shading calculation (S18).
- the shading calculation the color information (RGB values) and ⁇ value of the pixel being processed are determined based on the texture coordinates and texture of the pixel being processed.
- the polygon data rendering unit 122 writes the determined color information (RGB values) and ⁇ value as a shading result to the position corresponding to the pixel being processed in the first color buffer 132 (S19). Subsequently, the polygon data rendering unit 122 shifts the operation to S20.
- the polygon data rendering unit 122 shifts the operation to S13 while the execution of the pixel shader is not finished ("NO” in S20). On the other hand, when the execution of the pixel shader is completed ("YES” in S20), the polygon data rendering unit 122 terminates the polygon data rendering (S10).
- volume data is acquired from the volume data storage unit 116 (S31). Furthermore, the volume data rendering unit 124 reads the ray tracking distance from the depth buffer 134 (S32). Subsequently, the volume data rendering unit 124 starts executing ray marching (S33).
- FIG. 18 is a diagram for explaining the outline of the ray marching method.
- a viewpoint C0 exists in the CG space.
- a direction R1 of a ray cast from the viewpoint C0 is also shown.
- objects B1 and B4 to B6 exist in the CG space.
- the starting position is the viewpoint C0, and the object with the shortest distance from the current position is detected. Then, the ray is advanced by the shortest distance, and if an object whose shortest distance is equal to or less than the threshold value is not detected, the ray is advanced in the same manner.
- rays are advanced in the order of points Q1 to Q6. Then, when the ray has advanced to point Q6, the distance between object B1 and the current position is the shortest, and the shortest distance is equal to or less than the threshold, so object B1 is determined as a rendering target.
- the volume data rendering unit 124 selects pixels (S34) and calculates the ray position and ray direction with reference to the camera position (viewpoint position) (S35).
- the ray position and ray direction calculated here are the ray position and ray direction in the camera coordinate system.
- the volume data rendering unit 124 acquires the ray tracking distance corresponding to the currently selected pixel from the depth buffer 134 (S36).
- the volume data rendering unit 124 transforms the calculated ray position and ray direction in the camera coordinate system into ray positions and ray directions in the world coordinate system (S37).
- the volume data rendering unit 124 advances the ray in the depth direction with reference to the camera position (S41), and if the length of the ray is equal to or greater than the ray tracking distance ("NO" in S42), the operation proceeds to S47. . On the other hand, when the length of the ray is smaller than the ray tracking distance ("YES" in S42), the volume data rendering unit 124 determines whether volume data exists at the position of the ray (S43).
- volume data rendering unit 124 When volume data does not exist at the position of the ray ("NO" in S43), the volume data rendering unit 124 shifts the operation to S41. On the other hand, if volume data exists at the position of the ray ("YES" in S43), the volume data rendering unit 124 extracts volume data that exists at the position of the ray (S44).
- the volume data rendering unit 124 adds the RGB ⁇ values of the extracted volume data to the RGB ⁇ values corresponding to the currently selected pixel (S45).At this time, the RGB values are synthesized by ⁇ -blending.
- Volume data rendering unit 124 maintains the selected pixel when the total value of ⁇ values of the volume data extracted from the selected pixel is smaller than 1 (predetermined value) (“YES” in S46). The operation is shifted to S41. On the other hand, if it is 1 or more (“NO” in S46), the volume data rendering unit 124 stores the RGB ⁇ value corresponding to the pixel being selected in the position corresponding to the pixel being selected in the second color buffer 136. Write (S47).
- volume data rendering unit 124 shifts the operation to S34 while there are unprocessed pixels (“YES” in S48). On the other hand, if there are no unprocessed pixels (“YES” in S48), volume data rendering section 124 terminates volume data rendering (S30).
- the volume data rendering unit 124 may control whether to render volume data based on the distance between the user and the viewing target. As a result, the processing load due to rendering can be reduced because the rendering of the volume data is performed only when the effect contributed by the rendering of the volume data is large.
- the user's position may be the position of the user's viewpoint (for example, the viewpoint C0 described above), and the viewing target may be polygon data.
- FIG. 19 is a flowchart showing an operation example of the information processing device 10 according to the first modified example. As shown in FIG. 19, the polygon data rendering section 122 and the volume data rendering section 124 read various data (S51).
- the polygon data rendering section 122 reads polygon data from the polygon data storage section 112 . Furthermore, the polygon data rendering unit 122 acquires the label from the volume superimposition label data storage unit 114. FIG. Also, the volume data rendering unit 124 acquires volume data from the volume data storage unit 116 .
- the polygon data rendering unit 122 determines the relationship between the distance between the user and the viewing target and the threshold (S53). If the distance between the user and the viewing target is equal to or greater than the threshold ("YES" in S53), polygon data rendering section 122 renders polygon data based on the polygon data and the label (S10). In such a case, the volume data rendering unit 124 neither searches for volume data nor renders volume data.
- the polygon data rendering section 122 renders the polygon data based on the polygon data and the label (S10). Write the ray tracing distance to the depth buffer 134 . If the distance between the user and the viewing target is smaller than the threshold, the volume data rendering unit 124 searches the volume data based on the ray tracking distance and the volume data written in the depth buffer 134, and renders the volume data. Rendering is performed (S30).
- the buffer synthesizing unit 126 synthesizes the rendering result of the polygon data and the rendering result of the volume data (S54).
- the image output unit 140 outputs the composition result by the buffer composition unit 126 as a frame (S55).
- FIG. 20 is a diagram for explaining a configuration example of the information processing device 12 according to the second modification.
- the information processing apparatus 12 according to the second modification is also implemented by a computer, and includes a control unit (not shown) and a storage unit (not shown).
- the storage section (not shown) further includes a volume position/scale data storage section 118 .
- the volume position/scale data storage unit 118 stores data indicating the origin position of polygon data and data indicating the scale of polygon data. Furthermore, the volume position/scale data storage unit 118 stores data indicating the origin position of the volume data and data indicating the scale of the volume data.
- the volume data rendering unit 124 acquires data indicating the origin position of the polygon data and data indicating the scale of the polygon data from the volume position/scale data storage unit 118, and renders the data indicating the origin position of the volume data and the volume data. Get data showing the scale.
- the volume data rendering unit 124 may match the origin position between the polygon data and the volume data based on the data indicating the origin position of the polygon data and the data indicating the origin position of the volume data. Furthermore, the volume data rendering unit 124 may match the scales of the polygon data and the volume data based on the data indicating the scale of the polygon data and the data indicating the scale of the volume data.
- FIG. 21 is a block diagram showing a hardware configuration example of the information processing apparatus 900. As shown in FIG. Note that the information processing apparatus 10 does not necessarily have all of the hardware configuration shown in FIG. 21, and part of the hardware configuration shown in FIG. It doesn't have to be.
- the information processing device 900 includes a CPU (Central Processing Unit) 901 , ROM (Read Only Memory) 903 , and RAM (Random Access Memory) 905 .
- the information processing device 900 may also include a host bus 907 , a bridge 909 , an external bus 911 , an interface 913 , an input device 915 , an output device 917 , a storage device 919 , a drive 921 , a connection port 923 and a communication device 925 .
- the information processing apparatus 900 may have a processing circuit called DSP (Digital Signal Processor) or ASIC (Application Specific Integrated Circuit) instead of or together with the CPU 901 .
- DSP Digital Signal Processor
- ASIC Application Specific Integrated Circuit
- the CPU 901 functions as an arithmetic processing device and a control device, and controls all or part of the operations in the information processing device 900 according to various programs recorded in the ROM 903, RAM 905, storage device 919, or removable recording medium 927.
- a ROM 903 stores programs and calculation parameters used by the CPU 901 .
- a RAM 905 temporarily stores programs used in the execution of the CPU 901, parameters that change as appropriate during the execution, and the like.
- the CPU 901, ROM 903, and RAM 905 are interconnected by a host bus 907 configured by an internal bus such as a CPU bus. Furthermore, the host bus 907 is connected via a bridge 909 to an external bus 911 such as a PCI (Peripheral Component Interconnect/Interface) bus.
- PCI Peripheral Component Interconnect/Interface
- the input device 915 is, for example, a device operated by a user, such as a button.
- the input device 915 may include a mouse, keyboard, touch panel, switches, levers, and the like.
- Input device 915 may also include a microphone to detect the user's voice.
- the input device 915 may be, for example, a remote control device using infrared rays or other radio waves, or may be an external connection device 929 such as a mobile phone corresponding to the operation of the information processing device 900 .
- the input device 915 includes an input control circuit that generates an input signal based on information input by the user and outputs the signal to the CPU 901 . By operating the input device 915, the user inputs various data to the information processing apparatus 900 and instructs processing operations.
- An imaging device 933 which will be described later, can also function as an input device by imaging the movement of the user's hand, the user's finger, and the like. At this time, the pointing position may be determined according to the movement of the hand or the direction of the finger.
- the output device 917 is configured by a device capable of visually or audibly notifying the user of the acquired information.
- the output device 917 can be, for example, a display device such as an LCD (Liquid Crystal Display) or an organic EL (Electro-Luminescence) display, or a sound output device such as a speaker or headphones.
- the output device 917 may include a PDP (Plasma Display Panel), a projector, a hologram, a printer device, and the like.
- the output device 917 outputs the result obtained by the processing of the information processing device 900 as a video such as text or an image, or as a sound such as voice or sound.
- the output device 917 may also include lights or the like to brighten the surroundings.
- the storage device 919 is a data storage device configured as an example of the storage unit of the information processing device 900 .
- the storage device 919 is composed of, for example, a magnetic storage device such as a HDD (Hard Disk Drive), a semiconductor storage device, an optical storage device, or a magneto-optical storage device.
- the storage device 919 stores programs executed by the CPU 901, various data, and various data acquired from the outside.
- a drive 921 is a reader/writer for a removable recording medium 927 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, and is built in or externally attached to the information processing apparatus 900 .
- the drive 921 reads information recorded on the attached removable recording medium 927 and outputs it to the RAM 905 . Also, the drive 921 writes records to the attached removable recording medium 927 .
- a connection port 923 is a port for directly connecting a device to the information processing device 900 .
- the connection port 923 can be, for example, a USB (Universal Serial Bus) port, an IEEE1394 port, a SCSI (Small Computer System Interface) port, or the like.
- the connection port 923 may be an RS-232C port, an optical audio terminal, an HDMI (registered trademark) (High-Definition Multimedia Interface) port, or the like.
- the communication device 925 is, for example, a communication interface configured with a communication device for connecting to the network 931.
- the communication device 925 can be, for example, a communication card for wired or wireless LAN (Local Area Network), Bluetooth (registered trademark), or WUSB (Wireless USB).
- the communication device 925 may be a router for optical communication, a router for ADSL (Asymmetric Digital Subscriber Line), or a modem for various types of communication.
- the communication device 925 for example, transmits and receives signals to and from the Internet and other communication devices using a predetermined protocol such as TCP/IP.
- a network 931 connected to the communication device 925 is a wired or wireless network, such as the Internet, home LAN, infrared communication, radio wave communication, or satellite communication.
- the search unit searches the volume data based on a label indicating whether to search for inner data existing in a position included in the polygon data in the volume data, and obtains a search result. and a rendering unit that performs rendering based on the polygon data and the volume data based on the search result.
- rendering that takes advantage of the characteristics of each of the polygon data and the volume data is performed, so it is expected that rendering will be possible with a reduced sense of discomfort given to the user.
- the searching unit does not search the inner data based on the label indicating that the inner data is not searched, and does not search the inner data based on the label indicating that the inner data is not searched. explore the The information processing device according to (1) above.
- the search unit searches for volume data in a depth direction with a predetermined viewpoint as a reference, and searches for front side data located in front of the polygon data with the viewpoint as a reference, regardless of the label. do, The information processing apparatus according to (1) or (2).
- the search unit writes the distance corresponding to the label into the depth buffer, advances the point of interest step by step in the depth direction with the viewpoint as a reference, and the distance between the viewpoint and the point of interest is written into the depth buffer. when the distance is smaller than the distance and when the volume data exists at the point of interest, extracting the volume data existing at the point of interest;
- the rendering unit performs rendering based on the extracted volume data and the polygon data.
- the search unit writes a predetermined distance to the depth buffer based on the label indicating to search the inner data;
- the predetermined distance is a distance equal to or greater than the maximum distance between the viewpoint and the volume data;
- the search unit writes the distance between the viewpoint and the polygon data in the depth buffer based on the label indicating that the inner data is not searched.
- the information processing apparatus according to any one of (4) to (6).
- the search unit advances the point of interest when a total value of transparency of the extracted volume data is smaller than a predetermined value.
- the rendering unit synthesizes the extracted volume data based on the transparency of the extracted volume data to obtain a volume data synthesis result.
- the information processing apparatus according to any one of (4) to (8) above.
- the rendering unit outputs the volume data synthesis result when the label indicates that the inner data is searched.
- the information processing device according to (9) above.
- the rendering unit outputs a synthesis result of the volume data synthesis result and the rendering result of the polygon data when the label indicates that the inner data is not searched.
- (12) The rendering unit synthesizes the polygon data and the volume data synthesis result based on the extracted total transparency of the volume data and the transparency of the polygon data.
- the information processing device (11) above.
- the rendering unit controls whether to render the volume data based on the distance between the user's viewpoint and the polygon data.
- the information processing apparatus according to any one of (1) to (12) above.
- the rendering unit renders the polygon data without rendering the volume data when a distance between the user's viewpoint and the polygon data is greater than a threshold.
- the information processing device according to (13) above.
- the search unit does not search the volume data when a distance between the user's viewpoint and the polygon data is greater than a threshold;
- the rendering unit performs rendering based on the polygon data and the volume data based on the search result when the distance between the user's viewpoint and the polygon data is smaller than a threshold.
- the information processing device according to (13) above.
- the search unit searches for the volume data based on the label when the distance between the user's viewpoint and the polygon data is smaller than a threshold.
- the information processing device according to (13) above.
- the rendering unit matches at least one of an origin position and a scale between the polygon data and the volume data;
- the information processing apparatus according to any one of (1) to (17) above.
- a method of processing information comprising: (20) the computer, a search unit for searching the volume data based on a label indicating whether to search for inner data existing in a position included in the polygon data in the volume data and obtaining a search result; a rendering unit that performs rendering based on the polygon data and the volume data based on the search result;
- a program that functions as an information processing device comprising
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
【課題】ユーザに与える違和感を低減してポリゴンデータおよびボリュームデータに基づくレンダリングを行うことが可能な技術が提供されることが望まれる。 【解決手段】ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得る探索部と、前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うレンダリング部と、を備える、情報処理装置が提供される。
Description
本開示は、情報処理装置、情報処理方法およびプログラムに関する。
近年、ポリゴンデータおよびボリュームデータそれぞれのレンダリング結果の合成に関する技術が知られている。かかる技術において、ポリゴンデータのレンダリングの結果がボリュームデータのレンダリングの結果によって無条件に上書き表示されてしまうと、ポリゴンデータが表示されない場合が増えてしまう。そこで、ボリュームデータの探索距離を制限する技術が開示されている(例えば、特許文献1参照)。
しかしながら、ユーザに与える違和感を低減してポリゴンデータおよびボリュームデータに基づくレンダリングを行うことが可能な技術が提供されることが望まれる。
本開示のある観点によれば、ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得る探索部と、前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うレンダリング部と、を備える、情報処理装置が提供される。
また、本開示の別の観点によれば、ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得ることと、プロセッサが、前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うことと、を備える、情報処理方法が提供される。
また、本開示の別の観点によれば、コンピュータを、ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得る探索部と、前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うレンダリング部と、を備える情報処理装置として機能させるプログラムが提供される。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、本明細書および図面において、実質的に同一または類似の機能構成を有する複数の構成要素を、同一の符号の後に異なる数字を付して区別する場合がある。ただし、実質的に同一または類似の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。また、異なる実施形態の類似する構成要素については、同一の符号の後に異なるアルファベットを付して区別する場合がある。ただし、類似する構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。
なお、説明は以下の順序で行うものとする。
0.概要
1.実施形態の詳細
1.1.構成例
1.2.機能詳細
1.3.動作例
2.各種の変形例
3.ハードウェア構成例
4.まとめ
0.概要
1.実施形態の詳細
1.1.構成例
1.2.機能詳細
1.3.動作例
2.各種の変形例
3.ハードウェア構成例
4.まとめ
<0.概要>
まず、本開示の実施形態の概要について説明する。
まず、本開示の実施形態の概要について説明する。
近年、様々な分野においてCG(Computer Graphics)が利用されている。CGは、コンピュータを利用して画像を生成する技術であり得る。CGによって画像が生成される過程においてはレンダリングが行われ得る。
ここで、レンダリングは、各種データをコンピュータによって処理することによって画像を生成することを意味し得る。特に、CGにおけるレンダリングは、モデリングされた3次元データを2次元画像に変換する技術であり得る。モデリングは、オブジェクトの形状および色などを3次元データとして定義することを意味し得る。
オブジェクトの例としては、ポリゴンデータおよびボリュームデータなどがある。本開示の実施形態においては、ポリゴンデータおよびボリュームデータに基づくレンダリングを行う場合を想定する。
ここで、ポリゴンデータは、複数のポリゴンの組み合わせによって構成される。なお、ポリゴンは、多角形を意味し得る。一般的に、ポリゴンデータは、3角形(頂点が3つの多角形)の組み合わせによって構成されるが、3角形以外の多角形(頂点が4つ以上の多角形)によって構成されてもよい。ポリゴンデータは、データサイズを抑えられるといった特徴、表面の質感を表現しやすいといった特徴などを有する。そのため、ポリゴンデータは、顔、肌、不透明な衣装などを表現するのに適している。
一方、ボリュームデータは、複数のボクセルの組み合わせによって構成される。ボクセルは、ボリュームデータを構成する最小単位であり、典型的には立方体(正規格子)によって構成される。ボリュームデータは、複雑な形状の再現度が高いといった特徴、透過表現を行いやすいといった特徴などを有する。そのため、ボリュームデータは、髪、半透明な衣装などを表現するのに適している。
本開示の実施形態においては、ボリュームデータのレンダリングの例としてレイトレーシング法が用いられる場合を想定する。まず、図1を参照しながら、本開示の実施形態に係るボリュームデータに適用されるレイトレーシング法の概要について説明する。
図1は、レイトレーシング法の概要を説明するための図である。図1を参照すると、CG空間にモデリングされたオブジェクトB1が存在している。本開示の実施形態において、オブジェクトB1は、ボリュームデータであり得る。また、CG空間には、視点C0が存在している。視点C0の位置は、ユーザによる操作に応じて適宜に変更され得る。
また、視点C0とオブジェクトB1との間には、仮想的なスクリーン20が存在している。スクリーン20は、複数のピクセルによって構成される。ここで、複数のピクセルそれぞれは、色情報の最小単位である。すなわち、スクリーン20における複数のピクセルそれぞれの色情報の集合は、CGによって生成される画像に該当し得る。図1には、複数のピクセルを代表してピクセル21が示されている。
レイトレーシング法においては、視点C0からスクリーン20の各ピクセルに順次に視線(以下、「レイ」とも言う。)が飛ばされる。そして、各レイがオブジェクトに最初に交差する点が算出される。図1には、各ピクセルに飛ばされるレイの例として、レイR1~R3が示されている。また、レイR1~R3がオブジェクトに最初に交差する点r1~r3が示されている。
そして、各点における色情報、光源L1の明るさ、光源L1と各点との位置関係などに基づいて、各点の明るさが算出される。このようにして算出される各点の明るさが、各点に対応するピクセルの色情報として扱われる。なお、各点の明るさの算出には、光源L1から各点に直接到達する光だけではなく、光源L1から照射されて何らかの物体によって反射されて各点に到達する光が考慮されてもよい。このようにして、スクリーン20の各ピクセルの色情報が算出され、画像が生成される。
以上、レイトレーシング法の概要について説明した。
以上では、オブジェクトB1の例としてボリュームデータが表示される場合を主に想定した。続いて、ボリュームデータのレンダリングを行うだけではなく、ポリゴンデータのレンダリング結果と、ボリュームデータのレンダリング結果とを合成する場合を想定する。このとき、ポリゴンデータのレンダリングの結果がボリュームデータのレンダリングの結果によって無条件に上書き表示されてしまうと、ポリゴンデータが表示されない場合が増えてしまう。
そこで、ボリュームデータの探索距離を制限する既存技術が開示されている。図2~図4を参照しながら、かかる既存技術について簡単に説明する。
図2は、既存技術においてポリゴンデータに飛ばされたレイの様子を示す図である。図2を参照すると、視点C0およびポリゴンデータP1が示されている。また、視点C0から飛ばされたレイが各矢印によって示されている。図2に示されるように、既存技術においては、各レイの長さが視点C0からポリゴンデータP1の表面までの距離(ポリゴンデータP1の深度)に制限される。
図3は、既存技術においてボリュームデータにレイが到達する様子を示す図である。図3を参照すると、ボリュームデータ30のうち、レイが到達するデータが、手前側データ31として示されており、レイが到達しないデータ32が、内側データ32として示されている。既存技術において、手前側データ31は、レンダリングの対象とされるが、内側データ32は、レンダリングの対象とされない。
図4は、既存技術においてボリュームデータのうちレイが到達するデータとポリゴンデータとを区別して示す図である。図4を参照すると、既存技術においては、ボリュームデータ30のうちレイが到達するデータは、視点C0を基準としてポリゴンデータP1の手前に位置する手前側データ31に限定されている。一方、内側データ32には、レイが到達しない。
以上、既存技術について簡単に説明した。既存技術においては、内側データ32にはレイが到達しない。そのため、内側データ32はレンダリングの対象とならない。しかし、内側データ32をレンダリングの対象としたい場合があり得る。図5~図10を参照しながら、内側データ32をレンダリングの対象としたい場合の例を説明する。
図5は、内側データと手前側データとポリゴンデータとを視点側から示した図である。図5を参照すると、ポリゴンデータP1が示されている。ボリュームデータ30のうちポリゴンデータP1の表面に存在するデータは、手前側データ31に該当する。一方、ボリュームデータ30のうちポリゴンデータP1に内包される位置に存在するデータは、内側データ32に該当する。この内側データ32をレンダリングの対象としたい場合があり得る。
図6は、ポリゴンデータの例を示す図である。図6を参照すると、ポリゴンデータP1が示されている。ポリゴンデータP1は、人物の顔、髪および不透明な衣装それぞれの部分のポリゴンデータを含んで構成されている。ここで、上記したように、ポリゴンデータP1は、顔および不透明な衣装を表現するのに適している。しかし、ポリゴンデータP1は、髪を表現するのにはあまり適していない。
図7は、ボリュームデータの例を示す図である。図7を参照すると、ボリュームデータV1が示されている。ポリゴンデータP1と同様に、ボリュームデータV1は、人物の顔、髪および不透明な衣装それぞれの部分のボリュームデータを含んで構成されている。ここで、上記したように、ボリュームデータV1は、髪を表現するのに適している。しかし、ボリュームデータV1は、顔および不透明な衣装を表現するのにはあまり適していない。
図8は、本開示の実施形態において実現を目指すレンダリングの例を説明するための図である。図8(矢印の左側)を参照すると、ポリゴンデータP1(図6)のうち、髪の部分のポリゴンデータP3と、髪の部分以外のポリゴンデータP2とが示されている。上記したように、髪を表現するには、ポリゴンデータよりもボリュームデータのほうが適している。逆に、顔および不透明な衣装を表現するのには、ボリュームデータよりもポリゴンデータのほうが適している。
そこで、本開示の実施形態では、図8(矢印の右側)に示されたように、髪の部分のポリゴンデータP3を、レンダリングの対象としない。その代わりに、本開示の実施形態では、図8(矢印の右側)に示されたように、髪の部分のポリゴンデータP3に内包される位置に存在する髪の部分のボリュームデータV2をレンダリングの対象とすることを目指す。なお、髪の部分のボリュームデータV2は、内側データの一例に過ぎない。したがって、内側データは、髪の部分のボリュームデータに限定されない。
図9は、本開示の実施形態において実現を目指すレンダリング対象の例を示す図である。図9を参照すると、髪の部分以外のポリゴンデータP2が示されている。また、髪の部分のポリゴンデータP3(図8)に内包される位置に存在する髪の部分のボリュームデータV2が示されている。図9に示されるように、本開示の実施形態においては、一例として、髪の部分以外のポリゴンデータP2と髪の部分のボリュームデータV2とをレンダリングの対象とすることを目指す。
図10は、本開示の実施形態において実現を目指すレンダリングを既存技術によって実現しようとした場合を説明するための図である。図10に示されるように、既存技術においては、各レイの長さが視点C0からポリゴンデータP1の表面までの距離に制限されてしまう。
そこで、既存技術では、ボリュームデータ30のうち、手前側データV3は、レンダリングの対象とされるが、内側データV4は、レンダリングの対象とされない。したがって、既存技術では、ポリゴンデータP1に内包される位置に存在する髪の部分のボリュームデータV2(図9)の一部しかレンダリングの対象とされなくなってしまう。
そこで、本開示の実施形態では、一例として、ポリゴンデータに内包される位置に存在するボリュームデータをレンダリングの対象とすることを目指す。これによって、ポリゴンデータおよびボリュームデータそれぞれの特徴を生かしたレンダリングが行われるようになるため、ユーザに与える違和感を低減したレンダリングが可能となることが期待される。
以上、本開示の実施形態の概要について説明した。
<1.実施形態の詳細>
続いて、本開示の実施形態について詳細に説明する。
続いて、本開示の実施形態について詳細に説明する。
(1.1.構成例)
まず、本開示の実施形態に係る情報処理装置の構成例について説明する。
まず、本開示の実施形態に係る情報処理装置の構成例について説明する。
図11は、本開示の実施形態に係る情報処理装置の構成例を説明するための図である。本開示の実施形態に係る情報処理装置10は、コンピュータによって実現され、図示しない制御部と、図示しない記憶部とを備える。
(制御部)
図示しない制御部は、例えば、1または複数のCPU(Central Processing Unit;中央演算処理装置)などによって構成されていてよい。図示しない制御部がCPUなどといった処理装置によって構成される場合、かかる処理装置は、電子回路によって構成されてよい。図示しない制御部は、かかる処理装置によってプログラムが実行されることによって実現され得る。
図示しない制御部は、例えば、1または複数のCPU(Central Processing Unit;中央演算処理装置)などによって構成されていてよい。図示しない制御部がCPUなどといった処理装置によって構成される場合、かかる処理装置は、電子回路によって構成されてよい。図示しない制御部は、かかる処理装置によってプログラムが実行されることによって実現され得る。
図示しない制御部は、ポリゴンデータレンダリング部122と、ボリュームデータレンダリング部124と、バッファ合成部126と、画像出力部140とを備える。これらのブロックの詳細については後に説明する。
(記憶部)
図示しない記憶部は、メモリを含んで構成され、図示しない制御部によって実行されるプログラムを記憶したり、このプログラムの実行に必要なデータを記憶したりする記録媒体である。また、図示しない記憶部は、図示しない制御部による演算のためにデータを一時的に記憶する。図示しない記憶部は、磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または、光磁気記憶デバイスなどにより構成される。
図示しない記憶部は、メモリを含んで構成され、図示しない制御部によって実行されるプログラムを記憶したり、このプログラムの実行に必要なデータを記憶したりする記録媒体である。また、図示しない記憶部は、図示しない制御部による演算のためにデータを一時的に記憶する。図示しない記憶部は、磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または、光磁気記憶デバイスなどにより構成される。
図示しない記憶部は、ポリゴンデータ記憶部112と、ボリューム重畳ラベルデータ記憶部114と、ボリュームデータ記憶部116と、第1のカラーバッファ132と、深度バッファ134と、第2のカラーバッファ136とを備える。これらのブロックの詳細については後に説明する。
本開示の実施形態に係る技術においては、ポリゴンデータの領域ごとに、ボリュームデータのうち内側データを探索するかを示すラベルがあらかじめ対応付けられる。そして、本開示の実施形態に係る情報処理装置10は、そのラベルに基づいて、ボリュームデータの探索を行って探索結果を得る図示しない探索部と、探索結果に基づいてポリゴンデータとボリュームデータとに基づくレンダリングを行う図示しないレンダリング部を備える。
これによって、ポリゴンデータに内包される位置に存在するボリュームデータをレンダリングの対象とすることが可能となる。そして、これによって、ポリゴンデータおよびボリュームデータそれぞれの特徴を生かしたレンダリングが行われるようになるため、ユーザに与える違和感を低減したレンダリングが可能となることが期待される。
なお、図示しない探索部は、ポリゴンデータレンダリング部122およびボリュームデータレンダリング部124によって実現され得る。また、図示しないレンダリング部は、ボリュームデータレンダリング部124およびバッファ合成部126によって実現され得る。
図12は、本開示の実施形態に係るポリゴンデータの構成例を示す図である。図12に示されるように、本開示の実施形態においては、ポリゴンデータが、髪の部分のポリゴンデータP3と、髪の部分以外のポリゴンデータP2とを含んでいる。上記したように、本開示の実施形態においては、ボリュームデータのうち、髪の部分以外のポリゴンデータP2に内包される位置に存在する内側データは、レンダリングの対象とされず、髪の部分のポリゴンデータP3に内包される位置に存在する内側データは、レンダリングの対象とされる。
図13は、ラベルによる内側データの探索の例について説明するための図である。本開示の実施形態においては、髪の部分のポリゴンデータP3には、内側データを探索することを示すラベルが対応付けられる。一方、髪の部分以外のポリゴンデータP2には、内側データを探索しないことを示すラベルが対応付けられる。
これによって、髪の部分のポリゴンデータP3に向けて飛ばされるレイの距離(レイ追跡距離)は、髪の部分のポリゴンデータP3の内側データに到達するように延長される。したがって、図示しない探索部は、ラベルが内側データを探索することを示すことに基づいて、ラベルに対応付けられた髪の部分のポリゴンデータP3の内側データを探索する。
一方、髪の部分以外のポリゴンデータP2に向けて飛ばされるレイの距離は、髪の部分以外のポリゴンデータP2の表面までに制限される。したがって、図示しない探索部は、ラベルが内側データを探索しないことを示すことに基づいて、ラベルに対応付けられた髪の部分以外のポリゴンデータP2の内側データを探索しない。
図14は、本開示の実施形態に係るレンダリングの例を説明するための図である。図14に示されるように、本開示の実施形態に係る技術においては、髪の部分以外のポリゴンデータP2に向けて飛ばされるレイの距離は、髪の部分以外のポリゴンデータP2の表面までに制限される。そのため、ボリュームデータのうち、髪の部分以外のポリゴンデータP2の内側データは、レンダリングの対象とされない。
一方、髪の部分のポリゴンデータP3に向けて飛ばされるレイの距離は、髪の部分のポリゴンデータP3の内側データに到達するように延長される。そのため、髪の部分のポリゴンデータP3に内包される位置に存在する髪の部分のボリュームデータV2は、レンダリングの対象とされる。
なお、図示しない探索部は、視点C0を基準として奥行方向にボリュームデータの探索を行う。このとき、ラベルに関わらず、ボリュームデータのうち視点C0を基準としてポリゴンデータの手前に位置する手前側データを探索する。すなわち、ボリュームデータのうち、ポリゴンデータの手前に位置する手前側データは、ラベルに関わらず、レンダリングの対象とされる。
以上、本開示の実施形態に係る情報処理装置10の構成例について説明した。
(1.2.機能詳細)
続いて、本開示の実施形態に係る情報処理装置10の機能詳細について説明する。
続いて、本開示の実施形態に係る情報処理装置10の機能詳細について説明する。
(ポリゴンデータ記憶部112)
ポリゴンデータ記憶部112は、ポリゴンデータを記憶する。上記したように、ポリゴンデータは、複数のポリゴンの組み合わせによって構成される。より詳細に、ポリゴンデータは、複数のポリゴンそれぞれを構成する頂点に関するデータを含んで構成される。例えば、頂点に関するデータは、頂点の名称と、頂点の座標とを含む。
ポリゴンデータ記憶部112は、ポリゴンデータを記憶する。上記したように、ポリゴンデータは、複数のポリゴンの組み合わせによって構成される。より詳細に、ポリゴンデータは、複数のポリゴンそれぞれを構成する頂点に関するデータを含んで構成される。例えば、頂点に関するデータは、頂点の名称と、頂点の座標とを含む。
ここで、頂点の名称は、頂点をそのフレームにおいて一意に識別するための情報である。頂点の座標は、頂点の位置を表現する座標である。一例として、頂点の座標は、3次元座標(x座標,y座標,z座標)によって表現され得る。
また、ポリゴンを構成する頂点は、ポリゴンデータに貼り付けられるテクスチャにおける座標(UV座標)に対応する。テクスチャは、色情報および透過度を含んでいる。以下では、色情報としてRGB値を例に挙げて説明するが、色情報は、どのような方式によって表現されてもよい。また、透過度はα値であってよい。
なお、以下では、ポリゴンデータが、ある一つの時点において撮像されたデータ(撮像データ)に写るオブジェクトから抽出された3次元データである場合について主に説明する。このとき、3次元データは、ある時点における1つのフレームによって構成され得る。しかし、ポリゴンデータは、複数のフレームから構成されていてもよい。
例えば、複数のカメラによって時系列に沿って連続的に撮像されたデータ(撮像データ)に基づいて、撮像データに写るオブジェクトの3次元データを抽出する技術の例として、ボリュメトリックキャプチャ技術が知られている。かかるボリュメトリックキャプチャ技術は、抽出した3次元データを利用して任意の視点からのオブジェクトの3次元動画像を再現する。
ボリュメトリックキャプチャ技術によって抽出される3次元データは、ボリュメトリックデータとも言われる。ボリュメトリックデータは、連続する複数の時刻それぞれにおけるフレームによって構成される3次元動画像データである。ポリゴンデータは、このようにして得られた複数のフレームであってもよい。
(ボリューム重畳ラベルデータ記憶部114)
ボリューム重畳ラベルデータ記憶部114は、ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルを記憶する。かかるラベルは、ポリゴンデータの各領域に対してあらかじめ対応付けられる。ポリゴンデータの各領域に対するラベル付けの手法は限定されない。例えば、ポリゴンデータに対応するテクスチャに対してラベル付けがされてもよい。
ボリューム重畳ラベルデータ記憶部114は、ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルを記憶する。かかるラベルは、ポリゴンデータの各領域に対してあらかじめ対応付けられる。ポリゴンデータの各領域に対するラベル付けの手法は限定されない。例えば、ポリゴンデータに対応するテクスチャに対してラベル付けがされてもよい。
例えば、テクスチャへのラベル付けは、手動によって行われてもよい。あるいは、テクスチャへのラベル付けは、機械学習による部位検出を用いて行われてもよい。例えば、髪の部分に対して、内側データを探索することを示すラベルを対応付ける場合には、機械学習によって髪の部分が検出され、検出された髪の部分に対して、内側データを探索することを示すラベルが対応付けられてもよい。
(ボリュームデータ記憶部116)
ボリュームデータ記憶部116は、ボリュームデータを記憶する。ボリュームデータは、複数のボクセルによって構成されている。各ボクセルには、RGB値およびα値が割り当てられている。以下では、ボリュームデータが、ある一つの時点において撮像されたデータ(撮像データ)に写るオブジェクトから抽出された3次元データである場合について主に説明する。しかし、ボリュームデータは、ポリゴンデータと同様に、複数のフレームから構成されていてもよい。
ボリュームデータ記憶部116は、ボリュームデータを記憶する。ボリュームデータは、複数のボクセルによって構成されている。各ボクセルには、RGB値およびα値が割り当てられている。以下では、ボリュームデータが、ある一つの時点において撮像されたデータ(撮像データ)に写るオブジェクトから抽出された3次元データである場合について主に説明する。しかし、ボリュームデータは、ポリゴンデータと同様に、複数のフレームから構成されていてもよい。
(ポリゴンデータレンダリング部122)
ポリゴンデータレンダリング部122は、ポリゴンデータ記憶部112からポリゴンデータを取得する。さらに、ポリゴンデータレンダリング部122は、ボリューム重畳ラベルデータ記憶部114からラベルを取得する。そして、ポリゴンデータレンダリング部122は、取得したラベルとポリゴンデータとに基づいて、ポリゴンデータのレンダリングを行う。より詳細に、ポリゴンデータレンダリング部122は、頂点シェーダを実行する。
ポリゴンデータレンダリング部122は、ポリゴンデータ記憶部112からポリゴンデータを取得する。さらに、ポリゴンデータレンダリング部122は、ボリューム重畳ラベルデータ記憶部114からラベルを取得する。そして、ポリゴンデータレンダリング部122は、取得したラベルとポリゴンデータとに基づいて、ポリゴンデータのレンダリングを行う。より詳細に、ポリゴンデータレンダリング部122は、頂点シェーダを実行する。
頂点シェーダの実行により、ポリゴンデータを構成する複数の頂点それぞれのスクリーン座標系における位置(すなわち、2次元画像のどのピクセルに頂点が位置するか)が算出される。さらに、頂点シェーダによってポリゴンデータを構成する複数の頂点それぞれに対応するテクスチャにおける座標がテクスチャ座標として算出される。
ポリゴンデータレンダリング部122は、ピクセルシェーダを実行する。ピクセルシェーダにおいては、ピクセルの処理が順次に実行される。このとき、ポリゴンデータレンダリング部122は、処理中のピクセルに対応付けられたラベルに基づいて、処理中のピクセルの処理を実行する。
より詳細に、ポリゴンデータレンダリング部122は、処理中のピクセルに対応付けられたラベルに応じた距離をレイ追跡距離として深度バッファ134に書き込む。
例えば、ポリゴンデータレンダリング部122は、ラベルが内側データを探索することを示す場合には、ラベルが内側データを探索することを示すことに基づいて、深度バッファ134の処理中のピクセルに対応する位置に所定の距離を書き込む。ここで、所定の距離は、視点C0とボリュームデータとの距離の最大値以上の距離であってよい。これによって、処理中のピクセルにおいて内側データが探索されるためのレイ追跡距離が十分に確保され得る。
さらに、ラベルが内側データを探索することを示す場合には、ポリゴンデータはレンダリングの対象とされない。そこで、ポリゴンデータレンダリング部122は、ラベルが内側データを探索することを示すことに基づいて、第1のカラーバッファ132の処理中のピクセルに対応する位置にα値=0を書き込む。なお、RGB値は、第1のカラーバッファ132の処理中のピクセルに対応する位置に書き込まれなくてよい。
一方、ポリゴンデータレンダリング部122は、ラベルが内側データを探索しないことを示す場合には、ラベルが内側データを探索しないことを示すことに基づいて、深度バッファ134の処理中のピクセルに対応する位置に、処理中のピクセルにおけるポリゴンデータの深度を書き込む。処理中のピクセルにおけるポリゴンデータの深度は、処理中のピクセルにおける視点C0とポリゴンデータとの距離に該当し得る。これによって、処理中のピクセルにおいて内側データが探索されないようになる。
さらに、ラベルが内側データを探索しないことを示す場合には、ポリゴンデータはレンダリングの対象とされる。そこで、ポリゴンデータレンダリング部122は、ラベルが内側データを探索しないことを示すことに基づいて、処理中のピクセルのテクスチャ座標とテクスチャとに基づいて、処理中のピクセルの色情報(RGB値)およびα値を決定し、第1のカラーバッファ132の処理中のピクセルに対応する位置に、決定した色情報(RGB値)およびα値を書き込む。
(ボリュームデータレンダリング部124)
ボリュームデータレンダリング部124は、ボリュームデータ記憶部116からボリュームデータを取得する。さらに、ボリュームデータレンダリング部124は、深度バッファ134からレイ追跡距離を読み込む。ボリュームデータレンダリング部124は、ピクセルを順次に選択して、選択したピクセルに対応するレイ追跡距離に基づいて、選択したピクセルに対応するボリュームデータのレンダリングを行う。
ボリュームデータレンダリング部124は、ボリュームデータ記憶部116からボリュームデータを取得する。さらに、ボリュームデータレンダリング部124は、深度バッファ134からレイ追跡距離を読み込む。ボリュームデータレンダリング部124は、ピクセルを順次に選択して、選択したピクセルに対応するレイ追跡距離に基づいて、選択したピクセルに対応するボリュームデータのレンダリングを行う。
ボリュームデータレンダリング部124は、視点C0を基準として奥行方向に段階的にレイ(注目箇所)を進め、レイの長さ(すなわち、視点C0と注目箇所との距離)が深度バッファ134に書き込まれたレイ追跡距離よりも小さい場合、かつ、レイの位置にボリュームデータが存在する場合に、レイの位置に存在するボリュームデータを抽出する。
ボリュームデータレンダリング部124は、選択中のピクセルにおいて抽出したボリュームデータのα値に基づいて、選択中のピクセルにおいて抽出したボリュームデータ同士を合成してボリュームデータ合成結果を取得する。
より詳細に、ボリュームデータレンダリング部124は、選択中のピクセルにおいて抽出したボリュームデータのR値同士をαブレンドにより合成してよい。同様にして、ボリュームデータレンダリング部124は、選択中のピクセルにおいて抽出したボリュームデータのG値同士をαブレンドにより合成してよい。また、ボリュームデータレンダリング部124は、選択中のピクセルにおいて抽出したボリュームデータのB値同士をαブレンドにより合成してよい。
ボリュームデータレンダリング部124は、選択中のピクセルにおいて抽出したボリュームデータのα値の合計値が所定の値よりも小さい場合に、選択中のピクセルを維持してレイを進める。例えば、所定の値は、1であってよい。かかる場合には、ボリュームデータレンダリング部124は、同様にしてレイの位置に存在するボリュームデータを抽出する。
選択中のピクセルにおいて抽出されたボリュームデータのα値の合計値が所定の値以上となる場合が想定される。かかる場合には、ボリュームデータレンダリング部124は、選択中のピクセルにおいて抽出したボリュームデータ同士の合成結果であるボリュームデータ合成結果を、第2のカラーバッファ136における選択中のピクセルに対応する位置に書き込む。
そして、ボリュームデータレンダリング部124は、次のピクセルを選択して選択したピクセルについて同様の処理を行う。ボリュームデータレンダリング部124は、未処理のピクセルがなくなった場合には、ボリュームデータレンダリング部124からバッファ合成部126に動作が移行される。
(バッファ合成部126)
バッファ合成部126は、第1のカラーバッファ132から、ポリゴンデータに対応する2次元画像における各ピクセルのRGBα値をポリゴンデータのレンダリング結果として取得する。さらに、バッファ合成部126は、第2のカラーバッファ136から、ボリュームデータに対応する2次元画像における各ピクセルのRGBα値をボリュームデータのレンダリング結果として取得する。
バッファ合成部126は、第1のカラーバッファ132から、ポリゴンデータに対応する2次元画像における各ピクセルのRGBα値をポリゴンデータのレンダリング結果として取得する。さらに、バッファ合成部126は、第2のカラーバッファ136から、ボリュームデータに対応する2次元画像における各ピクセルのRGBα値をボリュームデータのレンダリング結果として取得する。
バッファ合成部126は、ポリゴンデータのレンダリング結果とボリュームデータのレンダリング結果とを合成する。より詳細に、ポリゴンデータのレンダリング結果とボリュームデータのレンダリング結果とをαブレンドにより合成する。バッファ合成部126は、合成結果を画像出力部140に出力する。
(画像出力部140)
画像出力部140は、バッファ合成部126から入力された合成結果を取得する。そして、画像出力部140は、取得した合成結果を出力する。画像出力部140による合成結果は、他の装置に送信されてもよいし、ディスプレイによって表示されてもよい。ディスプレイによって表示された合成結果は、ユーザによって視認され得る。
画像出力部140は、バッファ合成部126から入力された合成結果を取得する。そして、画像出力部140は、取得した合成結果を出力する。画像出力部140による合成結果は、他の装置に送信されてもよいし、ディスプレイによって表示されてもよい。ディスプレイによって表示された合成結果は、ユーザによって視認され得る。
なお、ディスプレイの種類は限定されない。例えば、ディスプレイは、LCD(Liquid Crystal Display)であってもよいし、有機EL(Electro-Luminescence)ディスプレイであってもよいし、PDP(Plasma Display Panel)などであってもよい。
例えば、ラベルが内側データを探索することを示すラベルに対応するピクセルの出力結果は、ボリュームデータの合成結果となる。一方、ラベルが内側データを探索しないことを示すラベルに対応するピクセルの出力結果は、ボリュームデータの合成結果とポリゴンデータのレンダリング結果との合成結果となる。
ただし、いずれの場合であったとしても、手前側データが抽出されない場合には、ボリュームデータの合成結果は、内側データのレンダリング結果となり得る。一方、手前側データが抽出された場合には、ボリュームデータの合成結果は、手前側データと内側データとの合成結果となる。
以上、本開示の実施形態に係る情報処理装置10の機能詳細について説明した。
(1.3.動作例)
続いて、本開示の実施形態に係る情報処理装置10の動作例について説明する。まず、図15を参照しながら、ポリゴンデータレンダリング部122の動作例について説明し、続いて、図16および図17を参照しながら、ボリュームデータレンダリング部124の動作例について説明する。
続いて、本開示の実施形態に係る情報処理装置10の動作例について説明する。まず、図15を参照しながら、ポリゴンデータレンダリング部122の動作例について説明し、続いて、図16および図17を参照しながら、ボリュームデータレンダリング部124の動作例について説明する。
(ポリゴンデータレンダリング部122の動作)
図15は、ポリゴンデータレンダリング部122の動作例を示すフローチャートである。ポリゴンデータレンダリング部122は、ポリゴンデータ記憶部112からポリゴンデータを取得する。さらに、ポリゴンデータレンダリング部122は、ボリューム重畳ラベルデータ記憶部114からラベルを取得する。図15に示されるように、ポリゴンデータレンダリング部122は、頂点シェーダを実行する(S11)。
図15は、ポリゴンデータレンダリング部122の動作例を示すフローチャートである。ポリゴンデータレンダリング部122は、ポリゴンデータ記憶部112からポリゴンデータを取得する。さらに、ポリゴンデータレンダリング部122は、ボリューム重畳ラベルデータ記憶部114からラベルを取得する。図15に示されるように、ポリゴンデータレンダリング部122は、頂点シェーダを実行する(S11)。
頂点シェーダの実行により、ポリゴンデータを構成する複数の頂点それぞれのスクリーン座標系における位置が算出される。さらに、頂点シェーダによってポリゴンデータを構成する複数の頂点それぞれに対応するテクスチャにおける座標がテクスチャ座標として算出される。
続いて、ポリゴンデータレンダリング部122は、ピクセルシェーダの実行を開始する(S12)。ピクセルシェーダにおいて、ポリゴンデータレンダリング部122は、ピクセルの処理を開始する(S13)。
ポリゴンデータレンダリング部122は、処理中のピクセルに内側データを探索することを示すラベルが対応付けられている場合には(S14において「NO」)、深度バッファ134の処理中のピクセルに対応する位置にレイ追跡距離の最大値を書き込む(S15)。そして、ポリゴンデータレンダリング部122は、第1のカラーバッファ132の処理中のピクセルに対応する位置にα値=0を書き込む(S16)。続いて、ポリゴンデータレンダリング部122は、S20に動作を移行させる。
一方、ポリゴンデータレンダリング部122は、処理中のピクセルに内側データを探索しないことを示すラベルが対応付けられている場合には(S14において「NO」)、深度バッファ134の処理中のピクセルに対応する位置に、処理中のピクセルにおけるポリゴンデータの深度をレイ追跡距離として書き込む(S17)。
さらに、ポリゴンデータレンダリング部122は、シェーディング計算を実行する(S18)。シェーディング計算においては、処理中のピクセルのテクスチャ座標とテクスチャとに基づいて、処理中のピクセルの色情報(RGB値)およびα値が決定される。ポリゴンデータレンダリング部122は、第1のカラーバッファ132の処理中のピクセルに対応する位置に、決定した色情報(RGB値)およびα値をシェーディング結果として書き込む(S19)。続いて、ポリゴンデータレンダリング部122は、S20に動作を移行させる。
ポリゴンデータレンダリング部122は、ピクセルシェーダの実行が終了しない間は(S20において「NO」)、S13に動作を移行させる。一方、ポリゴンデータレンダリング部122は、ピクセルシェーダの実行が終了した場合には(S20において「YES」)、ポリゴンデータのレンダリング(S10)を終了する。
(ボリュームデータレンダリング部124の動作)
図16および図17は、ボリュームデータレンダリング部124の動作例を示すフローチャートである。図16に示されるように、ボリュームデータ記憶部116からボリュームデータを取得する(S31)。さらに、ボリュームデータレンダリング部124は、深度バッファ134からレイ追跡距離を読み込む(S32)。続いて、ボリュームデータレンダリング部124は、レイマーチングの実行を開始する(S33)。
図16および図17は、ボリュームデータレンダリング部124の動作例を示すフローチャートである。図16に示されるように、ボリュームデータ記憶部116からボリュームデータを取得する(S31)。さらに、ボリュームデータレンダリング部124は、深度バッファ134からレイ追跡距離を読み込む(S32)。続いて、ボリュームデータレンダリング部124は、レイマーチングの実行を開始する(S33)。
ここで、図18を参照しながら、レイマーチング法の概要について説明する。
図18は、レイマーチング法の概要について説明するための図である。図18を参照すると、CG空間において視点C0が存在している。また、視点C0から飛ばされるレイの方向R1が示されている。また、CG空間においてオブジェクトB1、B4~B6が存在している。
レイマーチング法では、視点C0を開始位置とし、現在位置からの距離が最短となるオブジェクトを検出する。そして、最短距離の分だけレイが進められ、最短距離が閾値以下となるオブジェクトが検出されない場合には、同様にレイが進められる。
最短距離が閾値以下となるオブジェクトが検出された場合には、そのオブジェクトがレンダリングの対象とされる。一方、最短距離が閾値以下とならず、レイを進めた回数が所定の回数を超えた場合には、レイR1の方向には何もないと判断され、レイマーチングが終了する。
図18に示された例では、点Q1~Q6の順にレイが進められる。そして、点Q6までレイが進んだ段階において、オブジェクトB1と現在位置との距離が最短となり、最短距離が閾値以下となるため、オブジェクトB1がレンダリングの対象として決定される。
図16に戻って説明を続ける。ボリュームデータレンダリング部124は、ピクセルを選択し(S34)、カメラ位置(視点の位置)を基準としたレイ位置およびレイ方向を計算する(S35)。ここで計算されるレイ位置およびレイ方向は、カメラ座標系におけるレイ位置およびレイ方向である。ボリュームデータレンダリング部124は、深度バッファ134から選択中のピクセルに対応するレイ追跡距離を取得する(S36)。ボリュームデータレンダリング部124は、計算したカメラ座標系におけるレイ位置およびレイ方向をワールド座標系のレイ位置およびレイ方向に変換する(S37)。
ボリュームデータレンダリング部124は、カメラ位置を基準として奥行方向にレイを進め(S41)、レイの長さがレイ追跡距離以上である場合には(S42において「NO」)、S47に動作を移行させる。一方、ボリュームデータレンダリング部124は、レイの長さがレイ追跡距離よりも小さい場合には(S42において「YES」)、レイの位置にボリュームデータが存在するか否かを判定する(S43)。
ボリュームデータレンダリング部124は、レイの位置にボリュームデータが存在しない場合には(S43において「NO」)、S41に動作を移行させる。一方、ボリュームデータレンダリング部124は、レイの位置にボリュームデータが存在する場合には(S43において「YES」)、レイの位置に存在するボリュームデータを抽出する(S44)。
そして、ボリュームデータレンダリング部124は、抽出したボリュームデータのRGBα値を、選択中のピクセルに対応するRGBα値に加算する(S45)このとき、RGB値それぞれは、αブレンドにより合成される。
ボリュームデータレンダリング部124は、選択中のピクセルにおいて抽出したボリュームデータのα値の合計値が1(所定の値)よりも小さい場合に(S46において「YES」)、選択中のピクセルを維持してS41に動作を移行させる。一方、ボリュームデータレンダリング部124は、1以上である場合に(S46において「NO」)、選択中のピクセルに対応するRGBα値を、第2のカラーバッファ136における選択中のピクセルに対応する位置に書き込む(S47)。
ボリュームデータレンダリング部124は、未処理のピクセルが存在する間は(S48において「YES」)、S34に動作を移行させる。一方、ボリュームデータレンダリング部124は、未処理のピクセルが存在しない場合には(S48において「YES」)、ボリュームデータのレンダリング(S30)を終了する。
以上、本開示の実施形態に係る情報処理装置10の動作例について説明した。
<2.各種の変形例>
続いて、本開示の実施形態に係る情報処理装置10の各種の変形例について説明する。
続いて、本開示の実施形態に係る情報処理装置10の各種の変形例について説明する。
(第1の変形例)
上記では、ユーザの視点に関わらず、ボリュームデータのレンダリングが行われる場合について説明した。しかし、ユーザが視聴対象から遠い場合には、ボリュームデータのレンダリング結果の視認性が低下するため、ボリュームデータのレンダリングが寄与する効果はさほど大きくないことが想定され得る。
上記では、ユーザの視点に関わらず、ボリュームデータのレンダリングが行われる場合について説明した。しかし、ユーザが視聴対象から遠い場合には、ボリュームデータのレンダリング結果の視認性が低下するため、ボリュームデータのレンダリングが寄与する効果はさほど大きくないことが想定され得る。
そこで、ボリュームデータレンダリング部124は、ユーザと視聴対象との距離に基づいて、ボリュームデータのレンダリングを行うか否かを制御してもよい。これによって、ボリュームデータのレンダリングが寄与する効果が大きいときにのみ、ボリュームデータのレンダリングが行われるため、レンダリングによる処理負荷が低減され得る。なお、ユーザの位置は、ユーザの視点(例えば、上記した視点C0)の位置であってよく、視聴対象は、ポリゴンデータであってよい。
図19は、第1の変形例に係る情報処理装置10の動作例を示すフローチャートである。図19に示されるように、ポリゴンデータレンダリング部122およびボリュームデータレンダリング部124は、各種データを読み込む(S51)。
より詳細に、ポリゴンデータレンダリング部122は、ポリゴンデータ記憶部112からポリゴンデータを読み込む。さらに、ポリゴンデータレンダリング部122は、ボリューム重畳ラベルデータ記憶部114からラベルを取得する。また、ボリュームデータレンダリング部124は、ボリュームデータ記憶部116からボリュームデータを取得する。
ポリゴンデータレンダリング部122は、ユーザと視聴対象との距離と閾値との関係を判定する(S53)。ポリゴンデータレンダリング部122は、ユーザと視聴対象との距離が閾値以上である場合には(S53において「YES」)、ポリゴンデータとラベルとに基づいて、ポリゴンデータのレンダリングを行う(S10)。かかる場合には、ボリュームデータレンダリング部124によって、ボリュームデータの探索は行われないし、ボリュームデータのレンダリングも行われない。
一方、ポリゴンデータレンダリング部122は、ユーザと視聴対象との距離が閾値より小さい場合には(S53において「NO」)、ポリゴンデータとラベルとに基づいて、ポリゴンデータのレンダリングを行い(S10)、深度バッファ134にレイ追跡距離を書き込む。ボリュームデータレンダリング部124は、ユーザと視聴対象との距離が閾値より小さい場合には、深度バッファ134に書き込まれたレイ追跡距離とボリュームデータとに基づいて、ボリュームデータの探索を行い、ボリュームデータのレンダリングを行う(S30)。
バッファ合成部126は、ポリゴンデータのレンダリング結果とボリュームデータのレンダリング結果とを合成する(S54)。画像出力部140は、バッファ合成部126による合成結果をフレームとして出力する(S55)。
(第2の変形例)
図20は、第2の変形例に係る情報処理装置12の構成例を説明するための図である。第2の変形例に係る情報処理装置12も、コンピュータによって実現され、図示しない制御部と、図示しない記憶部とを備える。ただし、図20に示されるように、第2の変形例においては、図示しない記憶部が、ボリューム位置・スケールデータ記憶部118をさらに備える。
図20は、第2の変形例に係る情報処理装置12の構成例を説明するための図である。第2の変形例に係る情報処理装置12も、コンピュータによって実現され、図示しない制御部と、図示しない記憶部とを備える。ただし、図20に示されるように、第2の変形例においては、図示しない記憶部が、ボリューム位置・スケールデータ記憶部118をさらに備える。
(ボリューム位置・スケールデータ記憶部118)
ボリューム位置・スケールデータ記憶部118は、ポリゴンデータの原点位置を示すデータおよびポリゴンデータのスケールを示すデータを記憶する。さらに、ボリューム位置・スケールデータ記憶部118は、ボリュームデータの原点位置を示すデータおよびボリュームデータのスケールを示すデータを記憶する。
ボリューム位置・スケールデータ記憶部118は、ポリゴンデータの原点位置を示すデータおよびポリゴンデータのスケールを示すデータを記憶する。さらに、ボリューム位置・スケールデータ記憶部118は、ボリュームデータの原点位置を示すデータおよびボリュームデータのスケールを示すデータを記憶する。
ボリュームデータレンダリング部124は、ボリューム位置・スケールデータ記憶部118から、ポリゴンデータの原点位置を示すデータおよびポリゴンデータのスケールを示すデータを取得するとともに、ボリュームデータの原点位置を示すデータおよびボリュームデータのスケールを示すデータを取得する。
ボリュームデータレンダリング部124は、ポリゴンデータの原点位置を示すデータとボリュームデータの原点位置を示すデータとに基づいて、ポリゴンデータとボリュームデータとの間において原点位置を一致させてもよい。さらに、ボリュームデータレンダリング部124は、ポリゴンデータのスケールを示すデータとボリュームデータのスケールを示すデータとに基づいて、ポリゴンデータとボリュームデータとの間においてスケールを一致させてもよい。
以上、本開示の実施形態に係る情報処理装置10の各種の変形例について説明した。
<3.ハードウェア構成例>
続いて、図21を参照して、本開示の実施形態に係る情報処理装置10の例としての情報処理装置900のハードウェア構成例について説明する。図21は、情報処理装置900のハードウェア構成例を示すブロック図である。なお、情報処理装置10は、必ずしも図21に示したハードウェア構成の全部を有している必要はなく、情報処理装置10の中に、図21に示したハードウェア構成の一部は存在しなくてもよい。
続いて、図21を参照して、本開示の実施形態に係る情報処理装置10の例としての情報処理装置900のハードウェア構成例について説明する。図21は、情報処理装置900のハードウェア構成例を示すブロック図である。なお、情報処理装置10は、必ずしも図21に示したハードウェア構成の全部を有している必要はなく、情報処理装置10の中に、図21に示したハードウェア構成の一部は存在しなくてもよい。
図21に示すように、情報処理装置900は、CPU(Central Processing unit)901、ROM(Read Only Memory)903、およびRAM(Random Access Memory)905を含む。また、情報処理装置900は、ホストバス907、ブリッジ909、外部バス911、インターフェース913、入力装置915、出力装置917、ストレージ装置919、ドライブ921、接続ポート923、通信装置925を含んでもよい。情報処理装置900は、CPU901に代えて、またはこれとともに、DSP(Digital Signal Processor)またはASIC(Application Specific Integrated Circuit)と呼ばれるような処理回路を有してもよい。
CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919、またはリムーバブル記録媒体927に記録された各種プログラムに従って、情報処理装置900内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータなどを記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一時的に記憶する。CPU901、ROM903、およびRAM905は、CPUバスなどの内部バスにより構成されるホストバス907により相互に接続されている。さらに、ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
入力装置915は、例えば、ボタンなど、ユーザによって操作される装置である。入力装置915は、マウス、キーボード、タッチパネル、スイッチおよびレバーなどを含んでもよい。また、入力装置915は、ユーザの音声を検出するマイクロフォンを含んでもよい。入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置900の操作に対応した携帯電話などの外部接続機器929であってもよい。入力装置915は、ユーザが入力した情報に基づいて入力信号を生成してCPU901に出力する入力制御回路を含む。ユーザは、この入力装置915を操作することによって、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりする。また、後述する撮像装置933も、ユーザの手の動き、ユーザの指などを撮像することによって、入力装置として機能し得る。このとき、手の動きや指の向きに応じてポインティング位置が決定されてよい。
出力装置917は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置917は、例えば、LCD(Liquid Crystal Display)、有機EL(Electro-Luminescence)ディスプレイなどの表示装置、スピーカおよびヘッドホンなどの音出力装置などであり得る。また、出力装置917は、PDP(Plasma Display Panel)、プロジェクタ、ホログラム、プリンタ装置などを含んでもよい。出力装置917は、情報処理装置900の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音として出力したりする。また、出力装置917は、周囲を明るくするためライトなどを含んでもよい。
ストレージ装置919は、情報処理装置900の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)などの磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
ドライブ921は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体927のためのリーダライタであり、情報処理装置900に内蔵、あるいは外付けされる。ドライブ921は、装着されているリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されているリムーバブル記録媒体927に記録を書き込む。
接続ポート923は、機器を情報処理装置900に直接接続するためのポートである。接続ポート923は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポートなどであり得る。また、接続ポート923は、RS-232Cポート、光オーディオ端子、HDMI(登録商標)(High-Definition Multimedia Interface)ポートなどであってもよい。接続ポート923に外部接続機器929を接続することで、情報処理装置900と外部接続機器929との間で各種のデータが交換され得る。
通信装置925は、例えば、ネットワーク931に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置925は、例えば、有線または無線LAN(Local Area Network)、Bluetooth(登録商標)、またはWUSB(Wireless USB)用の通信カードなどであり得る。また、通信装置925は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデムなどであってもよい。通信装置925は、例えば、インターネットや他の通信機器との間で、TCP/IPなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置925に接続されるネットワーク931は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信などである。
<4.まとめ>
本開示の実施形態によれば、ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得る探索部と、前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うレンダリング部と、を備える、情報処理装置が提供される。
本開示の実施形態によれば、ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得る探索部と、前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うレンダリング部と、を備える、情報処理装置が提供される。
かかる構成によれば、ポリゴンデータおよびボリュームデータそれぞれの特徴を生かしたレンダリングが行われるようになるため、ユーザに与える違和感を低減したレンダリングが可能となることが期待される。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏し得る。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得る探索部と、
前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うレンダリング部と、
を備える、情報処理装置。
(2)
前記探索部は、前記ラベルが前記内側データを探索しないことを示すことに基づいて、前記内側データを探索せず、前記ラベルが前記内側データを探索することを示すことに基づいて、前記内側データを探索する、
前記(1)に記載の情報処理装置。
(3)
前記探索部は、所定の視点を基準として奥行方向にボリュームデータの探索を行い、前記ラベルに関わらず、前記ボリュームデータのうち前記視点を基準として前記ポリゴンデータの手前に位置する手前側データを探索する、
前記(1)または(2)に記載の情報処理装置。
(4)
前記探索部は、前記ラベルに応じた距離を深度バッファに書き込み、前記視点を基準として奥行方向に段階的に注目箇所を進め、前記視点と前記注目箇所との距離が前記深度バッファに書き込まれた距離よりも小さい場合、かつ、前記注目箇所に前記ボリュームデータが存在する場合に、前記注目箇所に存在するボリュームデータを抽出し、
前記レンダリング部は、抽出されたボリュームデータと前記ポリゴンデータとに基づくレンダリングを行う、
前記(3)に記載の情報処理装置。
(5)
前記探索部は、前記ラベルが前記内側データを探索することを示すことに基づいて、前記深度バッファに所定の距離を書き込む、
前記(4)に記載の情報処理装置。
(6)
前記所定の距離は、前記視点と前記ボリュームデータとの距離の最大値以上の距離である、
前記(5)に記載の情報処理装置。
(7)
前記探索部は、前記ラベルが前記内側データを探索しないことを示すことに基づいて、前記深度バッファに前記視点と前記ポリゴンデータとの距離を書き込む、
前記(4)~(6)のいずれか一項に記載の情報処理装置。
(8)
前記探索部は、抽出したボリュームデータの透過度の合計値が所定の値よりも小さい場合に、前記注目箇所を進める、
前記(4)~(6)のいずれか一項に記載の情報処理装置。
(9)
前記レンダリング部は、抽出されたボリュームデータの透過度に基づいて、抽出されたボリュームデータ同士を合成してボリュームデータ合成結果を取得する、
前記(4)~(8)のいずれか一項に記載の情報処理装置。
(10)
前記レンダリング部は、前記ラベルが前記内側データを探索することを示す場合に、前記ボリュームデータ合成結果を出力する、
前記(9)に記載の情報処理装置。
(11)
前記レンダリング部は、前記ラベルが前記内側データを探索しないことを示す場合に、前記ボリュームデータ合成結果と前記ポリゴンデータのレンダリング結果との合成結果を出力する、
前記(9)または(10)に記載の情報処理装置。
(12)
前記レンダリング部は、抽出されたボリュームデータの透過度の合計値と、前記ポリゴンデータの透過度とに基づいて、前記ポリゴンデータと前記ボリュームデータ合成結果とを合成する、
前記(11)に記載の情報処理装置。
(13)
前記レンダリング部は、ユーザの視点と前記ポリゴンデータとの距離に基づいて、前記ボリュームデータのレンダリングを行うか否かを制御する、
前記(1)~(12)のいずれか一項に記載の情報処理装置。
(14)
前記レンダリング部は、前記ユーザの視点と前記ポリゴンデータとの距離が閾値よりも大きい場合に、前記ボリュームデータのレンダリングを行わずに、前記ポリゴンデータのレンダリングを行う、
前記(13)に記載の情報処理装置。
(15)
前記探索部は、前記ユーザの視点と前記ポリゴンデータとの距離が閾値よりも大きい場合に、前記ボリュームデータの探索を行わない、
前記(13)に記載の情報処理装置。
(16)
前記レンダリング部は、前記ユーザの視点と前記ポリゴンデータとの距離が閾値よりも小さい場合に、前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行う、
前記(13)に記載の情報処理装置。
(17)
前記探索部は、前記ユーザの視点と前記ポリゴンデータとの距離が閾値よりも小さい場合に、前記ラベルに基づいて前記ボリュームデータの探索を行う、
前記(13)に記載の情報処理装置。
(18)
前記レンダリング部は、前記ポリゴンデータと前記ボリュームデータとの間において原点位置およびスケールの少なくともいずれか一方を一致させる、
前記(1)~(17)のいずれか一項に記載の情報処理装置。
(19)
ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得ることと、
プロセッサが、前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うことと、
を備える、情報処理方法。
(20)
コンピュータを、
ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得る探索部と、
前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うレンダリング部と、
を備える情報処理装置として機能させるプログラム。
(1)
ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得る探索部と、
前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うレンダリング部と、
を備える、情報処理装置。
(2)
前記探索部は、前記ラベルが前記内側データを探索しないことを示すことに基づいて、前記内側データを探索せず、前記ラベルが前記内側データを探索することを示すことに基づいて、前記内側データを探索する、
前記(1)に記載の情報処理装置。
(3)
前記探索部は、所定の視点を基準として奥行方向にボリュームデータの探索を行い、前記ラベルに関わらず、前記ボリュームデータのうち前記視点を基準として前記ポリゴンデータの手前に位置する手前側データを探索する、
前記(1)または(2)に記載の情報処理装置。
(4)
前記探索部は、前記ラベルに応じた距離を深度バッファに書き込み、前記視点を基準として奥行方向に段階的に注目箇所を進め、前記視点と前記注目箇所との距離が前記深度バッファに書き込まれた距離よりも小さい場合、かつ、前記注目箇所に前記ボリュームデータが存在する場合に、前記注目箇所に存在するボリュームデータを抽出し、
前記レンダリング部は、抽出されたボリュームデータと前記ポリゴンデータとに基づくレンダリングを行う、
前記(3)に記載の情報処理装置。
(5)
前記探索部は、前記ラベルが前記内側データを探索することを示すことに基づいて、前記深度バッファに所定の距離を書き込む、
前記(4)に記載の情報処理装置。
(6)
前記所定の距離は、前記視点と前記ボリュームデータとの距離の最大値以上の距離である、
前記(5)に記載の情報処理装置。
(7)
前記探索部は、前記ラベルが前記内側データを探索しないことを示すことに基づいて、前記深度バッファに前記視点と前記ポリゴンデータとの距離を書き込む、
前記(4)~(6)のいずれか一項に記載の情報処理装置。
(8)
前記探索部は、抽出したボリュームデータの透過度の合計値が所定の値よりも小さい場合に、前記注目箇所を進める、
前記(4)~(6)のいずれか一項に記載の情報処理装置。
(9)
前記レンダリング部は、抽出されたボリュームデータの透過度に基づいて、抽出されたボリュームデータ同士を合成してボリュームデータ合成結果を取得する、
前記(4)~(8)のいずれか一項に記載の情報処理装置。
(10)
前記レンダリング部は、前記ラベルが前記内側データを探索することを示す場合に、前記ボリュームデータ合成結果を出力する、
前記(9)に記載の情報処理装置。
(11)
前記レンダリング部は、前記ラベルが前記内側データを探索しないことを示す場合に、前記ボリュームデータ合成結果と前記ポリゴンデータのレンダリング結果との合成結果を出力する、
前記(9)または(10)に記載の情報処理装置。
(12)
前記レンダリング部は、抽出されたボリュームデータの透過度の合計値と、前記ポリゴンデータの透過度とに基づいて、前記ポリゴンデータと前記ボリュームデータ合成結果とを合成する、
前記(11)に記載の情報処理装置。
(13)
前記レンダリング部は、ユーザの視点と前記ポリゴンデータとの距離に基づいて、前記ボリュームデータのレンダリングを行うか否かを制御する、
前記(1)~(12)のいずれか一項に記載の情報処理装置。
(14)
前記レンダリング部は、前記ユーザの視点と前記ポリゴンデータとの距離が閾値よりも大きい場合に、前記ボリュームデータのレンダリングを行わずに、前記ポリゴンデータのレンダリングを行う、
前記(13)に記載の情報処理装置。
(15)
前記探索部は、前記ユーザの視点と前記ポリゴンデータとの距離が閾値よりも大きい場合に、前記ボリュームデータの探索を行わない、
前記(13)に記載の情報処理装置。
(16)
前記レンダリング部は、前記ユーザの視点と前記ポリゴンデータとの距離が閾値よりも小さい場合に、前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行う、
前記(13)に記載の情報処理装置。
(17)
前記探索部は、前記ユーザの視点と前記ポリゴンデータとの距離が閾値よりも小さい場合に、前記ラベルに基づいて前記ボリュームデータの探索を行う、
前記(13)に記載の情報処理装置。
(18)
前記レンダリング部は、前記ポリゴンデータと前記ボリュームデータとの間において原点位置およびスケールの少なくともいずれか一方を一致させる、
前記(1)~(17)のいずれか一項に記載の情報処理装置。
(19)
ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得ることと、
プロセッサが、前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うことと、
を備える、情報処理方法。
(20)
コンピュータを、
ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得る探索部と、
前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うレンダリング部と、
を備える情報処理装置として機能させるプログラム。
10、12 情報処理装置
112 ポリゴンデータ記憶部
114 ボリューム重畳ラベルデータ記憶部
116 ボリュームデータ記憶部
118 ボリューム位置・スケールデータ記憶部
122 ポリゴンデータレンダリング部
124 ボリュームデータレンダリング部
126 バッファ合成部
132 第1のカラーバッファ
134 深度バッファ
136 第2のカラーバッファ
140 画像出力部
30 ボリュームデータ
31 手前側データ
32 内側データ
112 ポリゴンデータ記憶部
114 ボリューム重畳ラベルデータ記憶部
116 ボリュームデータ記憶部
118 ボリューム位置・スケールデータ記憶部
122 ポリゴンデータレンダリング部
124 ボリュームデータレンダリング部
126 バッファ合成部
132 第1のカラーバッファ
134 深度バッファ
136 第2のカラーバッファ
140 画像出力部
30 ボリュームデータ
31 手前側データ
32 内側データ
Claims (20)
- ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得る探索部と、
前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うレンダリング部と、
を備える、情報処理装置。 - 前記探索部は、前記ラベルが前記内側データを探索しないことを示すことに基づいて、前記内側データを探索せず、前記ラベルが前記内側データを探索することを示すことに基づいて、前記内側データを探索する、
請求項1に記載の情報処理装置。 - 前記探索部は、所定の視点を基準として奥行方向にボリュームデータの探索を行い、前記ラベルに関わらず、前記ボリュームデータのうち前記視点を基準として前記ポリゴンデータの手前に位置する手前側データを探索する、
請求項1に記載の情報処理装置。 - 前記探索部は、前記ラベルに応じた距離を深度バッファに書き込み、前記視点を基準として奥行方向に段階的に注目箇所を進め、前記視点と前記注目箇所との距離が前記深度バッファに書き込まれた距離よりも小さい場合、かつ、前記注目箇所に前記ボリュームデータが存在する場合に、前記注目箇所に存在するボリュームデータを抽出し、
前記レンダリング部は、抽出されたボリュームデータと前記ポリゴンデータとに基づくレンダリングを行う、
請求項3に記載の情報処理装置。 - 前記探索部は、前記ラベルが前記内側データを探索することを示すことに基づいて、前記深度バッファに所定の距離を書き込む、
請求項4に記載の情報処理装置。 - 前記所定の距離は、前記視点と前記ボリュームデータとの距離の最大値以上の距離である、
請求項5に記載の情報処理装置。 - 前記探索部は、前記ラベルが前記内側データを探索しないことを示すことに基づいて、前記深度バッファに前記視点と前記ポリゴンデータとの距離を書き込む、
請求項4に記載の情報処理装置。 - 前記探索部は、抽出したボリュームデータの透過度の合計値が所定の値よりも小さい場合に、前記注目箇所を進める、
請求項4に記載の情報処理装置。 - 前記レンダリング部は、抽出されたボリュームデータの透過度に基づいて、抽出されたボリュームデータ同士を合成してボリュームデータ合成結果を取得する、
請求項4に記載の情報処理装置。 - 前記レンダリング部は、前記ラベルが前記内側データを探索することを示す場合に、前記ボリュームデータ合成結果を出力する、
請求項9に記載の情報処理装置。 - 前記レンダリング部は、前記ラベルが前記内側データを探索しないことを示す場合に、前記ボリュームデータ合成結果と前記ポリゴンデータのレンダリング結果との合成結果を出力する、
請求項9に記載の情報処理装置。 - 前記レンダリング部は、抽出されたボリュームデータの透過度の合計値と、前記ポリゴンデータの透過度とに基づいて、前記ポリゴンデータと前記ボリュームデータ合成結果とを合成する、
請求項11に記載の情報処理装置。 - 前記レンダリング部は、ユーザの視点と前記ポリゴンデータとの距離に基づいて、前記ボリュームデータのレンダリングを行うか否かを制御する、
請求項1に記載の情報処理装置。 - 前記レンダリング部は、前記ユーザの視点と前記ポリゴンデータとの距離が閾値よりも大きい場合に、前記ボリュームデータのレンダリングを行わずに、前記ポリゴンデータのレンダリングを行う、
請求項13に記載の情報処理装置。 - 前記探索部は、前記ユーザの視点と前記ポリゴンデータとの距離が閾値よりも大きい場合に、前記ボリュームデータの探索を行わない、
請求項13に記載の情報処理装置。 - 前記レンダリング部は、前記ユーザの視点と前記ポリゴンデータとの距離が閾値よりも小さい場合に、前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行う、
請求項13に記載の情報処理装置。 - 前記探索部は、前記ユーザの視点と前記ポリゴンデータとの距離が閾値よりも小さい場合に、前記ラベルに基づいて前記ボリュームデータの探索を行う、
請求項13に記載の情報処理装置。 - 前記レンダリング部は、前記ポリゴンデータと前記ボリュームデータとの間において原点位置およびスケールの少なくともいずれか一方を一致させる、
請求項1に記載の情報処理装置。 - ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得ることと、
プロセッサが、前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うことと、
を備える、情報処理方法。 - コンピュータを、
ボリュームデータのうちポリゴンデータに内包される位置に存在する内側データを探索するかを示すラベルに基づいて、前記ボリュームデータの探索を行って探索結果を得る探索部と、
前記探索結果に基づいて前記ポリゴンデータと前記ボリュームデータとに基づくレンダリングを行うレンダリング部と、
を備える情報処理装置として機能させるプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021130706 | 2021-08-10 | ||
JP2021-130706 | 2021-08-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023017623A1 true WO2023017623A1 (ja) | 2023-02-16 |
Family
ID=85199697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/006403 WO2023017623A1 (ja) | 2021-08-10 | 2022-02-17 | 情報処理装置、情報処理方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2023017623A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003044869A (ja) * | 2001-05-24 | 2003-02-14 | Mitsubishi Electric Corp | ボリュームポリゴン統合表示装置 |
JP2012239576A (ja) * | 2011-05-18 | 2012-12-10 | Hitachi Aloka Medical Ltd | 超音波診断装置 |
-
2022
- 2022-02-17 WO PCT/JP2022/006403 patent/WO2023017623A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003044869A (ja) * | 2001-05-24 | 2003-02-14 | Mitsubishi Electric Corp | ボリュームポリゴン統合表示装置 |
JP2012239576A (ja) * | 2011-05-18 | 2012-12-10 | Hitachi Aloka Medical Ltd | 超音波診断装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11645801B2 (en) | Method for synthesizing figure of virtual object, electronic device, and storage medium | |
CA3054619C (en) | Mixed reality system with virtual content warping and method of generating virtual content using same | |
JP7337104B2 (ja) | 拡張現実によるモデル動画多平面インタラクション方法、装置、デバイス及び記憶媒体 | |
JP7008733B2 (ja) | 挿入される画像コンテンツについての影生成 | |
CN115699114B (zh) | 用于分析的图像增广的方法和装置 | |
US11170577B2 (en) | Generating and modifying representations of objects in an augmented-reality or virtual-reality scene | |
US20190026935A1 (en) | Method and system for providing virtual reality experience based on ultrasound data | |
Macedo et al. | Occlusion handling in augmented reality: past, present and future | |
JP7145241B2 (ja) | 汎用処理ユニットからハードウェアアクセラレータユニットに画像ベースの追跡オペレーションをオフローディングするためのシステム及び方法 | |
US11748913B2 (en) | Modeling objects from monocular camera outputs | |
US8004522B1 (en) | Using coverage information in computer graphics | |
WO2022143367A1 (zh) | 一种图像渲染方法及其相关设备 | |
JP7387001B2 (ja) | 画像合成方法、装置、およびストレージ媒体 | |
US20130315471A1 (en) | Concave surface modeling in image-based visual hull | |
WO2023017623A1 (ja) | 情報処理装置、情報処理方法およびプログラム | |
US11715272B2 (en) | 3D reconstruction of a moving object | |
US20240257440A1 (en) | Information processing apparatus, information processing method, and program | |
US11348320B2 (en) | Object identification utilizing paired electronic devices | |
CN115661408A (zh) | 在人工现实环境中生成和修改手的表示 | |
JP5865092B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
CN110827411A (zh) | 自适应环境的增强现实模型显示方法、装置、设备及存储介质 | |
US20240015263A1 (en) | Methods and apparatus to provide remote telepresence communication | |
EP4386682A1 (en) | Image rendering method and related device thereof | |
WO2021201638A1 (en) | Electronic device and method for object identification utilizing paired electronic device | |
Leão et al. | Geometric Modifications Applied To Real Elements In Augmented Reality |
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: 22855689 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18293780 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |