IP Library Granted Patent US 12694606
Granted Patent B2
US 12694606 · App. 18/883,392 · Granted Jul 28, 2026

Non-transitory computer-readable medium, image processing system, image processing method, and image processing apparatus

Inventor: Yasuhito Fujisawa (Kyoto, JP)
Assignee: Nintendo Co., Ltd.
G06T15/10A63F13/52A63F13/577G06T7/50G06T15/04G06T15/06G06T2210/21
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12694606
App. No.
18/883,392
Granted
Jul 28, 2026
Kind
B2
Abstract

An image processing system according to an exemplary embodiment renders objects in a virtual space in a frame buffer, and with a direction from a virtual camera to a position in the virtual space relating to a pixel of interest in a drawn image as an incidence direction, calculates a reflection direction based on the incidence direction and a normal direction. The image processing system calculates as a ray tracing direction a direction obtained by making a correction toward an inside of a screen in the calculated reflection direction, traces a ray along the ray tracing direction, and adds a color of a collision position of the ray to a color of the pixel of interest.

Claims (74)

1 . One or more non-transitory computer-readable media having stored therein instructions that, when executed, cause one or more processors of an information processing apparatus to execute image processing comprising:

regarding objects in a virtual space,

performing a first depth test using a first depth buffer and updating the first depth buffer; and

performing drawing in a frame buffer based on a result of the first depth test;

with respect to each pixel of the frame buffer in which the drawing is performed, using the pixel as a pixel of interest,

based on a depth of the first depth buffer, calculating a direction from a virtual camera to a position in the virtual space relating to the pixel of interest as an incidence direction, and calculating as a ray tracing direction a direction obtained by, with the position as a reflection position, further making a correction toward an inside of a screen in a reflection direction based on the incidence direction and a direction normal to the reflection position;

tracing a ray along the ray tracing direction, and based on the first depth buffer, determining a collision position where the ray collides with an object in the virtual space; and

if the collision position is determined in a range where the tracing distance of the ray is less than or equal to a first distance, determining a color based on a color of a pixel in the frame buffer relating to the collision position as a reflected appearance color to be added to a color of the pixel of interest.

2 . The one or more non-transitory computer-readable media according to claim 1 , wherein

the correction is a correction for, with a position at a second distance in the ray tracing direction from the reflection position as a terminal position, moving screen coordinates of the terminal position toward the inside of the screen.

3 . The one or more non-transitory computer-readable media according to claim 2 , wherein

the second distance is the first distance.

4 . The one or more non-transitory computer-readable media according to claim 2 , wherein

the correction is a correction for moving the screen coordinates of the terminal position close to screen coordinates of the reflection position at a level.

5 . The one or more non-transitory computer-readable media according to claim 4 , wherein

the closer to an end of the screen the screen coordinates of the reflection position are, the higher the level is.

6 . The one or more non-transitory computer-readable media according to claim 4 , wherein

the correction is a correction made only if the screen coordinates of the reflection position are included in a predetermined range close to an end of the screen.

7 . The one or more non-transitory computer-readable media according to claim 4 , wherein

the correction is a correction made only if the reflection direction is directed to an outside of the screen.

8 . The one or more non-transitory computer-readable media according to claim 2 , wherein

the correction is made regarding only a component in a left-right direction of the screen coordinates.

9 . An information processing system comprising: one or more processors that execute image processing comprising:

regarding objects in a virtual space,

performing a first depth test using a first depth buffer and updating the first depth buffer; and

performing drawing in a frame buffer based on a result of the first depth test;

with respect to each pixel of the frame buffer in which the drawing is performed, using the pixel as a pixel of interest,

based on a depth of the first depth buffer, calculating a direction from a virtual camera to a position in the virtual space relating to the pixel of interest as an incidence direction, and calculating as a ray tracing direction a direction obtained by, with the position as a reflection position, further making a correction toward an inside of a screen in a reflection direction based on the incidence direction and a direction normal to the reflection position;

tracing a ray along the ray tracing direction, and based on the first depth buffer, determining a collision position where the ray collides with an object in the virtual space; and

if the collision position is determined in a range where the tracing distance of the ray is less than or equal to a first distance, determining a color based on a color of a pixel in the frame buffer relating to the collision position as a reflected appearance color to be added to a color of the pixel of interest.

10 . The image processing system according to claim 9 , wherein

the correction is a correction for, with a position at a second distance in the ray tracing direction from the reflection position as a terminal position, moving screen coordinates of the terminal position toward the inside of the screen.

11 . The image processing system according to claim 10 , wherein

the second distance is the first distance.

12 . The image processing system according to claim 10 , wherein

the correction is a correction for moving the screen coordinates of the terminal position close to screen coordinates of the reflection position at a level.

13 . The image processing system according to claim 12 , wherein

the closer to an end of the screen the screen coordinates of the reflection position are, the higher the level is.

14 . The image processing system according to claim 12 , wherein

the correction is a correction made only if the screen coordinates of the reflection position are included in a predetermined range close to an end of the screen.

15 . The image processing system according to claim 12 , wherein

the correction is a correction made only if the reflection direction is directed to an outside of the screen.

16 . The image processing system according to claim 10 , wherein

the correction is made regarding only a component in a left-right direction of the screen coordinates.

17 . An image processing method comprising:

regarding objects in a virtual space,

performing a first depth test using a first depth buffer and updating the first depth buffer; and

performing drawing in a frame buffer based on a result of the first depth test;

with respect to each pixel of the frame buffer in which the drawing is performed, using the pixel as a pixel of interest,

based on a depth of the first depth buffer, calculating a direction from a virtual camera to a position in the virtual space relating to the pixel of interest as an incidence direction, and calculating as a ray tracing direction a direction obtained by, with the position as a reflection position, further making a correction toward an inside of a screen in a reflection direction based on the incidence direction and a direction normal to the reflection position;

tracing a ray along the ray tracing direction, and based on the first depth buffer, determining a collision position where the ray collides with an object in the virtual space; and

if the collision position is determined in a range where the tracing distance of the ray is less than or equal to a first distance, determining a color based on a color of a pixel in the frame buffer relating to the collision position as a reflected appearance color to be added to a color of the pixel of interest.

18 . The image processing method according to claim 17 , wherein

the correction is a correction for, with a position at a second distance in the ray tracing direction from the reflection position as a terminal position, moving screen coordinates of the terminal position toward the inside of the screen.

19 . The image processing method according to claim 18 , wherein

the second distance is the first distance.

20 . The image processing method according to claim 18 , wherein

the correction is a correction for moving the screen coordinates of the terminal position close to screen coordinates of the reflection position at a level.

21 . The image processing method according to claim 20 , wherein

the closer to an end of the screen the screen coordinates of the reflection position are, the higher the level is.

22 . The image processing method according to claim 20 , wherein

the correction is a correction made only if the screen coordinates of the reflection position are included in a predetermined range close to an end of the screen.

23 . The image processing method according to claim 20 , wherein

the correction is a correction made only if the reflection direction is directed to an outside of the screen.

24 . The image processing method according to claim 18 , wherein

the correction is made regarding only a component in a left-right direction of the screen coordinates.

25 . An information processing apparatus comprising: one or more processors that execute image processing comprising:

regarding objects in a virtual space,

performing a first depth test using a first depth buffer and updating the first depth buffer; and

performing drawing in a frame buffer based on a result of the first depth test;

with respect to each pixel of the frame buffer in which the drawing is performed, using the pixel as a pixel of interest,

based on a depth of the first depth buffer, calculating a direction from a virtual camera to a position in the virtual space relating to the pixel of interest as an incidence direction, and calculating as a ray tracing direction a direction obtained by, with the position as a reflection position, further making a correction toward an inside of a screen in a reflection direction based on the incidence direction and a direction normal to the reflection position;

tracing a ray along the ray tracing direction, and based on the first depth buffer, determining a collision position where the ray collides with an object in the virtual space; and

if the collision position is determined in a range where the tracing distance of the ray is less than or equal to a first distance, determining a color based on a color of a pixel in the frame buffer relating to the collision position as a reflected appearance color to be added to a color of the pixel of interest.