Opengl & glsl (vec4 * vec4) избыточный - PullRequest
0 голосов
/ 06 августа 2020

Я читаю Руководство по программированию OpenGL, Девятое издание.

У меня проблемы с этим:

#version 420 core
uniform mat4 model_matrix;
…
layout (location = 0) in vec4 position;
…
void main(void)
{
vec4 pos = (model_matrix * (position * vec4(1.0, 1.0, 1.0, 1.0)));
…
};

Итак, какой смысл умножать «позицию» на vec4 ( 1.0, 1.0, 1.0, 1.0)? Результатом будет "позиция" с vec4 (1.0, 1.0, 1.0, 1.0) или без него.

1 Ответ

0 голосов
/ 06 августа 2020

Я проверил это в Красной книге, и там нет конкретной c причины, тогда это просто масштаб для позиций вершин в случае, если этот вектор отличается от Vector4.One, и вы хотите сделать масштаб, но если это просто вектор единиц, в этом нет необходимости, и вы можете просто удалить избыточность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...