Войти
ПрограммированиеФорумГрафика

Как работает графика в Wolf3D/Doom? (5 стр)

Страницы: 14 5 6 7 8 Следующая »
#60
14:01, 8 авг. 2019

1 frag / 2 deaths
> Размыливание текстур по-анриловски - да, бесплатно. Нет там билинейки.

я говорил про честную билинейку, а не то как в U


#61
14:09, 8 авг. 2019

innuendo
> я говорил про честную билинейку
Правда?
> это был баланс между честной билинейкой и хаком
А я думал, что ты про этот анриловский баланс. Ну, потому что ты сам так написал.

#62
(Правка: 14:36) 14:35, 8 авг. 2019

Ну в общем со смотрением вверх/вниз вроде ясно: горизонт у нас теперь не посередине, а смещается выше/ниже, в зависимости от расстояния и вертикального угла обзора.

И порталы надо сделать, для рекурсивного рейкаста, чтобы были окна, двери и этажи )

А как в дюке при этом снаряды летят? Все равно по прямой?


А как реализуются наклонные поверхности?

#63
14:50, 8 авг. 2019

А воду они как сделали?

#64
(Правка: 16:24) 15:13, 8 авг. 2019

Robotex
> Ну в общем со смотрением вверх/вниз вроде ясно: горизонт у нас теперь не посередине, а смещается выше/ниже, в зависимости от расстояния и вертикального угла обзора
Это выглядит как приседание
В дюке при наклоне стены отклонялись
> И порталы надо сделать, для рекурсивного рейкаста, чтобы были окна, двери и этажи )
Портал = открытая граница между секторами
> А как в дюке при этом снаряды летят? Все равно по прямой?
Мгновенные снаряды - рэйкаст, медленно летящие - повторяющийся рэйкаст отрезка в пределах тика физ движка

> А как реализуются наклонные поверхности?
Найденное пересечение (X,Y) луча с границей сектора в 2D подставляешь в уравнение плоскости сектора Z=A*X+B*Y+C
Уравнение выводишь из трех точек или нормали, смотря как заданна плоскость
Либо линейно интерполируешь высоту между двумя ближайшими вершинами стороны, отрезок которых пересек трассирующий луч

Пересечение луча с ВЫПУКЛЫМ сектором можно считать за log(N).
Т.к. вершины сектора сортированны по углу, то ищешь пару левее/правее луча бин поиском.
При этом если начало луча вне сектора - то 2 пересечения, внутри - одно нижняя (для пола) граница экрана. Отрезок между ними рисуешь на экране

Для текстуририрования надо найти текст координаты (U,V) пересечений (также интерполяцией между 2мя вершинами) -
они = (X,Y) * (поворот_и_скэйл_текстуры), делишь на Z
U/=Z;V/=Z;OZ=1./Z;
Проходя по найденному вертикальному отрезку линейно интерполируешь U,V,OZ, тогда текс координаты =(U/OZ, V/OZ)

#65
15:29, 8 авг. 2019

Aslan
> Это выглядит как приседание
Нет.
Aslan
> В дюке при наклоне стены отклонялись
В дюке тупо сдвигается горизонт, никуда там стены не отклонялись. При наклонах головы вертикальные стены оставались вертикальными.
В ютубе - современные порты.

#66
(Правка: 16:01) 15:51, 8 авг. 2019

1 frag / 2 deaths
Нет
https://zdoom.org/wiki/Y-shearing
Изображение

#67
15:52, 8 авг. 2019

Aslan
ты осознаешь, что Id Tech и Build это разные движки от разных компаний?

#68
16:03, 8 авг. 2019

Aslan
> Нет
> https://zdoom.org/wiki/Y-shearing
Ух ты, ещё и красный градиент! И текстуры какие классные! И это в 96 году! Вот ведь техника какая была!!!

#69
16:07, 8 авг. 2019

1 frag / 2 deaths
Уж какое нашел с наклоном

#70
16:08, 8 авг. 2019

Aslan
Ты в состоянии отличить оригинальный рендер от современного опенгл-порта, в котором может быть что угодно?

#71
(Правка: 16:20) 16:18, 8 авг. 2019

1 frag / 2 deaths
Тут обсуждаем рендер, у меня нет времени ставить дюк, чтобы фоткать для тебя

#72
16:21, 8 авг. 2019

Aslan
> Тут обсуждаем рендер
так мы обсуждаем тут примитивные рендеры, без настоящего 3D и тем более OpenGL

#73
(Правка: 16:26) 16:26, 8 авг. 2019

Robotex
> так мы обсуждаем тут примитивные рендеры, без настоящего 3D и тем более OpenGL
А я о чем, по твоему, писал? Или не читатель?

#74
16:28, 8 авг. 2019

Aslan
> Тут обсуждаем рендер, у меня нет времени ставить дюк, чтобы фоткать для тебя
Может, ты всё-таки поставишь Дюк в Досбокс и посмотришь, прежде чем спорить, а?

Aslan
> А я о чем, по твоему, писал? Или не читатель?
Судя по скрину из нового порта - я вообще хз, о чём ты писал XDDDD

Страницы: 14 5 6 7 8 Следующая »
ПрограммированиеФорумГрафика