Quelle est la différence entre le matériau et la texture?

En infographie, Quelle est la différence entre le matériau et la texture?

25
demandé sur user496949 2010-11-24 03:41:03

4 réponses

Dans OpenGL, un matériau {[2] } est un ensemble de coefficients qui définissent la façon dont le modèle d'éclairage interagit avec la surface. En particulier, des coefficients ambiants, diffus et spéculaires pour chaque composante de couleur (R,G,B) sont définis et appliqués à une surface et effectivement multipliés par la quantité de lumière de chaque type/couleur qui frappe la surface. Un coefficient d'emmisivité final est ensuite ajouté à chaque composant de couleur qui permet aux objets d'apparaître lumineux sans interagir réellement avec d'autres objets.

Une texture , d'autre part, est un ensemble de données bitmap (image) à 1, 2, 3 ou 4 dimensions qui est appliqué et interpolé sur une surface en fonction des coordonnées de texture aux sommets. Les données de Texture modifient la couleur de la surface si l'éclairage est activé ou non (et en fonction du mode de texture, par exemple décalque, moduler,etc.). Les Textures sont fréquemment utilisées pour fournir des détails de niveau de sous-polygone à une surface, par exemple en appliquant une brique et un mortier répétés texture à un quad pour simuler un mur de briques, plutôt que de modéliser la géométrie de chaque brique individuelle.

Dans le modèle OpenGL classique (pipeline fixe), les textures et les matériaux sont quelque peu orthogonaux. Dans le nouveau monde des shaders programmables, la ligne s'est un peu floue. Souvent, les textures sont utilisées pour influencer l'éclairage d'autres façons. Par exemple, les cartes de bosse sont des textures qui sont utilisées pour perturber les normales de surface pour effectuer l'éclairage, plutôt que de modifier la couleur des pixels directement en tant que régulière" image " texture serait.

33
répondu Drew Hall 2010-12-09 23:01:33

La question suggère une incompréhension commune de divers concepts d'infographie. C'est un né de la pensée et du codage pré-shader.

Une texture n'est rien de plus qu'un conteneur pour une série d'une ou plusieurs images, où une image est un tableau de quelque dimensionnalité (1D, 2D, etc.) de valeurs, où chaque valeur peut être un vecteur de 1 à 4 Nombres. Les Textures ont également des techniques spéciales pour accéder à des valeurs qui permettent l'interpolation et la minimisation de aliasing artefacts de l'échantillonnage.

Une texture peut contenir des couleurs, mais les textures n'ont pas pour contenir des couleurs. Les Textures peuvent être utilisées pour faire varier les paramètres sur une surface d'objets, mais ce n'est pas toutes les textures qui peuvent être utilisées.

Les Textures n'ont aucune association directe avec des "matériaux"; vous pouvez les utiliser pour une grande variété de choses (ou rien du tout).

Un matériau est un concept d'éclairage. Étant donné une lumière particulière et un point sur la surface, l'intensité (ie: couleur) de la lumière réfléchie à partir de cette surface à ce point est régie par une équation d'éclairage. Cette équation est fonction de nombreux paramètres. Mais ces paramètres sont regroupés en deux catégories.

Une catégorie de paramètres d'équation de lumière sont les paramètres de lumière. Ceux-ci décrivent les caractéristiques de la source lumineuse. Lumières de Point vs. lumières directionnelles vs. Spots. L'intensité lumineuse (encore une fois: couleur) est un autre paramètre. Puisque l'intensité elle-même peut varier en fonction de l' direction du point de surface par rapport à la lumière (pensez lampes de poche ou projecteurs), l'intensité peut être accessible à partir d'une texture . Voilà combien de jeux projettent des lampes de poche sur une pièce sombre.

L'autre catégorie de paramètres d'équation de lumière décrit les caractéristiques de la surface à ce point. Ces paramètres sont appelés material. Les paramètres du matériau, ou matériau pour faire court, décrivent les propriétés importantes de la surface au point en question. Le normal à ce moment-là est important. Il y a aussi la réflectance diffuse (couleur), la réflectance spéculaire, la brillance spéculaire (exposant pour Phong / Blinn-Phong) et divers autres paramètres, en fonction de la complexité de votre équation d'éclairage.

D'où viennent ces valeurs? Les paramètres de lumière ont tendance à être fixés dans le monde. Les lumières ne bougent pas par objet (bien que si vous faites de l'éclairage dans l'espace objet, chaque objet aurait sa propre position de lumière). L'intensité de la lumière peut varier. Mais c'est surtout ça; tout le reste se passe entre les images, pas dans le rendu d'une seule image. Donc, la plupart des paramètres de lumière sont des uniformes de shader.

Les paramètres matériels peuvent provenir de diverses sources. L'utilisation d'un uniforme de shader signifie effectivement que tous les points de la surface ont la même valeur. Ainsi, la couleur diffuse pourrait provenir d'un uniforme, ce qui donnerait à la surface une couleur uniforme (modifiée par l'éclairage, bien sûr). Vous pouvez faire varier les paramètres de matériau par sommet, en passant en sommet d'attributs ou de calcul à partir d'autres attributs.

Ou vous pouvez fournir un paramètre en mappant une texture à une surface. Ce mappage implique d'associer des coordonnées de texture avec des positions de sommet, de sorte que la texture est directement attachée à la surface. La texture est échantillonnée à cet emplacement pendant le rendu, et cette valeur est utilisée pour effectuer l'éclairage.

Les textures les plus courantes que vous connaissez, les "textures de couleur", font simplement varier le diffus la réflectance de la surface. La texture fournit la couleur diffuse à chaque point le long de la surface.

Ce n'est pas la fonction seulement des textures. Vous pouvez tout aussi facilement varier la brillance spéculaire sur la surface. Ou l'intensité de la lumière. Ou quoi que ce soit d'autre.

Les Textures sont des outils . Les matériaux ne sont qu'un groupe de paramètres d'équation de lumière.

14
répondu Nicol Bolas 2016-08-14 17:50:59

Ce que je pense de ces termes:

Une texture est une image qui est mappée sur un objet 3D.

Un matériau simule un matériau physique. Prenez "verre" par exemple. Vous ne pouviez pas produire un effet de verre avec une carte de texture simple. Il a des paramètres comme la façon dont il reflète et réfracte la lumière sous différents angles. Un matériau pourrait également être une simple carte de texture, donc parfois les termes signifient la même chose.

11
répondu JOTN 2010-11-24 00:57:16

Bien que les termes puissent être utilisés de manière interchangeable, il est courant de faire référence à une image bitmap en tant que texture.

Alors qu'une texture entièrement définie, avec des propriétés d'éclairage, un mappage de bosse, etc., serait plus généralement appelée un matériau.

Mais je dois souligner que selon les outils utilisés, leur terminologie sera utilisée par la communauté concernée.

6
répondu ocodo 2010-11-24 00:45:44