<p>The most common use is almost certainly computing normal vectors for a surface, using a cross product. Although strictly speaking, this does not quite qualify as the two initial vectors are usually not orthogonal. This is used for shading calculations and various other algorithms. I know of <a href="https://www.arnoldrenderer.com/research/egsr2013_spherical_rectangle.pdf" rel="nofollow noreferrer">at least one</a> where the initial surface is explicitly a rectangle so it would qualify.</p>

<p>The sampling of BRDFs is another application. In many cases, the math is done for a canonical space with the surface normal pointing up and must be transformed to the actual surface. This is done by building a full 3D basis from the surface normal vector.</p>

<p>Anisotropic BRDFs typically have two vectors as input: the surface normal and one vector to define the orientation of anisotropy. Depending on the implementation, it may be assumed to be orthogonal to the normal. Otherwise, it is made orthogonal. Then, again, a full basis is built from those two.</p>

<p>There is a class of ray intersection algorithms which work by projecting the surface in two dimensions. This is done by starting with the ray and generating two more orthogonal vectors which define the projection plane.</p>

<p>This is certainly not an exhaustive list but they are the main ones that came to mind. I am not aware of any uses for higher dimensions but I don't know about every corner of computer graphics either.</p>

CC BY-SA 4.0
2020-04-21T18:07:55.343Z
2020-04-21T18:07:55.343Z
Olivier
<p>Sorry if this is OT, but I'm wondering if there's a specific graphics technique in which it is required to extend a preexisting orthogonal set of vectors (not necessarily to a full basis, but perhaps so).  In a matrix theory lecture, the prof said that this computation has a real-world application, but I can't remember him saying what it was.  Could be computer graphics, could be a lot of things.  I realize that it is only an issue in a high-dimensional space.  For example, if you had two orthogonal vectors in 3-space, you could compute their cross product cheaply.  I asked at Math SE, and it was not appreciated.  </p>

<p>TLDR:  Just need the application, if any.  You don't have to say how it is computed, but feel free to if you like.  I'll read it.  I know that orthogonal vectors are often easier to work with than oblique vectors, and other very general math facts like that.</p>

CC BY-SA 4.0
2020-04-20T07:09:36.477Z
To name a few: computing triangle normals, creating a basis for normal mapping or scattering rays in path tracing, computing the lookAt matrix (usually for a camera).
lightxbulb
CC BY-SA 4.0
2020-04-20T14:57:45.317Z
Do you only want to know about higher dimensions? Because I know a few uses in 3D, starting with one or two vectors, but don't remember ever needing this for higher dimensions.
Olivier
CC BY-SA 4.0
2020-04-21T01:17:36.547Z
@Olivier  No, 3D is fine.  Please name them.
user13215
CC BY-SA 4.0
2020-04-21T01:17:53.147Z
@lightxbulb  Much appreciated!
user13215
CC BY-SA 4.0
2020-04-21T22:46:13.107Z
It has similar uses to look at in robotics an mechanism design. It has uses in optimisation.
joojaa
CC BY-SA 4.0
2020-04-22T04:32:52.220Z
@joojaa  Cool I will look into those.
user13215
<vectors>
Extending an orthogonal set of vectors (graphics application?)
user13215
# Extending an orthogonal set of vectors (graphics application?)

(Asked by: username_0 on 2020-04-20)

Sorry if this is OT, but I'm wondering if there's a specific graphics technique in which it is required to extend a preexisting orthogonal set of vectors (not necessarily to a full basis, but perhaps so). In a matrix theory lecture, the prof said that this computation has a real-world application, but I can't remember him saying what it was. Could be computer graphics, could be a lot of things. I realize that it is only an issue in a high-dimensional space. For example, if you had two orthogonal vectors in 3-space, you could compute their cross product cheaply. I asked at Math SE, and it was not appreciated.

TLDR: Just need the application, if any. You don't have to say how it is computed, but feel free to if you like. I'll read it. I know that orthogonal vectors are often easier to work with than oblique vectors, and other very general math facts like that.

**Tags:** vectors

> **Comments:**
> **username_1**: To name a few: computing triangle normals, creating a basis for normal mapping or scattering rays in path tracing, computing the lookAt matrix (usually for a camera).  
> **username_2**: Do you only want to know about higher dimensions? Because I know a few uses in 3D, starting with one or two vectors, but don't remember ever needing this for higher dimensions.  
> **username_0**: @username_2  No, 3D is fine.  Please name them.  
> **username_0**: @username_1  Much appreciated!  
> **username_3**: It has similar uses to look at in robotics an mechanism design. It has uses in optimisation.  
> **username_0**: @username_3  Cool I will look into those.  

---

## 1 answers

### Answer by username_2 on 2020-04-21. Score: 1

The most common use is almost certainly computing normal vectors for a surface, using a cross product. Although strictly speaking, this does not quite qualify as the two initial vectors are usually not orthogonal. This is used for shading calculations and various other algorithms. I know of [at least one](https://www.arnoldrenderer.com/research/egsr2013_spherical_rectangle.pdf) where the initial surface is explicitly a rectangle so it would qualify.

The sampling of BRDFs is another application. In many cases, the math is done for a canonical space with the surface normal pointing up and must be transformed to the actual surface. This is done by building a full 3D basis from the surface normal vector.

Anisotropic BRDFs typically have two vectors as input: the surface normal and one vector to define the orientation of anisotropy. Depending on the implementation, it may be assumed to be orthogonal to the normal. Otherwise, it is made orthogonal. Then, again, a full basis is built from those two.

There is a class of ray intersection algorithms which work by projecting the surface in two dimensions. This is done by starting with the ray and generating two more orthogonal vectors which define the projection plane.

This is certainly not an exhaustive list but they are the main ones that came to mind. I am not aware of any uses for higher dimensions but I don't know about every corner of computer graphics either.


---

