Documentation de Gambas - /comp/gb.opengl/gl/frustum

/comp/gb.opengl/gl/frustum

# Gl.Frustum (gb.opengl)

Static Sub Frustum ( Left As Float, Right As Float, Bottom As Float, Top As Float, Near As Float, Far As Float )

Multiplie la matrice courante par une matrice de perspective

### Paramètres

left, right

  Spécifient les coordonnées pour les plans de découpage (clipping) verticaux gauches et droits.

bottom, top

  Spécifient les coordonnées pour les plans de découpage horizontaux bas et hauts.

nearVal, farVal

  Spécifient les distances pour les plans de découpage proches et lointains. Ces deux distances doivent être positives.

### Description

Gl.Frustum décrit une matrice qui produit une projection en perspective.
La matrice courante (voir Gl.MatrixMode) est multipliée par cette matrice et le résultat remplace la matrice en cours, comme si Gl.MultMatrix avait été appelé avec cette matrice comme argument :

2 ⁢ nearVal right - left 0 A 0 0 2 ⁢ nearVal top - bottom B 0 0 0 C D 0 0 -1 0

A `` right + left right - left

B `` top + bottom top - bottom

C `` - farVal + nearVal farVal - nearVal

D `` - 2 ⁢ farVal ⁢ nearVal farVal - nearVal

Typiquement, le mode matriciel est Gl.PROJECTION, et left bottom - nearVal et right top - nearVal specifient les points sur le plan de découpage proche qui seront cartofraphiés vers les coins enbas à gauche et en haut à droite de la fenêtre, en supposant que le point de vue est situé en (0, 0, 0). - farVal spécifient les points sur le plan de découpage proche qui sont cartographiés vers les coins inférieur gauche et supérieur droit de la fenêtre, en supposant que le point de vue est situé en (0, 0, 0). - farVal spécifie la position du plan de découpage lointain. Near et far doivent être positifs.

Utilisez Gl.PushMatrix et Gl.PopMatrix pour sauvegarder et restaurer la pile de matrice courante.

### Notes

La précision du tampon de profondeur (Depth) est affectée par les valeurs spécifiées pour nearVal et farVal. Plus le rapport de farVal à nearVal est grand, moins bonne sera l’efficacité du tampon de profondeur à distinguer entre deux surfaces proches l’une de l’autre. Si r `` farVal nearVal

grossièrement log 2 ⁡ r bits de précision du tampon de profondeur seront perdus. Comme r tend vers l’infini quand nearVal s’approche de zéro, nearVal ne doit jamais être mis à zéro.

### Erreurs

Gl.INVALID_VALUE est généré si nearVal ou farVal ne sont pas positifs, ou si left = right, ou bottom = top, ou near = far.

Gl.INVALID_OPERATION est généré si Gl.Frustum est exécuté entre un appel à Gl.Begin et l’appel correspondant à Gl.End.

### Gets Associés

Gl.Get avec l’argument Gl.MATRIX_MODE

Gl.Get avec l’argument Gl.MODELVIEW_MATRIX

Gl.Get avec l’argument Gl.PROJECTION_MATRIX

Gl.Get avec l’argument Gl.TEXTURE_MATRIX

Gl.Get avec l’argument Gl.COLOR_MATRIX

### Voir aussi

- Gl.Ortho,

- Gl.MatrixMode, Gl.MultMatrix,

- Gl.PushMatrix,

- Gl.Viewport

Voir la documentation originale sur le site OpenGL