0
$\begingroup$

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.

$\endgroup$
  • 1
    $\begingroup$ 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). $\endgroup$ – lightxbulb Apr 20 at 7:09
  • $\begingroup$ 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. $\endgroup$ – Olivier Apr 20 at 14:57
  • $\begingroup$ @Olivier No, 3D is fine. Please name them. $\endgroup$ – user13215 Apr 21 at 1:17
  • $\begingroup$ @lightxbulb Much appreciated! $\endgroup$ – user13215 Apr 21 at 1:17
  • $\begingroup$ It has similar uses to look at in robotics an mechanism design. It has uses in optimisation. $\endgroup$ – joojaa Apr 21 at 22:46
1
$\begingroup$

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 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.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Awesome. I'd upvote if I could. Thank you. $\endgroup$ – user13215 Apr 22 at 1:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.