|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Aleksey Malov 2:5052/30.8 04 Nov 2001 21:20:56 To : Alex Astafiev Subject : Курсач -------------------------------------------------------------------------------- Sun 4 Nov 2001, at 07:17:35 Alex Astafiev told Alexey Desyatnik about Курсач. >>> Shadows, Light.. AD>> Hе верю. Просто не верю. Это HЕ возможно - без применения обходных AD>> маневров и упрощений задачи, по крайней мере. Естественно, кое-что считается заранее, кое что фейкается. Зато реалтайм (можно phong shading сделать на всяких плюшках до 7-8 fps) на такой низкой тактовой частоте (3.5 MHz) и процессоре начала 80-х годов. AA> Конечно, во-первых, Grayscale, то есть 1 канал всего, во вторых, разрешение AA> 48x64 пикселей всего. Иногда поменьше ;) Иногда в 8 или 36 цветах. ;) AD>> Сам работал с такой AD>> машинкой, ее производительность знаю. AA> Я тебе мылом послал все рекомендации как в это поверить, увидев собственными AA> глазами. Вот только ты не ту дему указал. Рейкастинг в Stellar Contour, а не в Tryptomine Dream. AD>> Hу это не совсем то. Точнее, совсем не то. AA> Vivid прислал мне статью, написаную его руками. Это ТО... :) Статью не дам, AA> спрашивай у него самого. Чтобы не было неоднозначностей расскажу вкратце, как у меня aka Doom рейкастингом на Спектруме сделан. Разрешение - 64*32 в 8 цветах (мало, но что поделать). Камера может перемещаться в 4-х направлениях и вращаться вокруг вертикальной оси (вот такое сделано упрощение). Карта состоит из блоков. Из фокуса камеры пускаются 64 луча (причем я "прыгаю" сразу же через блок). Для каждого луча находится его пересечение со стенкой и по полученным данным принимается решение, какой столбец текстуры с каким scale'ом отрисовать. Из-за применения fixed point арифметики, конечно, заметны погрешности расчетов, но важен сам принцип. Дальность трассировки ограничена 7 блоками карты. Hа трассировку одного луча и отрисовку столбца текстуры затрачивается около 1600 тактов (на прыжок через блок со всеми проверками тратится около 85 тактов Z80). Причем осложняет всю задачу тот факт, что вывод приходится производить в т.н. "мультиколоре", что подразумевает под собой точную синхронизацию с ходом кадровой развертки. Т.е. на трассировку (не важно, через сколько блоков произойдет столкновение со стенкой) и отрисовку столбца текстуры должно затрачиваться ВСЕГА фиксированное число тактов. В результате пришлось вручную просчитывать время выполнения каждой ветви программы. Итоговый FPS - 16.7 в разрешении 64*32*8. Вот возьму и из принципа какую-нибудь байду с разложением белого цвета в спектр в реалтайме сделаю на 3.5 мегагерца. Пусть в низком разрешении, пусть кое-где пофейкать придется. Bye, Alex. WBR, Vivid^Brainwave. --- Lara Croft за 4.50 $. * Origin: http://brainwave.dax.ru (2:5052/30.8) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/2767048e37c8.html, оценка из 5, голосов 10
|