У меня проблема с вычислением экранных координат вершины. это не специально проблема webgl, более общая проблема с 3D-графикой.webgl - координаты модели с координатами экрана
последовательности матричных преобразований, Im, используя это:
result_vec4 = perspective_matrix * camera_matrix * model_matrix * vertex_coords_vec4
model_matrix является преобразованием вершины в локальной системе координат в глобальную систему сцены коорда. , так что я понимаю, что конечный результат_vec4 находится в пространстве клипов? который затем должен находиться в диапазоне [-1,1]. который не является тем, что Im получает ... result_vec4 просто заканчивается, содержащим некоторые стандартные значения для коордов, не соответствующие правильному расположению экрана вершины.
есть ли какие-либо идеи относительно того, что может быть проблемой здесь? Большое спасибо за любые мысли.
result_vec4.w имеет значение «! = 1»? Я также не понимаю, что вы имеете в виду, когда говорите: «... обеспечивая перспективную матрицу, которая достигает этого». Большое спасибо за ответ :) – deepblue
@deepblue result_vec4.w имеет некоторое значение «! = 1»? это происходит после проекции (деления). Если это произойдет, особенно если компилятор предварительно вычислит 1/w, то используйте продукты. Значение должно быть близко к 1.f. Я удалю запутанное «предоставление перспективы_матрицы, которая достигает этого» –
Вопрос «! = 1», который я задал, был запутанным. все в порядке, и работает так, как я ожидаю. Я просто подумал, что «w» будет иметь 1 значение, поэтому я был смущен, почему мы должны делиться с 1 ... но это не значение, поэтому оно работает. спасибо за ваш ответ, вы много помогли :). – deepblue