Линейное/нелинейное наложение текстуры на искаженный четырехугольник

В моем предыдущем вопросе было установлено, что при текстурировании четырехугольника грань разбивается на треугольники, а координаты текстуры интерполируются аффинным образом.

К сожалению, я не знаю, как это исправить. Предоставленная ссылка была полезной, но она не дает желаемого эффекта. Автор заключает :«Обратите внимание, что изображение выглядит так, как будто оно представляет собой длинный прямоугольный четырехугольник, уходящий вдаль… Это может сбивать с толку… из-за «ложного восприятия глубины», которое это создает».

Что я хотел бы сделать, так это сохранить исходное масштабирование текстуры при текстурировании. Например, в трапециевидном случае я хочу, чтобы вертикальный интервал текселей был таким же, как (, созданный с помощью программы рисования ):

. Обратите внимание, что из-за того, что вертикальное расстояние идентично, но очевидное искажение четырехугольника,прямые линии в пространстве текстуры больше не являются прямыми линиями в мировом пространстве. Таким образом, я считаю требуемое отображение нелинейным.

Вопрос :в том, возможно ли это вообще в конвейере с фиксированной функцией ? Я даже не уверен, какой именно «правильный ответ» для более общих квадроциклов; Я предполагаю, что функции интерполяции могут очень быстро усложниться, и я понимаю, что «сохранение исходного масштабирования» — это не совсем алгоритм. Мировые -космические треугольники больше не являются линейными в текстурном пространстве.

Кроме того, я не совсем не совсем понимаю 3 rd и 4 th текстурные координаты; если бы кто-то мог указать мне на ресурс, это было бы здорово.

8
задан Community 23 May 2017 в 12:09
поделиться