# US 10,964,096 B2 · Methods for detecting if an object is visible

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,964,096 B2
- Document ID: US10964096B2
- Status: Granted
- Kind: B2
- Application number: 16/583,860
- Filed: 2019-09-26
- Published: 2020-04-02
- Granted: 2021-03-30
- Earliest claimed: 2018-09-27
- Assignees: Adverty AB
- Applicants: Adverty AB
- Inventors: Carl Sténson; Emilio Lando
- Web page: https://patentgrep.com/patent/US10964096B2

## CPC

- G06T 15/20: Perspective computation
- G06T 15/40: Hidden part removal
- G06T 7/90: Determination of colour characteristics
- G06T 11/10: Texturing; Colouring; Generation of textures or colours (retouching, inpainting or scratch removal G06T5/77)
- G06T 19/20: Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
- G06T 2219/2012: Colour editing, changing, or manipulating; Use of colour codes
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

A method for determining if an object in a colour three-dimensional environment rendered in real time on a display by a computer is visible for user with a defined point of observation in the three-dimensional environment. The object is defined by at least one area with a predefined colour (CD) where said area is rendered with a colour (CR) that is different from the predefined colour due to the rendering conditions at a defined time point. There is a pre-defined pseudocolour (CP), where a colour is defined as colour values for each of the red (R), green (G) and blue (B) channels.

## Claims

### Claim 1

A method for determining if an object in a three-dimensional environment rendered on a display by a computer is visible for user with a defined point of observation in the three-dimensional environment, where the three-dimensional environment is rendered in real time and in colour, and where the object is defined by at least one area with a predefined colour (CD) where said area is rendered with a colour (CR) that is different from the predefined colour due to rendering conditions at a defined time point, and where there is a pre-defined pseudocolour (CP), where a colour is defined as colour values for each of the red (R), green (G) and blue (B) channels,
and where the following steps are carried out:
a) selecting a point on the object which point is a point in space in the three-dimensional environment,
b) using the rendering conditions for the selected point in space at the defined time point, determine processed pseudocolour values (CX) based on the pseudocolour (CP),
c) determining differences (DR, DG and DB) between CP and CX, for each of the R, G and B channels;
d) making a resultant vector of vectors for DR, DG and DB where each of DR, DG and DB is considered as a vector along a separate axis in a three-dimensional coordinate system, and
e) using the resultant vector to determine if the object is visible, and
wherein rendering is carried out with a rendering frequency and wherein steps a)-e) are carried out repetitively and with a frequency that is lower than the rendering frequency.

### Claim 2 (depends on 1)

The method of claim 1 wherein rendering software determines the rendering conditions for the graphical environment each rendering cycle, and where the rendering conditions thus determined is used to both carry out step b) and to determine CR.

### Claim 3 (depends on 2)

The method of claim 2 rendering conditions for the graphical environment is used to first to carry out step b) and then to determine CR.

### Claim 4 (depends on 1)

The method of claim 1 where step e) is carried out by determining that an object is visible if the resultant vector is no longer than a predetermined threshold T.

### Claim 5 (depends on 1)

The method of claim 1 where DR, DG and DB are determined as the absolute values of the difference between CP and CX for each of the colour channels.

### Claim 6 (depends on 1)

The method of claim 1 where the pseudocolour is chosen so that that the R, G and B values of the pseudocolour has an intensity larger than the threshold, but smaller than the maximum value minus the threshold value.

### Claim 7 (depends on 1)

The method of claim 1 where an array of detection points in an predefined pattern is superimposed on the object, and steps a) to e) are carried out for each of the points on which the detection points are superimposed, and where the object is considered to be visible of a minimum number of points are visible.

### Claim 8 (depends on 1)

The method of claim 1 where each area in the three-dimensional environment is assigned a value for opacity (alpha value), and the additional steps are carried out for the selected point of the object:
a) identifying all points for rendered objects along a straight line between the point of observation and the selected point,
b) determining the opacity values (alpha value) for each of said points identified in step b),
c) adding the opacity values of said points, and
d) using the value of step c) to determine if the object is visible.

### Claim 9

A computer system comprising a model of a three-dimensional environment, a display, rendering software and visibility detection software, where the rendering software is configured to render the three-dimensional environment in real time and in colour on the display,
the visibility detection software being configured to determine if an object in the three-dimensional environment is visible for a user, where said user has a defined point of observation in the three-dimensional environment, where the object is defined in the model with at least one area with a predefined colour (CD) where the area is rendered with a colour (CR) that is different from the predefined colour due to rendering conditions at a defined time point, and where there is a predefined pseudo colour, where a colour is defined as colour values for each of the red (R), green (G) and blue (B) channels, and where the software is configured to
a) select a point on the object, which point is a point in space in the three-dimensional environment,
b) using the rendering conditions for the point in space at the defined time point, calculate processed pseudocolour values (CX) based on the pseudocolour (CP),
c) determine differences (DR, DG and DB) between CP and CX, for each of R, G and B channels;
d) make a resultant vector of vectors for DR, DG and DB where each of DR, DG and DB is considered as a vector along a separate axis in a three-dimensional coordinate system, and
e) use the resultant vector to determine if the object is visible, and
wherein rendering is carried out with a rendering frequency and wherein a)-e) are carried out repetitively and with a frequency that is lower than the rendering frequency.
