После нахождения пересечения луча с поверхностью (стеной) и выстраивания буфера, хранящего порядок рендеринга этих самых стен, опуская мелочи, движок рендерит текстуры стен чисто как 2д имейджи в плоскости экрана, отсюда и искажения:
Я так и предполагал, что оно имейджами рисует каждую текстурку стены из-за очевидных стыков. Что типа лучи исходят не по каждому столбцу, в отличии от wolf3d, а лишь по началу и концу отдельного кусочка (ячейки, клетки карты) стены.
Но вот интересно, как движок определяет начало и конец этого самого кусочка, в любом случае пришлось бы с итерацией в один пиксель по горизонтали проходиться, чтоб это определить.
Мечта увидеть Зэрушку на таком экране, как в бладшоте, или дюкнюкеме три дэ.(в смысле не на одну треть экрана, а хотя бы на одну вторую экрана)
Добавлено позже:Та и вообще. То, что выдаёт мегадрайв в зеро толерастах да бладшотах далеко не предел, имхо.
Было бы программирование на мегадрайве более доступным, код прогрессивно эволюционировал бы за счёт энтузиастов.
Даже посмотрите, что alone coder вытворяет на спектруме, и это на 3-ёх (с половиной) мегагерцах, да ещё и на 8-ми битном проце, да ещё и адресация видеопамяти мозговыносная.
Да, тут нет AI.
Но даже в том же бладшоте нет толкового AI (за исключением того летающего пацыка, который стрейфится), именно с кучей условий. Грубо говоря пара/тройка условий на каждого бота.