Image processing program, image processing system, image processing device, and image processing method
The image processing system addresses decal penetration in virtual spaces by using occluding objects and alpha textures to control decal projection and occlusion, ensuring flexible and detailed rendering in dynamic environments.
Patent Information
- Application Number
- JP2024011013
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-01-29
- Publication Date
- 2026-01-15
- Estimated Expiration
- 2044-01-29
Smart Images

Figure 0007799722000001 
Figure 0007799722000002 
Figure 0007799722000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to an image processing program, an image processing system, an image processing device, and an image processing method for performing rendering processing in a virtual space. [Background technology]
[0002] Conventionally, there is a decal process in which a design, pattern, or the like is projected onto the surface of an object in a virtual space and attached to it (see, for example, Non-Patent Document 1). [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] "Unreal Engine Documentation", 1.1 - Decal Basics, [online], Epic Games Inc., [Retrieved December 12, 2023], Internet<URL:https: / / docs.unrealengine.com / 4.27 / ja / Resources / ContentExamples / Decals / 1_1 / > Summary of the Invention [Problem to be solved by the invention]
[0004] However, the above decal processing has a problem in that the decal penetrates the object onto which it is projected and is projected to a position on the back side of the object along the direction in which the decal is projected.
[0005] Therefore, an object of the present invention is to provide an image processing program, an image processing system, an image processing device, and an image processing method that can prevent a decal from being projected through a location in a virtual space where decal penetration would be a problem. [Means for solving the problem]
[0006] In order to achieve the above object, the present invention may employ the following configurations (1) to (6), for example.
[0007] (1) One example configuration of the image processing program of the present invention causes a computer of an information processing device to define a decal in a virtual space, with a projection position and projection direction set, place an occluding object set for that decal, and in the drawing process of the virtual space, draw the area of the surface onto which the decal is to be projected, according to the projection position and projection direction, that is occluded by the occluding object along the projection direction, without projecting the decal or with a reduced degree of decal projection, and project the decal to draw the area that is not occluded by the occluding object along the projection direction.
[0008] According to the above configuration (1), by placing an occluding object in a location where the decal may penetrate and cause a problem, it is possible to prevent the decal from penetrating and being drawn in that location.
[0009] (2) In the above configuration (1), the computer may further dynamically change at least one of the projection position and projection direction of the decal within the virtual space.
[0010] According to the configuration (2) above, compared to the conventional masking process in which a decal is masked onto a mesh to which the decal is not applied, it is possible to flexibly set the shielding of the decal in response to dynamic changes in at least one of the projection position and projection direction of the decal in the virtual space, and this is suitable for situations in which the decal moves.
[0011] (3) In the configuration (1) or (2) above, the computer may further dynamically change at least one of the position and the shape of the occluding object in the virtual space.
[0012] According to the configuration (3) above, compared to the conventional masking process of masking a mesh to which a decal is not applied, it is possible to flexibly set the occlusion of the decal in response to dynamic changes in at least one of the position and shape of the occlusion range in the virtual space, and this is suitable for situations in which the occlusion range moves.
[0013] (4) In any one of the above configurations (1) to (3), the occluding object may be an object that is not a target for rendering.
[0014] According to the above configuration (4), it is possible to control the occlusion of the decal using an object that does not affect the drawing.
[0015] (5) In any one of the above configurations (1) to (4), the occluding object may be a planar object.
[0016] According to the above configuration (5), it is possible to easily control the occlusion of the decal using a planar object.
[0017] (6) In the configuration (5) above, a texture including an alpha value may be set for the occluding object, and the computer may further project and draw a decal in the virtual space rendering process at a projection level according to the alpha value of the texture corresponding to a position on the occluding object that is occluded during projection.
[0018] According to the configuration (6) above, by projecting the decal with a projection degree according to the alpha value, it becomes possible to make detailed drawing settings, such as smoothly drawing the decal projected near the boundary of the occlusion range, which is particularly suitable when expressing light and shadow with the decal.
[0019] The present invention may also be embodied in the form of an image processing system, an image processing device, and an image processing method. [Effects of the Invention]
[0020] According to the present invention, it is possible to prevent the decal from penetrating and drawing a portion where the decal may penetrate and cause a problem. [Brief explanation of the drawings]
[0021] [Figure 1] FIG. 1 shows an example of a state in which the left controller 3 and the right controller 4 are attached to the main unit 2. [Figure 2] FIG. 10 shows an example of a state in which the left controller 3 and the right controller 4 are detached from the main unit 2. [Figure 3] Six-sided views showing an example of the main unit 2 [Figure 4] Six-sided diagram showing an example of the left controller 3 [Figure 5] Six-sided diagram showing an example of the right controller 4 [Figure 6] A block diagram showing an example of the internal configuration of the main unit 2. [Figure 7] A block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. [Figure 8] A diagram showing an example of a game image rendered by projecting decals onto objects OBJ1 and OBJ2 in a virtual space. [Figure 9] FIG. 10 is a diagram showing an example of an occlusion object used in a rendering process for projecting a decal. [Figure 10] FIG. 10 is a diagram showing an example of an occlusion object used in a rendering process for projecting a decal. [Figure 11] FIG. 10 is a diagram showing an example of an occlusion object used in a rendering process for projecting a decal. [Figure 12] FIG. 10 is a diagram showing an example of projecting a decal in an oblique projection direction. [Figure 13] FIG. 10 is a diagram showing an example of a data area set in the DRAM 85 of the main device 2. [Figure 14] A flowchart showing an example of game processing executed by the game system 1. [Figure 15]A subroutine showing an example of decal processing in step S126 of FIG. 14. DETAILED DESCRIPTION OF THE INVENTION
[0022] An image processing system according to an example of this embodiment will be described below. Game system 1, which is an example of the image processing system according to this embodiment, includes a main unit (information processing device; in this embodiment, it functions as a game device main unit) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are each detachable from the main unit 2. In other words, the game system 1 can be used as an integrated device by attaching the left controller 3 and the right controller 4 to the main unit 2. The game system 1 can also be used with the main unit 2, the left controller 3, and the right controller 4 separate from each other (see FIG. 2). Below, the hardware configuration of game system 1 according to this embodiment will be described, followed by a description of the control of game system 1 according to this embodiment.
[0023] FIG. 1 is a diagram showing an example of a state in which a left controller 3 and a right controller 4 are attached to a main unit 2. As shown in FIG. 1, the left controller 3 and the right controller 4 are each attached to and integrated with the main unit 2. The main unit 2 is a device that executes various processes (e.g., game processes) in the game system 1. The main unit 2 is equipped with a display 12. The left controller 3 and the right controller 4 are devices that have operation units that allow the user to perform inputs.
[0024] Fig. 2 is a diagram showing an example of the state in which the left controller 3 and the right controller 4 are detached from the main unit 2. As shown in Figs. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main unit 2. Note that, below, the left controller 3 and the right controller 4 may be collectively referred to as "controllers."
[0025] Fig. 3 is a six-sided view showing an example of the main unit 2. As shown in Fig. 3, the main unit 2 includes a substantially plate-shaped housing 11. In this embodiment, the main surface of the housing 11 (in other words, the front surface, i.e., the surface on which the display 12 is provided) is generally rectangular.
[0026] The shape and size of the housing 11 are arbitrary. As an example, the housing 11 may be of a portable size. Furthermore, the main unit 2 alone or an integrated device in which the left controller 3 and right controller 4 are attached to the main unit 2 may be a portable device. Furthermore, the main unit 2 or the integrated device may be a handheld device. Furthermore, the main unit 2 or the integrated device may be a portable device.
[0027] 3, the main unit 2 includes a display 12 provided on the main surface of the housing 11. The display 12 displays images generated by the main unit 2. In this embodiment, the display 12 is a liquid crystal display (LCD). However, the display 12 may be any type of display device.
[0028] The main device 2 also includes a touch panel 13 on the screen of the display 12. In this embodiment, the touch panel 13 is of a type that allows multi-touch input (for example, a capacitance type). However, the touch panel 13 may be of any type, and may be of a type that allows single-touch input (for example, a resistive type).
[0029] The main unit 2 is provided with a speaker (i.e., speaker 88 shown in FIG. 6) inside the housing 11. As shown in FIG. 3, speaker holes 11a and 11b are formed on the main surface of the housing 11. The output sound of the speaker 88 is output from these speaker holes 11a and 11b, respectively.
[0030] The main unit 2 also has a left terminal 17, which is a terminal for the main unit 2 to communicate with the left controller 3 via a wired connection, and a right terminal 21, which is a terminal for the main unit 2 to communicate with the right controller 4 via a wired connection.
[0031] As shown in FIG. 3, the main unit 2 includes a slot 23. The slot 23 is provided on the upper side of the housing 11. The slot 23 has a shape that allows a predetermined type of storage medium to be inserted therein. The predetermined type of storage medium is, for example, a storage medium (e.g., a dedicated memory card) dedicated to the game system 1 and the same type of information processing device. The predetermined type of storage medium is used, for example, to store data used by the main unit 2 (e.g., application save data, etc.) and / or programs executed by the main unit 2 (e.g., application programs, etc.). The main unit 2 also includes a power button 28.
[0032] The main unit 2 has a lower terminal 27. The lower terminal 27 is a terminal through which the main unit 2 communicates with the cradle. In this embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the all-in-one device or the main unit 2 alone is placed on the cradle, the game system 1 can display images generated and output by the main unit 2 on a stationary monitor. In this embodiment, the cradle also has the function of charging the all-in-one device or the main unit 2 alone that is placed on it. The cradle also has the function of a hub device (specifically, a USB hub).
[0033] FIG. 4 is a six-sided view showing an example of the left controller 3. As shown in FIG. 4, the left controller 3 includes a housing 31. In this embodiment, the housing 31 has a vertically long shape, that is, a shape that is long in the up-down direction (i.e., the y-axis direction shown in FIGS. 1 and 4). The left controller 3 can also be held in a vertically long orientation when detached from the main unit 2. The housing 31 has a shape and size that allows it to be held in one hand, particularly the left hand, when held in a vertically long orientation. The left controller 3 can also be held in a horizontally long orientation. When the left controller 3 is held in a horizontally long orientation, it may be held with both hands.
[0034] The left controller 3 includes an analog stick 32. As shown in FIG. 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a direction input unit that can input directions. By tilting the analog stick 32, the user can input a direction corresponding to the tilt direction (and input a magnitude corresponding to the tilt angle). Note that instead of an analog stick, the left controller 3 may be equipped with a cross key or a slide stick that can perform slide inputs as a direction input unit. In this embodiment, input can be made by pressing the analog stick 32.
[0035] The left controller 3 is equipped with various operation buttons. The left controller 3 is equipped with four operation buttons 33 to 36 (specifically, a right button 33, a down button 34, an up button 35, and a left button 36) on the main surface of the housing 31. The left controller 3 also is equipped with a record button 37 and a - (minus) button 47. The left controller 3 is equipped with a first L button 38 and a ZL button 39 on the upper left of the side of the housing 31. The left controller 3 is also equipped with a second L button 43 and a second R button 44 on the side of the housing 31 that is attached to the main unit 2. These operation buttons are used to issue instructions according to various programs (for example, OS programs and application programs) executed on the main unit 2.
[0036] The left controller 3 also includes a terminal 42 for wired communication between the left controller 3 and the main unit 2.
[0037] FIG. 5 is a six-sided view showing an example of the right controller 4. As shown in FIG. 5, the right controller 4 includes a housing 51. In this embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the up-down direction. The right controller 4 can also be held in a vertically long orientation when detached from the main unit 2. The housing 51 has a shape and size that allows it to be held in one hand, particularly the right hand, when held in a vertically long orientation. The right controller 4 can also be held in a horizontally long orientation. When the right controller 4 is held in a horizontally long orientation, it may be held with both hands.
[0038] Like the left controller 3, the right controller 4 is equipped with an analog stick 52 as a directional input unit. In this embodiment, the analog stick 52 has the same configuration as the analog stick 32 of the left controller 3. The right controller 4 may also be equipped with a cross key or a slide stick that allows slide input, instead of an analog stick. Like the left controller 3, the right controller 4 is equipped with four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. The right controller 4 is also equipped with a + (plus) button 57 and a home button 58. The right controller 4 is also equipped with a first R button 60 and a ZR button 61 on the upper right side of the housing 51. Like the left controller 3, the right controller 4 is also equipped with a second L button 65 and a second R button 66.
[0039] The right controller 4 also includes a terminal 64 for wired communication between the right controller 4 and the main unit 2.
[0040] Fig. 6 is a block diagram showing an example of the internal configuration of main unit 2. In addition to the configuration shown in Fig. 3, main unit 2 includes components 81-91, 97, and 98 shown in Fig. 6. Some of these components 81-91, 97, and 98 may be mounted on an electronic circuit board as electronic components and housed in housing 11.
[0041] The main unit 2 includes a processor 81. The processor 81 is an information processing unit that executes various types of information processing executed in the main unit 2, and may be composed of, for example, only a CPU (Central Processing Unit), or may be composed of an SoC (System-on-a-chip) that includes multiple functions such as a CPU function and a GPU (Graphics Processing Unit) function. The processor 81 executes various types of information processing by executing an information processing program (for example, a game program) stored in a storage unit (specifically, an internal storage medium such as flash memory 84, or an external storage medium inserted into slot 23, etc.).
[0042] The main device 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85 as examples of internal storage media built into the main device 2. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is a memory used primarily to store various types of data (which may be programs) saved in the main device 2. The DRAM 85 is a memory used to temporarily store various types of data used in information processing.
[0043] The main device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23, and reads and writes data from and to a predetermined type of storage medium (e.g., a dedicated memory card) inserted into the slot 23 in accordance with instructions from the processor 81.
[0044] The processor 81 reads and writes data from and to the flash memory 84, DRAM 85, and the above-mentioned storage media as appropriate, to execute the above-mentioned information processing.
[0045] The main unit 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates with external devices via a network (specifically, wireless communication). In this embodiment, the network communication unit 82 connects to a wireless LAN and communicates with external devices using a method conforming to the Wi-Fi standard as a first communication mode. The network communication unit 82 also performs wireless communication with other main units 2 of the same type using a predetermined communication method (e.g., communication using a proprietary protocol or infrared communication) as a second communication mode. Note that wireless communication using the second communication mode enables wireless communication with other main units 2 located within a closed local network area, and realizes a function that enables so-called "local communication," in which data is transmitted and received by direct communication between multiple main units 2.
[0046] The main unit 2 is equipped with a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or right controller 4. Any communication method may be used between the main unit 2 and the left controller 3 and right controller 4, but in this embodiment, the controller communication unit 83 performs communication with the left controller 3 and right controller 4 in accordance with the Bluetooth (registered trademark) standard.
[0047] The processor 81 is connected to the left terminal 17, right terminal 21, and lower terminal 27. When performing wired communication with the left controller 3, the processor 81 transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. When performing wired communication with the right controller 4, the processor 81 transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. When performing wired communication with the right controller 4, the processor 81 transmits data to the cradle via the lower terminal 27. As described above, in this embodiment, the main unit 2 can perform both wired and wireless communication with the left controller 3 and the right controller 4. When an integrated device in which the left controller 3 and the right controller 4 are attached to the main unit 2 or the main unit 2 alone is attached to the cradle, the main unit 2 can output data (e.g., image data and audio data) to a stationary monitor or the like via the cradle.
[0048] Here, the main unit 2 can communicate simultaneously (in other words, in parallel) with multiple left controllers 3. The main unit 2 can also communicate simultaneously (in other words, in parallel) with multiple right controllers 4. Therefore, multiple users can simultaneously input to the main unit 2 using their own sets of left controllers 3 and right controllers 4. For example, a first user can input to the main unit 2 using a first set of left controllers 3 and right controllers 4, while a second user can simultaneously input to the main unit 2 using a second set of left controllers 3 and right controllers 4.
[0049] The display 12 is also connected to the processor 81. The processor 81 displays on the display 12 an image generated (for example, by executing the above-described information processing) and / or an image acquired from the outside.
[0050] The main unit 2 includes a codec circuit 87 and speakers (specifically, a left speaker and a right speaker) 88. The codec circuit 87 is connected to the speakers 88 and the audio input / output terminal 25, and is also connected to the processor 81. The codec circuit 87 is a circuit that controls the input and output of audio data to and from the speakers 88 and the audio input / output terminal 25.
[0051] The main device 2 includes a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Although not shown, the power control unit 97 is also connected to each part of the main device 2 (specifically, each part that receives power from the battery 98, the left terminal 17, and the right terminal 21). The power control unit 97 controls the power supply from the battery 98 to each of the above parts based on instructions from the processor 81.
[0052] Furthermore, battery 98 is connected to lower terminal 27. When an external charging device (e.g., a cradle) is connected to lower terminal 27 and power is supplied to main device 2 via lower terminal 27, battery 98 is charged with the supplied power.
[0053] Figure 7 is a block diagram showing an example of the internal configuration of the main unit 2, left controller 3, and right controller 4. Note that details of the internal configuration of the main unit 2 are omitted in Figure 7 because they are shown in Figure 6.
[0054] The left controller 3 is equipped with a communication control unit 101 that communicates with the main unit 2. As shown in FIG. 7 , the communication control unit 101 is connected to each component, including the terminal 42. In this embodiment, the communication control unit 101 can communicate with the main unit 2 both via wired communication via the terminal 42 and via wireless communication without using the terminal 42. The communication control unit 101 controls the method of communication between the left controller 3 and the main unit 2. That is, when the left controller 3 is attached to the main unit 2, the communication control unit 101 communicates with the main unit 2 via the terminal 42. When the left controller 3 is detached from the main unit 2, the communication control unit 101 communicates wirelessly with the main unit 2 (specifically, with the controller communication unit 83). Wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.
[0055] The left controller 3 also includes a memory 102, such as a flash memory. The communication control unit 101 is configured, for example, by a microcomputer (also called a microprocessor), and executes firmware stored in the memory 102 to perform various processes.
[0056] The left controller 3 includes buttons 103 (specifically, buttons 33 to 39, 43, 44, and 47). The left controller 3 also includes an analog stick (referred to as "stick" in FIG. 7) 32. Each button 103 and analog stick 32 repeatedly outputs information related to operations performed on the button 103 and analog stick 32 to the communication control unit 101 at appropriate timing.
[0057] The communication control unit 101 acquires information related to the input (specifically, information related to the operation or the detection results from the sensor) from each input unit (specifically, each button 103 and analog stick 32). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing a predetermined process on the acquired information) to the main unit 2. The operation data is repeatedly transmitted once every predetermined time. The interval at which the information related to the input is transmitted to the main unit 2 may or may not be the same for each input unit.
[0058] By transmitting the above operation data to the main unit 2, the main unit 2 can obtain the input made to the left controller 3. In other words, the main unit 2 can determine the operation of each button 103 and analog stick 32 based on the operation data.
[0059] The left controller 3 is equipped with a power supply unit 108. In this embodiment, the power supply unit 108 has a battery and a power control circuit. Although not shown, the power control circuit is connected to the battery and to each part of the left controller 3 (specifically, each part that receives power from the battery).
[0060] As shown in FIG. 7, the right controller 4 is equipped with a communication control unit 111 that communicates with the main unit 2. The right controller 4 also has a memory 112 that is connected to the communication control unit 111. The communication control unit 111 is connected to each component, including the terminal 64. The communication control unit 111 and memory 112 have the same functions as the communication control unit 101 and memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main unit 2 both via wired communication via the terminal 64 and via wireless communication that does not use the terminal 64 (specifically, communication in accordance with the Bluetooth (registered trademark) standard), and controls the method of communication between the right controller 4 and the main unit 2.
[0061] The right controller 4 has input units similar to those of the left controller 3. Specifically, it has buttons 113 and an analog stick 52. These input units have the same functions as those of the left controller 3 and operate in the same manner.
[0062] The right controller 4 is equipped with a power supply unit 118. The power supply unit 118 has the same functions as the power supply unit 108 of the left controller 3 and operates in the same manner.
[0063] As described above, in the game system 1 of this embodiment, the left controller 3 and right controller 4 are detachable from the main unit 2. Furthermore, by attaching an all-in-one device in which the left controller 3 and right controller 4 are attached to the main unit 2 or the main unit 2 alone to a cradle, it is possible to output images (and sounds) to an external display device such as a stationary monitor. In the following explanation, the game system 1 will be described in a usage mode in which images are displayed on the display 12. Note that when using the game system 1 in a usage mode in which images are displayed on the display 12, it is also possible to use a game system 1 in which the left controller 3 and right controller 4 are fixed to the main unit 2 (for example, in a mode in which the main unit 2, left controller 3, and right controller 4 are integrated into a single housing).
[0064] Game play is performed using a virtual space displayed on the display 12 in response to operations such as the operation buttons and sticks of the left controller 3 and / or right controller 4 of the game system 1, or touch operations on the touch panel 13 of the main unit 2. In this embodiment, as an example, a rendering process of the virtual space is performed based on game processing in response to user operations using the operation buttons and sticks.
[0065] An example of image processing for rendering a virtual space will be outlined below with reference to Fig. 8. In the image processing in this embodiment, decal processing is used, in which a decal is projected onto a projection target.
[0066] In FIG. 8, an image is displayed on the display 12 in which flat objects OBJ1 and OBJ2 are arranged one above the other in a virtual space. Object OBJ1 forms the lower horizontal plane in the virtual space. Object OBJ2 forms the upper horizontal plane in the virtual space, and is arranged above the top surface of object OBJ1 at a predetermined distance. Object OBJ2 is arranged so as to overlap part of object OBJ1 in the vertical direction. That is, object OBJ1 has a portion above which object OBJ2 is covered, and a portion above which object OBJ2 is not arranged and is open (an open atrium portion).
[0067] In such a rendering process in a virtual space, a decal is projected and rendered in the virtual space. In this embodiment, in order to attach a picture or pattern to a portion of the surface of object OBJ1 and object OBJ2, a decal representing the picture or pattern is defined and projected into the virtual space, thereby rendering the picture or pattern on the surface (on the texture) of object OBJ1 and object OBJ2. For example, in this embodiment, in the rendering process in the virtual space, a decal is applied that is dynamically projected into the virtual space, and light, shadow, and the like on the surface of the object are represented by the decal. In another embodiment, signs (such as the aim of a gun, a mark specifying the destination of a character, and a display indicating the range of effect of an attack) as a game UI are represented by the decal.
[0068] In the example image of virtual space shown in FIG. 8, a light illuminating a portion of the dimly lit virtual space is represented by a decal. For example, decals are defined above objects OBJ1 and OBJ2, with the projection direction being the vertical direction of the virtual space. In the example shown in FIG. 8, the projection position of the decal is set so that a portion of the decal is projected onto object OBJ2, and the remaining portion of the decal is projected onto object OBJ1 without being projected onto object OBJ2. As a result, decal D2, which is a portion of the decal, is projected onto the top surface of object OBJ2 in the upper row, and decal D1, which is the remaining portion of the decal, is projected onto the top surface of object OBJ1 in the lower row.
[0069] Here, a decal is drawn on an object surface facing the projection direction, and as long as it is positioned within the projection range of the decal (within a projection box, which will be described later), it has the property of being drawn through other objects even if the object surface is obstructed by other objects due to a multi-layered structure. For example, in the example of decals being projected into the virtual space shown in Figure 8, decal D2 projected on the top surface of object OBJ2 has the property of being projected and drawn on the top surface of object OBJ1, penetrating object OBJ2 along the decal's projection direction.
[0070] In this embodiment, a shading object set for the decal is placed between objects OBJ1 and OBJ2 (e.g., within the space between them), thereby preventing decal D2 from being projected onto object OBJ1. In this embodiment, the shading object is an object that is not a rendering target. The shading object has a range that shading the corresponding decal, a range that does not shading the corresponding decal, and a range that reduces the projection level of the corresponding decal. Furthermore, depending on the projection position and projection direction of the decal, the decal is not projected onto a range of the top surface of object OBJ1 that is shading the decal in the shading object. Therefore, in this embodiment, by placing a range of the shading object that shading the decal in the range where decal D2 penetrates object OBJ2, decal D2 is not projected onto the top surface of object OBJ1, even though the object is a projection target, as shown in FIG. 8 , but decal D1, which is part of the defined decal, is projected and rendered.
[0071] Next, an example of an occluding object used in the rendering process of the virtual space illustrated in FIG. 8 will be described with reference to FIGS.
[0072] As shown in FIG. 9 , in this embodiment, a decal is defined in a virtual space, with a projection direction and a projection position set. Then, a projection box formed by extending the defined decal in the projection direction by a predetermined projection distance is set in the virtual space. For example, in this embodiment, an example is used in which the decal is rendered by parallel projection in the virtual space. Therefore, the projection box has a shape such as a cylinder, elliptical cylinder, or rectangular prism formed by extending the defined decal in parallel by the projection distance. The projection box is a range used to determine whether the decal for which the projection box is set is to be applied. If a pixel included in a surface facing the projection direction is within the projection box, the pixel is determined to be a projection target pixel onto which the decal is to be projected. For example, the decal illustrated in FIG. 9 has a projection position above objects OBJ1 and OBJ2 in the virtual space, and its projection direction is set vertically. Of the top surfaces of objects OBJ1 and OBJ2, which are surfaces facing the projection direction, the upper surface portions including pixels within the projection box are the surfaces onto which the decal is to be projected.
[0073] As shown in FIGS. 9 and 10 , the occluding object corresponding to the decal defined in this manner is, for example, a planar object. The occluding object blocks the projection of at least a portion of the decal (in this embodiment, decal D2) and is arranged on the front side of the surface (top surface) of object OBJ1, in the projection direction of the decal, onto which the remaining decal (in this embodiment, decal D1) is to be projected and drawn. The occluding object is arranged on the back side of the surface (top surface) of object OBJ2, in the projection direction of the decal, onto which the remaining decal is to be drawn without blocking the projection of the decal. In other words, the occluding object is arranged between the surfaces (top surfaces, in this embodiment) of objects OB1 and OBJ2 onto which the decals are to be projected. More preferably, the occluding object is arranged on the side of object OBJ2 in the space between objects OBJ1 and OBJ2, and is arranged horizontally along the back surface (bottom surface) of object OBJ2 in the projection direction (typically, in contact with the bottom surface of object OBJ2 without any gap). As a result, even if another object is placed in the space where object OBJ1 and object OBJ2 are separated, it is possible to apply the above-mentioned occlusion of the decal projection to the other object and draw it. Here, the "front side" and "rear side" in this embodiment refer to the side of the object onto which the decal is to be projected, along the projection direction of the decal, from which the projection of the decal starts (the side visible from the decal start position), as the "front side," and the opposite side of the object along the projection direction (the side not visible from the decal start position), as the "rear side."
[0074] As shown in FIG. 11 , a texture including an α value indicated by a numerical value between 0 and 1 is set to the occluding object. Here, the α value is a value indicating the projection degree of the decal to be projected, and a smaller value indicates a greater degree of decal projection. In this embodiment, a texture with an α value of 1 is set to a range of the occluding object that is occluded without a decal being projected (shown by a white area in FIG. 11 ). A texture with an α value of 0 is set to a range of the occluding object that is not occluded by a decal being projected (shown by a black area in FIG. 11 ). A texture with an α value of 0<α value<1 is set to an intermediate range of the occluding object where a decal is projected with a lower projection degree (shown by a gray area in FIG. 11 ). For example, when setting an occluding object that occludes the decal D2 described above, a texture with an α value of 1 is set to a range of the occluding object that overlaps with object OBJ2, and a texture with an α value of 0 is set to a range of the occluding object that does not overlap with object OBJ2. Then, the texture of the intermediate range is set in the range of the occluding object that overlaps with the vicinity of the edge of object OBJ2. That is, the intermediate range is set near the boundary between the range where the α value = 1, in which the decal is occluded, and the range where the α value = 0, in which the decal is not occluded. Note that, in the intermediate range, the α value may be set to gradually increase from 0 to 1 as the range where the decal is occluded approaches. This makes it possible to render the decal with fine settings, such as smoothly depicting the rendering state of the decal at the boundary between the portion where the decal is projected and the portion where the decal is occluded and not projected. As an example, this is particularly suitable for representing light and shadow with decals.
[0075] In this embodiment, a post-process is applied in which a decal is projected using the occluding object for rendering. In this embodiment, for each pixel rendered in virtual space, whether it is within the decal's application range is determined using the projection box. Then, for each pixel within the projection box, the intersection of the projection direction vector and the occluding object corresponding to the applied decal is calculated, alpha value information of the texture at the intersection is extracted, and the decal is projected onto the pixel at a projection degree corresponding to the alpha value information. For example, if the alpha value of the intersection is 0, i.e., the decal is an occluding object within a range that does not occlude the decal, a decal with an application rate of 100% is applied and projected onto the target pixel. On the other hand, if the alpha value of the intersection is 1, i.e., the decal is an occluding object within a range that occludes the decal, no decal is projected onto the target pixel. On the other hand, if the alpha value of the intersection is 0<alpha value<1, i.e., the decal is an occluding object within the intermediate range, a decal with an application rate corresponding to the alpha value of the intersection is applied and projected onto the target pixel.
[0076] The rendering process of projecting a decal using the occluding object does not have to be performed by post-processing. For example, in another embodiment, the process of determining the decal application rate described above may be performed when rendering a virtual space, and the virtual space onto which a decal based on the application rate is projected may be rendered for each pixel.
[0077] The decal processing in this embodiment is suitable for cases where a decal is dynamically projected in a virtual space or a dynamic object is used as a projection target. For example, a decal defined in a virtual space may be dynamically changed in the virtual space based on game processing. As an example, the projection position and / or projection direction of the decal may be dynamically changed based on the game processing. As illustrated in FIG. 12, by dynamically changing the projection position and projection direction of the decal, the projection direction may be changed obliquely with respect to the vertical direction of the virtual space. In this case, the above-mentioned occluding object is maintained, i.e., the occluding object to which the texture described with reference to FIG. 11 is set is maintained in the position described with reference to FIGS. 9 to 11.
[0078] In this way, when the decal projection direction changes obliquely, whether each pixel rendered in the virtual space is within the decal's application range is determined using a projection box corresponding to the change in the oblique projection direction. That is, as illustrated in FIG. 12 , a projection box formed by extending the decal defined in the oblique projection direction by a predetermined projection distance is set in the virtual space. Then, similar to the process of determining the decal application rate described above, for each pixel within the projection box, a point of intersection between the vector of the oblique projection direction and the occluding object whose position and orientation are maintained is calculated, alpha value information of the texture at the intersection is extracted, and the decal is projected onto the pixel at a projection degree corresponding to the alpha value information. Through this process of determining the application rate, decal D4 is projected and rendered on the top and side surfaces of object OBJ2 onto which the decal is obliquely projected, without being obscured by the occluding object. Furthermore, decal D3 is projected and rendered on the top surface of object OBJ1 onto which the decal is obliquely projected, excluding the portion obscured by the occluding object. As is clear from FIG. 12, compared to the above-described decal D1, the decal D3 projected onto the top surface of object OBJ1 is projected into the deep space below object OBJ2 because the projection direction of the decal has been changed to an oblique angle. However, by using the above-described occluding object to obscure the decal, the above-described drawing can be achieved with simple processing by simply changing the projection position and projection direction of the decal without having to move the occluding object.
[0079] For example, when using conventional masking processing, the meshes to which the decal is applied are controlled by masking the meshes on the top surface of the object OBJ1 onto which the decal is to be projected, to which the decal is not to be applied. In this case, it is necessary to divide the areas to which the decal is applied and the areas to which the decal is not to be applied using meshes. In this masking processing, it is necessary to control whether the decal is applied or not on the surface (top surface) of the object OBJ1 onto which the decal is to be projected. Therefore, when the projection position is changed, such as from decal D1 to decal D3 described above, it is necessary to change the process of dividing the projection target into meshes each time, which results in an excessive processing load. As described above, the occluding object in this embodiment can maintain its current state even when the decal projection position and / or projection direction are dynamically changed. This reduces the processing load compared to conventional masking processing and enables flexible occlusion settings that respond to various dynamic changes in the decal.
[0080] Furthermore, the occluding object may dynamically change in the virtual space based on game processing. As an example, the position, orientation, and / or shape of the occluding object may dynamically change based on game processing. For example, if the position, orientation, and / or shape of object OBJ2 illustrated in FIGS. 8 to 12 dynamically changes in the virtual space based on game processing, the occluding object may also change its position, orientation, and / or shape in response to the change in object OBJ2 while maintaining the same positional relationship. Even if the area of the decal D2 projected onto object OBJ2 increases or decreases due to the dynamic change in the position, orientation, and / or shape of object OBJ2, the occluding object also dynamically changes while maintaining its positional relationship with object OBJ2. As a result, the area of the decal D2 that is occluded and not projected onto object OBJ1 also increases or decreases in response to the increase or decrease in the area of the decal D2, thereby making it possible to achieve, through simple processing, rendering in which the area of the decal D1 projected onto object OBJ1 also increases or decreases in response.
[0081] On the other hand, when using the conventional masking process described above, rendering of the decal D1, which increases or decreases due to dynamic changes in the position, orientation, and / or shape of the object OBJ2, requires processing to change the mesh division of the surface (top surface) of the object OBJ1 onto which the decal D1 is projected in order to control whether the decal D1 is applied or not. In this case, changes in the decal D1 due to dynamic changes in the object OBJ2 must be calculated each time based on changes in the positional relationship related to the movement and projection direction of the object OBJ2, which is located away from the mesh, resulting in an excessive processing load. As described above, in this embodiment, rendering of the decal D1 can be changed simply by dynamically changing the occluding object while maintaining the same positional relationship with the object OBJ2. This reduces the processing load compared to conventional masking processes, and enables flexible occlusion settings that respond to dynamic changes in various objects.
[0082] Furthermore, the dynamic changes in the decal and / or occluding object based on the game processing described above include changes in dynamic enlargement or reduction in virtual space. For example, a decal defined in virtual space may be dynamically enlarged or reduced in response to a change in the size of a decal projected onto a projection target. Also, an occluding object placed in virtual space may be dynamically enlarged or reduced in response to a change in the size of a virtual object related to the occlusion of the decal.
[0083] 8 to 11 are arranged so as to be perpendicular to the projection direction of the decal, but the arrangement direction of the occluding object relative to the projection direction of the decal is not limited to being perpendicular, as illustrated in Fig. 12. As described above, when the decal and / or the occluding object changes dynamically in the virtual space, the arrangement direction of the occluding object relative to the projection direction of the decal may also change dynamically.
[0084] In this embodiment, an occluding object that blocks the projection of a decal defined in virtual space may be associated and set. An occluding object associated with a decal is drawn without projection or with a reduced projection level in the range that is occluded along the projection direction of the decal. On the other hand, an occluding object not associated with a decal is drawn with projection level unchanged even in the range that is occluded along the projection direction of the decal. In this way, by making it possible to select an occluding object corresponding to each decal, it is possible to set an occluding object according to the projection position, projection direction, characteristics, etc. of each decal.
[0085] In this embodiment, multiple decals may be associated with one occluding object. When an occluding object is associated with multiple decals, the occluding object is not projected or is rendered with a reduced projection level in the occluded range along the projection direction, regardless of which of the multiple decals is projected. By making it possible to set occluding objects associated with multiple decals in this way, it is possible to reduce the number of occluding objects to be placed in the virtual space, thereby reducing the processing load in the rendering process using decals.
[0086] Furthermore, in this embodiment, a single decal may be set to correspond to a plurality of occluding objects. When a plurality of occluding objects associated with the decal are arranged along the projection direction of the decal, the projection adjustments of the respective occluding objects may be overlapped and reflected in the rendering. As an example, when the projection adjustments of the plurality of occluding objects are overlapped, the decal may be rendered with a reduced projection degree based on a value obtained by multiplying the α values of the respective occluding objects.
[0087] Although the occluding object in this embodiment is a single planar object, it may be an object of another shape. For example, the occluding object may be composed of other three-dimensional objects or a combination of multiple planar objects arranged at different angles, depending on the shape of the virtual object involved in occlusion. The occluding object may also be one that allows for a determination different from the determination of the projection degree using a texture with an α value. For example, the projection degree may be determined by preparing a determination using a polygon as a simple figure for the occluding object.
[0088] Although this embodiment uses an example in which the decal is drawn by parallel projection from a projection start position defined in virtual space, the decal may also be drawn by perspective projection in virtual space. In this case, the projection box described above is set by a shape such as a cone, elliptical cone, or pyramid formed by a projection line along which the defined decal is perspectively projected, and the projection degree of each pixel is determined along the projection line.
[0089] In this embodiment, an example is used in which the decal is projected onto the front surface of the object on which the decal is to be projected, which is the side from which the decal projection starts along the decal projection direction (the side visible from the decal start position). In this case, the decal is not projected onto any surfaces constituting the object whose normal does not face the decal projection direction (i.e., surfaces whose angle is not at least 90° when the projection direction and the normal are directly opposite each other is defined as 0°). In another embodiment, the decal may also be projected onto the back surface of the object on the opposite side along the decal projection direction (the side not visible from the decal start position). In this case, the surfaces on which the decal is to be projected include not only the front surface as seen from the decal start position, but also the back surface whose normal does not face the decal projection direction.
[0090] In the above embodiment, an intermediate range where the α value set for the texture of an occluding object is 0<α value<1 is used as an example, and is set near the boundary between the range where α value=1 in which the decal is occluded and the range where α value=0 in which the decal is not occluded. In other embodiments, the intermediate range may be set to an area surrounded by the range where α value=1 in which the decal is occluded, or an area surrounded by the range where α value=0 in which the decal is not occluded. In this case, various modes of rendering processing are possible, such as rendering as if part of the decal is projected but not visible, or rendering as if part of the decal is projected through the surface.
[0091] Next, an example of a specific process executed by the game system 1 will be described with reference to Fig. 13. In addition to the data shown in Fig. 13, the DRAM 85 also stores data used in other processes, but detailed description thereof will be omitted.
[0092] The program storage area of the DRAM 85 stores various programs Pa executed by the game system 1. In this embodiment, the various programs Pa store application programs (e.g., game programs) for performing information processing based on data acquired from the left controller 3 and / or right controller 4 or the main unit 2. The various programs Pa may be stored in advance in the flash memory 84, or may be acquired from a storage medium removable from the game system 1 (e.g., a predetermined type of storage medium inserted in the slot 23) and stored in the DRAM 85, or may be acquired from another device via a network such as the Internet and stored in the DRAM 85. The processor 81 executes the various programs Pa stored in the DRAM 85.
[0093] Furthermore, the data storage area of the DRAM 85 stores various types of data used in processes such as information processing executed in the game system 1. In this embodiment, the DRAM 85 stores operation data Da, player character data Db, other object data Dc, decal data Dd, shielding object data De, virtual space rendering data Df, image data Dg, and the like.
[0094] The operation data Da is operation data acquired appropriately from the left controller 3 and / or right controller 4 and the main unit 2. As described above, the operation data acquired from the left controller 3 and / or right controller 4 and the main unit 2 includes information (specifically, information about the operation) related to inputs from the input units (specifically, each button, analog stick, touch panel). In this embodiment, operation data is acquired from the left controller 3 and / or right controller 4 and the main unit 2, and the acquired operation data is used to update the operation data Da as appropriate. The update cycle of the operation data Da may be every frame, which is the cycle of processing executed by the game system 1, which will be described later, or may be every cycle in which the operation data is acquired.
[0095] The player character data Db is data that indicates the position, orientation, and posture of the player character placed in the virtual space, as well as the movement and state of the player character in the virtual space.
[0096] The other object data Dc is data that indicates the placement position, placement direction, placement posture, and movement and state of each object placed in the virtual space.
[0097] The decal data Dd is data that indicates the content, projection position, projection direction, size, shape, projection box, etc. of each decal defined in the virtual space.
[0098] The occluding object data De is data that indicates the placement position, placement direction, placement posture, size, shape, and set texture information (α value) of each occluding object placed in the virtual space, as well as the decal associated with each occluding object.
[0099] The virtual space rendering data Df is data for rendering the virtual space and displaying it on the display screen.
[0100] The image data Dg is data for displaying images (e.g., an image of a player character, an image of each virtual object, an image of a decal, an image of a field in a virtual space, a background image, etc.) on a display screen (e.g., the display 12 of the main unit 2).
[0101] Next, a detailed example of game processing, which is an example of information processing in this embodiment, will be described with reference to Figures 14 and 15. In this embodiment, the series of processes shown in Figures 14 and 15 are performed by the processor 81 executing a predetermined application program (game program) included in the various programs Pa. In addition, the game processing shown in Figures 14 and 15 can be started at any timing.
[0102] 14 and 15 are merely examples, and the order of the steps may be changed, or other processes may be performed in addition to (or instead of) the steps, as long as the same results are obtained. In addition, although the present embodiment describes the steps of the flowcharts as being executed by the processor 81, some of the steps in the flowcharts may be executed by a processor other than the processor 81 or a dedicated circuit. Some of the processes executed by the main unit 2 may be executed by another information processing device capable of communicating with the main unit 2 (for example, a server capable of communicating with the main unit 2 via a network). That is, the processes shown in FIGS. 14 and 15 may be executed by cooperation between multiple information processing devices, including the main unit 2.
[0103] In FIG. 14, processor 81 performs initial settings for game processing (step S120) and proceeds to the next step. For example, in the initial settings, processor 81 initializes parameters for performing the processing described below and updates each piece of data. As one example, processor 81 places a player character in a predetermined posture at a default position in the virtual space in the initial state, and updates player character data Db. Processor 81 also generates a virtual space in the initial state by placing various objects and other characters on the game field of the virtual space, and updates other object data Dc. Processor 81 also defines a decal in the virtual space, places an obstructing object associated with the decal, and updates decal data Dd and obstructing object data De.
[0104] Next, processor 81 acquires operation data from left controller 3, right controller 4, and / or main unit 2, updates operation data Da (step S121), and proceeds to the next step.
[0105] Next, processor 81 performs a player character update process (step S122) and proceeds to the next step. For example, processor 81 sets the movement of the player character based on operation data Da. As an example, processor 81 sets the position, direction, posture, movement, state, etc. of the player character based on the user operation input indicated by the operation data Da and virtual physical calculations in the virtual space, and updates player character data Db.
[0106] Next, processor 81 updates the positions and postures of various objects and other characters in the virtual space (step S123), and proceeds to the next step. As one example, when other objects or other characters dynamically change due to the movement of the player character, processor 81 changes the objects or characters based on the movement of the player character updated in step S122, and updates the object data Dc using the positions and postures after the change. As another example, when other objects or other characters dynamically change based on the environment, such as physical laws, in the virtual space, processor 81 changes the objects or characters based on the environment, and updates the object data Dc using the positions and postures after the change.
[0107] Next, processor 81 performs a virtual space rendering process (step S124) and proceeds to the next step. For example, processor 81 places the player character, various objects, other characters, etc. in the virtual space based on player character data Db and other object data Dc. Then, processor 81 generates an image of the virtual space as seen from a virtual camera used to generate a display image, renders the virtual space image, and updates the virtual space rendering data Df. Processor 81 may also execute a process to control the movement of the virtual camera in the virtual space based on the position and posture of the player character. Processor 81 may also move the virtual camera in the virtual space based on operation data Da.
[0108] Next, processor 81 determines whether a decal is defined in the virtual space (step S125). For example, processor 81 refers to decal data Dd, and if a decal to be projected into the virtual space is defined, proceeds to step S126. On the other hand, if a decal to be projected into the virtual space is not defined, processor 81 proceeds to step S127.
[0109] In step S126, processor 81 performs decal processing, and the process proceeds to step S127. The decal processing in step S126 will now be described with reference to FIG.
[0110] 15, processor 81 performs decal update processing (step S132) and proceeds to the next step. In the decal update processing in step S132, processor 81 updates the decal data Dd by updating the decal content, projection position, projection direction, size, shape, projection box, etc. In other words, any changes to the decal, such as movement, are also reflected in the update processing.
[0111] Next, processor 81 determines whether the occluding object has changed in the virtual space (step S133). For example, processor 81 makes a positive determination in step S133 if at least one of the objects related to the occlusion of the decal (e.g., object OBJ2) dynamically changes based on the processes of steps S121 to S123 above and the environment, such as physical laws, in the virtual space. Then, if the occluding object has changed in the virtual space, processor 81 proceeds to step S134. On the other hand, if the occluding object has not changed in the virtual space, processor 81 proceeds to step S135.
[0112] In step S134, processor 81 performs an occluding object change process, and the process proceeds to step S135. For example, processor 81 changes the placement position, placement direction, placement attitude, size, shape, set texture, etc. of the occluding object related to the object in response to a change in the object related to the occlusion that has occurred in the virtual space, and updates the occluding object data De.
[0113] In step S135, processor 81 determines, with reference to the virtual space rendering data Df, whether or not processing has been completed for all target pixels. If processing has not been completed for all pixels, processor 81 proceeds to step S136. On the other hand, if processing has been completed for all pixels, processor 81 ends processing of this subroutine. Note that the target pixels may be all pixels of the virtual space image rendered in step S124 above, or all pixels within a range limited for each decal. For example, it may be all pixels included in a range corresponding to a shape (such as a rectangular parallelepiped polygon) that encompasses the projection area of each decal.
[0114] In step S136, the processor 81 refers to the virtual space drawing data Df, selects pixels for which processing has not been completed from among all pixels of the image of the virtual space, and proceeds to the next step.
[0115] Next, processor 81 refers to decal data Dd and determines whether the pixel to be processed is located at a position included in any of the projection boxes of the decal defined in virtual space (step S137). If the pixel to be processed is located within the projection box, processor 81 proceeds to step S138. On the other hand, if the pixel to be processed is not located within the projection box, processor 81 returns to step S135 and repeats the process.
[0116] In step S138, the processor 81 refers to the decal data Dd, extracts the decal for the pixel being processed that corresponds to the vector of the projection direction of the decal in which the projection box in which the pixel is located is set, and proceeds to the next step.
[0117] Next, the processor 81 refers to the occluding object data De and extracts texture information (α value) of the intersection between the projection direction vector and the occluding object corresponding to the decal for the pixel to be processed (step S139), and proceeds to the next step.
[0118] Next, processor 81 updates the virtual space drawing data Df by reflecting the color, brightness, saturation, etc. of the decal extracted in step S138 above to the pixel being processed at an application rate according to the texture information (α value) extracted in step S139 above (step S140), and then returns to step S135 above to repeat the process.
[0119] 14, in step S127, the processor 81 performs a display control process and proceeds to the next step. For example, the processor 81 refers to the virtual space drawing data Df and performs control to display an image of the virtual space on the display 12.
[0120] Next, processor 81 determines whether or not to end the game processing (step S128). Conditions for ending the game processing in step S128 above include, for example, a condition for ending the game processing being satisfied, or the user performing an operation to end the game processing. If processor 81 does not end the game processing, it returns to step S121 above and repeats the process, and if it ends the game processing, it ends the process according to this flowchart. Thereafter, the series of processes from step S121 to step S128 is repeatedly executed until it is determined in step S128 that the process should end.
[0121] In this way, in this embodiment, by placing an obstructing object in a location where the decal may penetrate and cause a problem, the decal can be obstructed, thereby preventing the decal from penetrating that location and being projected along the projection direction.
[0122] The game system 1 may be any device, such as a portable game device, any portable electronic device (PDA (Personal Digital Assistant), mobile phone, personal computer, camera, tablet, etc.).
[0123] Furthermore, although the above description uses an example in which information processing (game processing) is performed by the game system 1, at least some of the above processing steps may be performed by another device. For example, if the game system 1 is configured to be able to communicate with yet another device (e.g., a server, another information processing device, another image display device, another game device, or another mobile terminal), the above processing steps may be executed in cooperation with the other device. In this way, by executing at least some of the above processing steps in another device, processing similar to the above-described processing becomes possible. Furthermore, the above-described information processing may be executed by one processor or by cooperation between multiple processors included in an information processing system composed of at least one information processing device. Furthermore, in the above embodiment, information processing can be performed by the processor 81 of the game system 1 executing a predetermined program, but some or all of the above processing may be performed by a dedicated circuit provided in the game system 1.
[0124] According to the above-described modified example, the present invention can also be realized in a so-called cloud computing system configuration, or in a distributed wide area network or local network system configuration. For example, in a distributed local network system configuration, the above processing can be performed cooperatively between a stationary information processing device (stationary game device) and a portable information processing device (portable game device). Note that in these system configurations, there is no particular limitation on which device performs the above processing, and it goes without saying that the present invention can be realized regardless of the processing division.
[0125] Furthermore, the processing order, setting values, conditions used for judgment, etc. used in the information processing described above are merely examples, and it goes without saying that this embodiment can be realized even with other orders, values, and conditions.
[0126] The program may be supplied to the game system 1 not only through an external storage medium such as an external memory, but also through a wired or wireless communication line. The program may be pre-recorded in a nonvolatile storage device within the device. The information storage medium for storing the program may be a nonvolatile memory, a CD-ROM, a DVD, or similar optical disk-shaped storage media, a flexible disk, a hard disk, a magneto-optical disk, or a magnetic tape. The information storage medium for storing the program may also be a volatile memory for storing the program. Such a storage medium may be a recording medium readable by a computer or the like. For example, the various functions described above can be provided by having a computer or the like read and execute the program from such a recording medium.
[0127] Although the present invention has been described in detail above, the above description is merely illustrative of the present invention in all respects and is not intended to limit its scope. It goes without saying that various improvements and modifications can be made without departing from the scope of the present invention. Furthermore, those skilled in the art will understand that, from the description of specific embodiments of the present invention, they will be able to implement equivalents based on the description of the present invention and common technical knowledge. Furthermore, unless otherwise specified, it should be understood that the terms used in this specification are used in the same sense as commonly used in the art. Therefore, unless otherwise defined, all technical and technical terms used in this specification have the same meaning as commonly understood by those skilled in the art to which this invention belongs. In the event of any conflict, the present specification (including definitions) will prevail. [Industrial Applicability]
[0128] As described above, the present invention can be used as an image processing program, an image processing system, an image processing device, an image processing method, etc. that can prevent a decal from penetrating and being drawn in areas where penetrating the decal would be problematic. [Explanation of symbols]
[0129] 1. Information processing system 2...Main unit 3...Left controller 4...Right controller 11. Housing 12...Display 13...Touch panel 32, 52...Analog stick 42, 64...Terminals 81...Processor 82...Network Communication Department 83...Controller communication section 85...DRAM 101, 111...Communication control unit
Claims
1. The computer of the information processing device A decal having a projection position and a projection direction set is defined in a virtual space, and an occlusion object set for the decal is placed in the virtual space; In the rendering process of the virtual space, among the surfaces on which the decal is to be projected according to the projection position and the projection direction, performing drawing without projecting the decal or with a reduced level of projection of the decal in a range that is occluded by the occluding object along the projection direction; an image processing program that projects the decal along the projection direction to draw an area that is not blocked by the occluding object;
2. 2. The image processing program according to claim 1, further comprising causing the computer to dynamically change at least one of the projection position and the projection direction of the decal in the virtual space.
3. 2. The image processing program according to claim 1, further causing the computer to dynamically change at least one of the position and the shape of the occluding object in the virtual space.
4. 4. The image processing program according to claim 1, wherein the occluding object is an object that is not a target of rendering.
5. The image processing program according to claim 1 , wherein the occluding object is a planar object.
6. a texture including an alpha value is set for the occlusion object; 6. The image processing program according to claim 5, further causing the computer to project and draw the decal in the virtual space drawing process at a projection degree according to an alpha value of the texture corresponding to a position on the occluding object that is occluded during the projection.
7. An image processing system including a processor, The processor: defining a decal in which a projection position and a projection direction are set in a virtual space, and arranging an occlusion object set for the decal in the virtual space; In the rendering process of the virtual space, among the surfaces on which the decal is to be projected according to the projection position and the projection direction, performing drawing without projecting the decal or with a reduced level of projection of the decal in a range that is occluded by the occluding object along the projection direction; an image processing system that projects the decal to draw an area that is not occluded by the occluding object along the projection direction.
8. The image processing system according to claim 7 , wherein the processor further dynamically changes at least one of the projection position and the projection direction of the decal in the virtual space.
9. The image processing system according to claim 7 , wherein the processor further dynamically changes at least one of a position and a shape of the occluding object in the virtual space.
10. 10. The image processing system according to claim 7, wherein the occluding object is an object that is not a target of rendering.
11. 10. The image processing system according to claim 7, wherein the occluding object is a planar object.
12. a texture including an alpha value is set for the occlusion object; The image processing system according to claim 11 , wherein the processor further projects and draws the decal in the virtual space rendering process at a projection degree according to an alpha value of the texture corresponding to a position on the occluding object that is occluded during the projection.
13. An image processing device including a processor, The processor: defining a decal in which a projection position and a projection direction are set in a virtual space, and arranging an occlusion object set for the decal in the virtual space; In the rendering process of the virtual space, among the surfaces on which the decal is to be projected according to the projection position and the projection direction, performing drawing without projecting the decal or with a reduced level of projection of the decal in a range that is occluded by the occluding object along the projection direction; an image processing device that projects the decal and performs drawing on an area that is not blocked by the occluding object along the projection direction;
14. The image processing device according to claim 13 , wherein the processor further dynamically changes at least one of the projection position and the projection direction of the decal in the virtual space.
15. The image processing device according to claim 13 , wherein the processor further dynamically changes at least one of a position and a shape of the occluding object in the virtual space.
16. The image processing device according to claim 13 , wherein the occluding object is an object that is not a target of rendering.
17. The image processing device according to claim 13 , wherein the occluding object is a planar object.
18. a texture including an alpha value is set for the occlusion object; 18. The image processing device according to claim 17, wherein the processor further projects and draws the decal in the virtual space drawing process at a projection degree according to an alpha value of the texture corresponding to a position on the occluding object that is occluded during the projection.
19. An image processing method executed by an information processing system, comprising: The information processing system includes: defining a decal in which a projection position and a projection direction are set in a virtual space, and arranging an occlusion object set for the decal in the virtual space; In the rendering process of the virtual space, among the surfaces on which the decal is to be projected according to the projection position and the projection direction, performing drawing without projecting the decal or with a reduced level of projection of the decal in a range that is occluded by the occluding object along the projection direction; an image processing method for projecting and drawing the decal in an area that is not occluded by the occluding object along the projection direction;
20. 20. The image processing method according to claim 19, wherein the information processing system further dynamically changes at least one of the projection position and the projection direction of the decal in the virtual space.
21. 20. The image processing method according to claim 19, wherein the information processing system further dynamically changes at least one of a position and a shape of the occluding object in the virtual space.
22. 22. The image processing method according to claim 19, wherein the occluding object is an object that is not to be rendered.
23. 22. The image processing method according to claim 19, wherein the occluding object is a planar object.
24. a texture including an alpha value is set for the occlusion object; 24. The image processing method according to claim 23, wherein the information processing system further projects and draws the decal in the virtual space drawing process at a projection degree according to an alpha value of the texture corresponding to a position on the occluding object that is occluded during the projection.
Citation Information
Patent Citations
Image rendering method and device, electronic equipment and storage medium
CN114187400A
Image generation system, program, and information storage medium
JP2008077406A
Coverage display device, coverage display system and coverage display program
JP2012038132A
Piezoelectric motor, driving device, electronic component transferring device, electronic component inspecting device, printing device, robot hand and robot
JP2013121193A
Methods and Systems for Determining Decal Projections Intersecting Spacial Units in a Frame of a Game Space
US20220203231A1