26 lines
754 B
Plaintext
26 lines
754 B
Plaintext
attribute vec3 vPosition;
|
|
attribute vec2 vTexCoord;
|
|
attribute vec3 vNormal;
|
|
attribute vec3 vTangent; // Новые атрибуты
|
|
attribute vec3 vBinormal;
|
|
|
|
varying vec2 TexCoord;
|
|
varying vec3 vViewDirTangent;
|
|
|
|
uniform mat4 ProjectionModelViewMatrix;
|
|
uniform vec3 uViewPos;
|
|
|
|
void main() {
|
|
gl_Position = ProjectionModelViewMatrix * vec4(vPosition, 1.0);
|
|
TexCoord = vTexCoord;
|
|
|
|
vec3 viewDirWorld = normalize(uViewPos - vPosition);
|
|
|
|
// Строим матрицу перехода из атрибутов
|
|
// Так как базис ортонормирован, TBN^-1 == TBN_transpose
|
|
vViewDirTangent = vec3(
|
|
dot(viewDirWorld, vTangent),
|
|
dot(viewDirWorld, vBinormal),
|
|
dot(viewDirWorld, vNormal)
|
|
);
|
|
} |