Попытка 512. Подвинул камеру немного ближе, увеличил область рисования с 256x192 до 320x256 и вот что получилось. Надо повышать точность вычислений, но время рисования и так уже 1049 секунд.
Попытка 512. Подвинул камеру немного ближе, увеличил область рисования с 256x192 до 320x256 и вот что получилось. Надо повышать точность вычислений, но время рисования и так уже 1049 секунд.
parallelno (26.11.2023), svofski (26.11.2023), tnt23 (27.11.2023)
Да, неожиданные эффекты проявляются. Особенно интересно, как пол будто загибается кверху из-за алиасинга текстур. Вблизи так ну очень красиво.
Больше игр нет
Алиасинг вдали на мой взгляд не самый показательный, он и в 256x192 заметен. Если посмотреть на три картинки с тремя разными библиотеками плавучки по ссылке, которую раньше приводил, то чем больше бит в мантиссе, тем приятнее выглядит отражение пола в левом шаре. И если сравнить "свои" 256x192 и 320x256, то в 320 клетки в левом отражении чуть сильнее "погрызены".
Да, пожалуй погрызенность просто притягивает к себе ненужное внимание и замечаешь то, чего можно было бы и не заметить.
Больше игр нет
Пригляделся к тем трем картинкам - там и в правом шаре влияние числа бит мантиссы очень заметно. Получается для этой задачи динамический диапазон плавучки не так важен, как число бит мантиссы.
v3 для 8080 обогнал выложенный вариант для z80 (8:25 против примерно 8:35).
Ютуба, в которой затронуты некоторые ранее поднимавшиеся (и не поднимавшиеся) вопросы связанные с рейстрейсингом: бейсик (очень специфический для калькулятора с z80), полутона, С++ и асм на ez80. И там есть ссылки. Возможно кто-нибудь вдохновится и сделает что-нибудь рейтрейсинговое с оттенками для вектора.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Любителям изощрений версия трассировщика лучей для конфига Vector06c-smp Emu. Четные строки рендерит один проц, нечетные другой, соответственно работает в 2 раза быстрее v3 - 252.46 секунды (4 минуты 12.46 секунды).
Стоит отметить, что нельзя запустить конфиг smp дропнув rom в окно Emu (в этом случае запустится стандартный вектор). При старте Emu выбираем Vector06c-smp, потом для запуска программы надо использовать штатные для вектора способы. Проще всего выбрать через правую иконку Change External ROM, потом F2+F11, потом F12. В обычном конфиге работать будет, но нарисует только половину строк и не выведет время работы.
Improver (02.12.2023)
Немного оптимизировал вариант 8080, что позволило преодолеть границу 500 секунд. Добавил вариант 8085 для 6128, но там мало оптимизаций специально для 8085, основной выигрыш за счет более быстрого выполнения "старых" команд.
Гигачад-16 мог бы исполнять 16 параллельных рейтрейсеров.
Больше игр нет
При наличии продвинутой операционки, которая могла бы распределять задачи по ядрам, многопоточность имела бы смысл (при наличии еще и многопроцессорных векторов), но на одном проце накладные расходы на переключение контекстов вряд ли скажутся положительно.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)