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

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

Страницы: 1 2 3 4 58 Следующая »
#30
21:59, 7 авг. 2019

}:+()___ [Smile]
> Это будет выглядеть как прыжок, а не как поворот

Если голова не меняет вертикальной координаты, то изменение вертикального угла обзора эквивалентно вертикальному сдвигу картинки. А искажения - они как раз и были видны на больших углах/близких расстояниях в первых игрушках, где появилась возможность вмотреть вверх/вниз (типа Еретика/Хексена).


#31
23:38, 7 авг. 2019

Ну вот я смотрю из-за угла на коридор и вижу половину спрайта врага, а вторая стенкой закрыта. Как это реализовано? Как вообще определяется размер и положение спрайта?

#32
23:40, 7 авг. 2019

Dmitry_Milk
> Это будет выглядеть как прыжок, а не как поворот
вот тоже об этом думал. Тем более, что тогда нельзя будет смотреть в потолок или пол, но такое походу только в чистом 3D можно сделать

#33
23:46, 7 авг. 2019

1 frag / 2 deaths
> Змейку, тетрис, сапёр, арканоид напиши сначала

Ты это мне? У меня целый стрим есть, где я пишу змейку и еще куча стримов, где делаю кримсонленд. На следующем стриме планирую сделать тетрис и трон по сети.

3.5 года отработал в Boolat Games, но работал только над изометрическими и играми с боковой проекцией. А вот с FPS никогда не сталкивался и очень интересно, как же оно внутри все крутится.

Вот, например, Quake. Там уже чистый OpenGL или тоже что-то интересное?

#34
0:11, 8 авг. 2019

Robotex
> У меня целый стрим есть, где я пишу змейку и еще куча стримов, где делаю кримсонленд
сказано - пол дела сделано, теперь осталось доделать вторую половину - показать стримы

Robotex
> А вот с FPS никогда не сталкивался и очень интересно, как же оно внутри все крутится.
да вроде сейчас 2019 год, все что хочеш давно можно познать

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

sinoby
> показать стримы

(но тут я малость наговнокодил ибо цель была успеть закончить к утру :) )



А вообще тут про это даже тема есть: https://gamedev.ru/flame/forum/?id=245496 Дискуссия там влияет на то, как будет развиваться канал :)


sinoby
> все что хочеш давно можно познать

Чем я и занимаюсь, бро :) Сюрпрайз

Те ссылки, что мне тут накидали, ответили очень на многие вопросы. Я как будто просветление получил )) Сейчас попробую что-то накодить

#36
0:35, 8 авг. 2019

Robotex
Тебе обязательно именно честный рейтрес? Просто, как по мне, можно это написать и на GPU (взять тот же OpenGL или ещё какое-то GAPI), как минимум это легче и быстрее в плане производительности будет

Это чисто мнение, я на практике такое ни разу не делал

#37
(Правка: 0:55) 0:42, 8 авг. 2019

1 frag / 2 deaths
> Можно тупо сдвигать экран, в ограниченном угле
Стены останутся вертикальными - будет выглядеть как приседание

Dmitry_Milk
> Если голова не меняет вертикальной координаты, то изменение вертикального угла обзора эквивалентно вертикальному сдвигу картинки
Вертикальному сдвигу игрока != вертикальному сдвигу картинки

#38
0:43, 8 авг. 2019

Robotex
> Вот, например, Quake. Там уже чистый OpenGL или тоже что-то интересное?
В первом, если мне не изменяет память, есть софтварный рендер и рендер на OpenGL (хотя может это порт был, хз. то помню что-то слышал аля QuakeGL ).

Если сказал что-то не так, то поправьте

Не знаю как другим, но для меня движки quake и hl2 идеальные. много чего интересного можно из исходных кодов (в случае hl2 я заглядываю в утекшие сорсы Source Engine 2007) для себя познать, а ещё мне их архитектура движка импонирует :)
#39
(Правка: 0:54) 0:45, 8 авг. 2019

Robotex
> А как по-простому реализовать изменение вертикального угла?
В Duke3D на основе Doom 2 както сделали

> как они спрайты врагов и попадания от пуль рисуют?
Спрайты врагов - BitBlt или копирование в память, попадания от пуль - спрайты дырок и крови

> Ну вот я смотрю из-за угла на коридор и вижу половину спрайта врага, а вторая стенкой закрыта. Как это реализовано?
Z-buffer либо рисование в порядке приближения к игроку
> Как вообще определяется размер и положение спрайта?
Размер делится на Z и домножается на нужный коэффициент,
координаты трансформируются смещением и матрицей поворота 2x2 и также делятся на Z

> тогда нельзя будет смотреть в потолок или пол, но такое походу только в чистом 3D можно сделать
Duke такого не умел, да

> Quake. Там уже чистый OpenGL или тоже что-то интересное?
1,2 - софтрендер, дальше GL

По софтрендеру подробно серия книг Борескова, Шикина

#40
4:34, 8 авг. 2019

Ну, вроде бы неплохо получается:


Ray Casting | Как работает графика в Wolf3D/Doom?



Добавить стрельбу и монстров и считай готовая игра :)

#41
5:00, 8 авг. 2019

Robotex
Теперь текстуры и освещение простое по cos(fi) и дальности

#42
5:35, 8 авг. 2019

Aslan
> Теперь текстуры и освещение простое по cos(fi) и дальности
Знать бы еще как это сделать )) Надо читать

#43
(Правка: 6:34) 6:33, 8 авг. 2019

Aslan
> В Duke3D на основе Doom 2 както сделали

Duke3D не был основан на Doom 2, более того он исповедовал очень другой подход к рендеру на глобальном уровне.
Так в Doom огромная масса усилий была направлена Кармаком на BSP-рассечение лабиринта для оптимизации отрисовки от ближнего-к-дальнему. Этот подход довлел над остальным рендером и он является причиной того, что уровень конвертировался из формата редактора в формат пригодный для скармливания игровому движку. Характерной особенностью после BSP-рассечения становилось то, что уровень не мог быть изменён во время игры геометрически никак иначе как изменением высоты пола/потолка секторов. Это та самая причина почему там все двери - слайдеры вверх/вниз без вариантов как и лифты.
Сильверман в Duke пошёл вообще иным путём - он просто рендерил сектора начиная с того в котором игрок находится при этом проверяя какие соседние сектора видны на экране через соединяющие с ними сегменты и рекурсивно запуская алгоритм дальше - это то что сейчас называется портальный движок. С портальным движком дюк от рождения не только заполучил подвижные сектора - которые могли "ездить" свободно внутри других секторов - те же самые распахивающиеся двери - из этой серии - но так же поулчил возможность отрисовывать "невозможную геометрию" - в одном из секретных уровней оригинальной игры можно заглядывая через разные проёмы в одно и то же геометрически место можно было там видеть разные 4 комнаты - и даже бегать в них. Еще одним побочным эффектом стало то, что уровни пригодны к загрузке в движок прямо со стапелей редактора - любой из имеющихся оригинальных уровней можно открыть в редакторе и посмотреть как они устроены.

#44
6:59, 8 авг. 2019

=A=L=X=
Можно же проходить лучом по сектору и переходить на соседний сектор. Притом сектора могут быть наклонные

Страницы: 1 2 3 4 58 Следующая »
ПрограммированиеФорумГрафика