RENDERING BASED GENERATION OF OCCLUSION CULLING MODELS
20170358127 · 2017-12-14
Inventors
Cpc classification
G06T17/10
PHYSICS
G06T17/20
PHYSICS
International classification
Abstract
A method and image processing apparatus for creating simplified representations of an existing virtual 3D model for use in occlusion culling. The existing virtual 3D model is received and a visual hull construction is performed on the existing virtual 3D model using an approximate voxel volume consisting of a plurality of voxels, the voxel volume fully encloses the existing virtual 3D model, and a set of projections from a plurality of viewing angles to provide a visual hull of the existing 3D model. The volumetric size of the visual hull of the existing 3D model is increased to envelop the existing virtual 3D model to provide the visual hull as an occludee model, and the volumetric size of the visual hull of the existing 3D model is decreased to be enveloped by the existing virtual 3D model to provide the visual hull as an occluder model. The occludee model and the occluder model are used during runtime in a 3D virtual environment for occlusion culling.
The present invention provides simplified representations for occlusion culling in a simple and computationally cost effective manner.
Claims
1. A method for creating simplified representations of an existing virtual 3D model for use in occlusion culling, said method comprising the steps of: receiving said existing virtual 3D model; performing visual hull construction on said existing virtual 3D model using an approximate voxel volume consisting of a plurality of voxels, said voxel volume fully enclosing said existing virtual 3D model and a set of projections from a plurality of viewing angles to provide a visual hull of said existing 3D model; increasing the volumetric size of said visual hull of said existing 3D model to envelop said existing virtual 3D model to provide said visual hull as an occludee model; decreasing the volumetric size of said visual hull of said existing 30 model to be enveloped by said existing virtual 3D model to provide said visual hull as an occluder model; and using said occludee model and said occluder model during runtime in a 3D virtual environment for occlusion culling.
2. The method according to claim 1, wherein increasing the volumetric size of said visual hull comprises adding at least one outer layer of voxels to said visual hull to provide said occludee model, and wherein decreasing the volumetric size comprises removing at least one outer layer of voxels from said visual hull to provide said occluder model.
3. The method according to claim 2, further comprising an additional step of adding or removing a limited layer of voxels to or from said visual hull, said limited layer being limited to predetermined portions of said visual hull.
4. The method according to claim 1, further comprising a step of converting said visual hull into a polygonal mesh representation prior to said steps of increasing and decreasing the volumetric size.
5. The method according to claim 4, wherein increasing and decreasing the size comprises resizing the polygon mesh representation of the visual hull.
6. A method for creating simplified representations of an existing virtual 3D model for use in occlusion culling, said method comprising the steps of: receiving said existing virtual 3D model; performing visual hull construction on said existing virtual 3D model, said visual hull construction comprising: providing an approximate voxel volume consisting of a plurality of voxels, said voxel volume fully enclosing said existing virtual 3D model; providing a first set of projections of said existing virtual 3D model from a plurality of viewing angles; providing a second set of projections of said existing virtual 3D model from said plurality of viewing angles; adding at least one layer of pixels to the outer border of each projection in said first set of projections; removing at least one layer of pixels from the outer border of each projection in said second set of projections; using said first set of projections and said approximate voxel volume to provide a first visual hull of said existing 3D model as an occludee model; using said second set of projections and said approximate voxel volume to provide a second visual hull of said existing 3D model as an occluder model; and using said occludee model and said occluder model during runtime in a virtual environment for occlusion culling.
7. The method according to claim 6, wherein said plurality of viewing angles are uniformly spaced apart by a predetermined repetition distance around the existing virtual 3D model.
8. The method according to claim 7, wherein at least one opening of said existing virtual 3D model defines an angular range in which a viewing angle results in a view through said at least one opening, and wherein the predetermined repetition distance of the plurality of viewing angles is selected to provide at least one viewing angle within said angular range.
9. The method according to claim 8, wherein the size of said voxels in said voxel volume during said visual hull construction is configured such that said view through said at least one opening corresponds to at least two voxels.
10. The method according to claim 6, wherein the resolution of the rendering of the existing 3D model during said visual hull construction is configured such that a pixel of said rendering corresponds to at least one voxel.
11. The method according to claim 6, wherein said occludee model and said occluder model is also used for shadow rendering during runtime in said 3D virtual environment.
12. The method according to claim 6, further comprising a step of converting said occludee model and said occluder model into a polygonal mesh representation.
13. An image processing system for creating simplified representations of an existing virtual 3D model for use in occlusion culling, said image processing system comprising: means to receive said existing virtual 3D model; means to perform a visual hull construction on said existing virtual 3D model using an approximate voxel volume consisting of a plurality of voxels, said voxel volume fully enclosing said existing virtual 3D model and a projection from a plurality of viewing angles to provide a visual hull of said existing 3D model; means to increase the volumetric size of said visual hull of said existing 3D model to envelop said existing virtual 3D model to provide said visual hull as an occludee model; means to decrease the volumetric size of said visual hull of said existing 3D model to be enveloped by said existing virtual 3D model to provide said visual hull as an occluder model; and means to perform occlusion culling using said occludee model and said occluder model during runtime in a 3D virtual environment.
14. (canceled)
15. The image processing system according to claim 13, wherein at least one of said means are located on a remote computing device or a plurality of remote computing devices.
15. (canceled)
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0028] The various aspects of the invention, including its particular features and advantages, will be readily understood from the following detailed description and the accompanying drawings, in which:
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
DETAILED DESCRIPTION
[0035] The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which currently preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided for thoroughness and completeness, and fully convey the scope of the invention to the skilled addressee. Like reference characters refer to like elements throughout.
[0036] The process of connecting three-dimensional vertices to form a representation of a graphical image may be referred to as creating a polygon mesh.
[0037] The general concept of the present invention may typically be implemented in a image processing system 200, such as the conceptual image processing system shown in
[0038] However, as is shown in the conceptual illustration in
[0039] Further to reducing the hardware constrains on the user controlled computing device 202, it would according to the invention be possible to e.g. “on-demand” provide a user/customer with the functionality provided by means of the inventive concept. As an example, a user wanting to generate a simplified representation of an existing virtual 3D model for occlusion culling may, through a user interface shown on the computing device 202, access a computer implementation of the method running on the server 204. Alternatively, the computing device 202 may be provided with software for producing the original image (such as for example 3D Studio Max, Maya, etc.), where the software running on the computing device 202 is adapted to access/interact with (by means of e.g. an API and “on-demand”, as a subscription, as a fixed service, etc.) a computer implementation of the inventive concept running on the server 204.
[0040] Now referring to
[0041] In the next step S2 the 3D model 400 is subjected to a visual hull construction illustrated in
[0042] There are several factors which affect the accuracy of the visual hull 405. For example, the resolution of the 3D model 400 will determine how precisely the voxels can be removed during the visual hull construction. Likewise, the size of the voxels can also be set in order determine how precisely the voxels can be removed. Accordingly, the resolution of the rendering of the original 3D model 400 is usually set higher than the voxel size in order to provide a suitable basis for the visual hull 405. For example, the user can set the resolution, i.e. pixels provided by the rendering, such that a pixel will correspond to at least one voxel.
[0043] Further, the fidelity of the visual hull 405 to the 3D model 400 will depend on the number of viewing angles used to construct the visual hull 405. The visual hull 405 shown is constructed using only four viewing angles 401, 402, 403, 404 and is therefore not a precise match and differs in shape from the 3D model 400. By using more viewing angles a closer match and fidelity to the original model 400 may be achieved. Typically, on the order of hundreds of viewing angles can be used to provide a visual hull. Note that the viewing angles 401, 402, 403, 404 are spaced apart. During the visual hull construction the viewing angles 401, 402, 403, 404 can be spaced apart by e.g. a predetermined repetition distance around the 3D model 400. The repetition distance may be uniform in order to provide a non-biased view of the 3D model 400. It is also possible to provide more viewing angles from a specific side of the 3D model 400 to provide e.g. a view dependent visual hull.
[0044] In summary, the accuracy i.e. fidelity of the visual hull construction will depend on the number of viewing angles as well as the resolution of the rendering of the original 3D object 400, and the voxel size. The resolution and voxel size are interlinked and the skilled person realizes that each of them can be determined by the user, or automatically according to a criterions enabling a match between the two.
[0045] In the next step S3, the volumetric size of the visual hull 405 is increased to provide an occludee model 406, and decreased to provide an occluder model 407. The visual hull 405, the occludee model 406 illustrated by the dashed outline and the occluder model 407 illustrated by the dotted outline are shown in
[0046] Further, some portions of the visual hull 405 can be of larger importance than others, such as e.g. portions of the visual hull 405 which would be removed through removing an outer layer of voxels. Likewise, a particular portion of the visual hull 405 can be more or less sensitive to addition of a layer of voxels and can thereby be subjected to such an additional step. The specifying of such portions, or limited layers, of the visual hull 405 can be provided automatically by a calculating which portions are sensitive to removal or addition of voxels, applying a weighting mask, or manually by a user marking important portions of the existing 3D model 400 which should not be removed.
[0047] In the next step S4 illustrated in
[0048] The method can also further comprise a step of converting the occluder model 407 and occludee model 406 into polygonal mesh representation prior to the occlusion culling process. As an alternative (not shown) the visual hull 405 can also be converted into a polygonal mesh representation which is then resized, i.e. one instance resized larger and one instance resized smaller, and provided as an occludee model and a occluder model.
[0049]
[0050] In
[0051] The 3D model 501 shown in
[0052] Further, the size of the voxels in the voxel volume can be configured such that the view through the openings corresponds to at least two voxels. In other words, the size of the voxels is configured such that the width of the smallest opening corresponds to the width of at least two voxels.
[0053]
[0054] The next steps S63 and S64, comprises providing a first respectively a second set of projections of the existing virtual 3D model from a plurality of viewing angles. The projections should be interpreted as the silhouettes, i.e. the 2D projections of the existing virtual 3D model which together with the viewing angles can provide a silhouette cone. The first and second set thus comprises an identical set of projections from the same viewing angles during the steps S63 and S64.
[0055] Then, in the next step S65, at least one layer of pixels is added to the outer border of each projection in the first set of projections. The size of each projection in the first set of projections is thus increased by at least one outer layer of pixels.
[0056] Similarly, in the next step S66, at least one layer of pixels is removed from the outer border of each projection in the second set of projections. The size of each projection in the second set of projections is thus decreased by at least one outer layer of pixels.
[0057] In the next step S67, the first set of projections with an increased size due to the addition of at least one layer of pixels to the outer border and the approximate voxel volume are used to provide a first visual hull of the existing 3D model as an occludee model. The increased size of the projections in the first set of projections will provide larger silhouette cones, which results in less voxels being removed from the plurality of voxels in the approximate voxel volume. Thus, the resulting first visual hull is guaranteed to be larger than the existing virtual 3D model.
[0058] In the next step S68, the second set of projections with a decreased size due to the removal of at least one layer of pixels from the outer border and the approximate voxel volume are used to provide a second visual hull of said existing 3D model as an occluder model. The decreased size of the projections in the second set of projections will provide smaller silhouette cones, which results in more voxels being removed from the plurality of voxels in the approximate voxel volume. Thus, the resulting second visual hull is smaller than the existing virtual 3D model.
[0059] Finally, in step S69, the occludee model and the occluder model are used during runtime in a 3D virtual environment for occlusion culling.
[0060] Hence, the resizing in the alternative solution takes place prior to forming the visual hulls using the first and second set of projections and the viewing angles to form the occluder and occludee model.
[0061] The present disclosure contemplates methods, systems and program products on any machine-readable media for accomplishing various operations. The embodiments of the present disclosure may be implemented using existing computer processors, or by a special purpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwired system. Embodiments within the scope of the present disclosure include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a machine, the machine properly views the connection as a machine-readable medium. Thus, any such connection is properly termed a machine-readable medium. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.
[0062] Although the figures may show a specific order of method steps, the order of the steps may differ from what is depicted. Also two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various connection steps, processing steps, comparison steps and decision steps. Additionally, even though the invention has been described with reference to specific exemplifying embodiments thereof, many different alterations, modifications and the like will become apparent for those skilled in the art. Variations to the disclosed embodiments can be understood and effected by the skilled addressee in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims. Furthermore, in the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality.