Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: Ambal-3D

  1. #1
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,806
    Спасибо Благодарностей отдано 
    642
    Спасибо Благодарностей получено 
    1,773
    Поблагодарили
    1,023 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Ambal-3D

    Ambal-3D - единственный известный пример рейкастинга для обычного вектора (т.е. если не считать вольфа в эмуляторе спектрума).
    Автор (Роман Кузнецов) сам написал в комментариях и по профайлеру видно, что заливку стен нужно ускорить. Попытался сделать это и попутно ускорил процедуры умножения, но основной эффект именно от оптимизации закраски. В версии для ВМ1 закраска еще чуть быстрее. Затронутые процедуры можно еще ускорить, но уже не так заметно. Неплохо бы еще оптимизировать деление.
    Больше всего напрягают видные в некоторых местах при определенных ракурсах "левые" вертикальные линии, но не знаю, можно ли это поправить малой кровью.
    Возможно автор найдет исходники, было бы здорово.
    Последний раз редактировалось ivagor; 07.04.2013 в 08:54. Причина: Убрал старый вариант в связи с выкладыванием нового

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,806
    Спасибо Благодарностей отдано 
    642
    Спасибо Благодарностей получено 
    1,773
    Поблагодарили
    1,023 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Оптимизировал интерполяцию и деление, также вытащил из бинарника текст с комментариями и приложил в виде текстового файла.
    Последний раз редактировалось ivagor; 13.04.2013 в 15:29. Причина: Убрал вложение в связи с выкладыванием новой версии

  4. #3
    Guru
    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сколько весит в тактах сканирование, интерполяция и вывод?
    У меня 1024 угла, 90 градусов обзор, 256 столбцов.
    По умолчанию сканируется только каждый 16-й столбец, но если соседние сканы попали на разные стены, то в середине снова сканируется, и так далее, рекурсивно.
    В среднем на экран получается 50 сканов.
    В среднем один экран обсчитывается 80000 тактов, выводится 160000 тактов.

  5. #4
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,806
    Спасибо Благодарностей отдано 
    642
    Спасибо Благодарностей получено 
    1,773
    Поблагодарили
    1,023 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alone Посмотреть сообщение
    Сколько весит в тактах сканирование, интерполяция и вывод?
    Сейчас не готов ответить, если еще буду копать эту штуку - попробую измерить.

    Цитата Сообщение от alone Посмотреть сообщение
    У меня 1024 угла, 90 градусов обзор, 256 столбцов.
    По умолчанию сканируется только каждый 16-й столбец, но если соседние сканы попали на разные стены, то в середине снова сканируется, и так далее, рекурсивно.
    В Ambal3D.txt есть информация от автора о практически всех этих характеристиках.

  6. #5
    Activist Аватар для PPC
    Регистрация
    01.03.2011
    Адрес
    Stamford
    Сообщений
    335
    Спасибо Благодарностей отдано 
    46
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Интересно, сколько сожрёт на Векторе текстурирование стенок.

  7. #6
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,806
    Спасибо Благодарностей отдано 
    642
    Спасибо Благодарностей получено 
    1,773
    Поблагодарили
    1,023 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Wolf в векторовском эмуляторе спектрума дает 7-11 fps (в среднем ближе к 8-9, крайние взбрыки 6-12). Думаю при грамотном переводе на ВМ80 можно попытаться проиграть не более чем в 1,5-2 раза.
    Последний раз редактировалось ivagor; 07.04.2013 в 17:48.

  8. #7
    Guru
    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А как работает эмулятор?

  9. #8
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,806
    Спасибо Благодарностей отдано 
    642
    Спасибо Благодарностей получено 
    1,773
    Поблагодарили
    1,023 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Это аппаратно-программное решение - Кишиневский адаптер z80 + Эмулятор спека (последний вариант тут). В адаптере несколько программно активируемых заточек под спек, главные две из которых - NMI по обращению к ряду "околоспековских" портов и "перепутывание" адресов, чтобы строение векторовского экрана выглядело для процессора как спековское. Т.е. ничего сверхъестественного.

  10. #9
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,806
    Спасибо Благодарностей отдано 
    642
    Спасибо Благодарностей получено 
    1,773
    Поблагодарили
    1,023 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Немного цифр по результатам демонстрационного прогона (указано полное время расчета и отрисовки кадра, составляющие как-нибудь в другой раз):

    Оригинал
    min 465064 тактов (6.45 FPS)
    max 1141092 тактов (2.63 FPS)

    p6 - версия для ВМ80 (вариант для ВМ1 быстрее, но количественно не измерял)
    min 364596 тактов (8.23 FPS)
    max примерно 866000 тактов (3.46 FPS)

    Понятное дело, что векторовские тормоза вносят свой вклад, на компе с прозрачным доступом ВМ80 к памяти было бы меньше тактов.
    Последний раз редактировалось ivagor; 08.04.2013 в 18:58.

  11. #10
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,806
    Спасибо Благодарностей отдано 
    642
    Спасибо Благодарностей получено 
    1,773
    Поблагодарили
    1,023 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Затронутые процедуры можно еще ускорить, но уже не так заметно.
    Надо признать - тут я погорячился, можно и заметно. Но наличие визуальных артефактов сильнее портит впечатление, чем недостаточная скорость
    Последний раз редактировалось ivagor; 10.04.2013 в 19:37.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •