Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Немного софтверного рендеринга (4 стр)

Немного софтверного рендеринга (4 стр)

Поделиться

Страницы: 1 2 3 4 5 6 7 8 Следующая

eDmkПользовательwww25 окт. 20174:13#45
Все лишнее из проекта удалил. Aero и прочее убрал.
Поставил BitBlt вместо SetDIBits. На всякий случай почти пустой EXE с сообщениями приложил.
Тоже win64. Должен работать.

Новая ссылка:

+ Показать

Delphi генерит здоровые EXE-шники. Как убрать лишнюю инфу пока не разобрался.
С DebugInformation EXE под 25 Мб получаются. Как-будто весь VCL туда внедряет.

Правка: 25 окт. 2017 4:17

eDmkПользовательwww25 окт. 20174:15#46
>Не понял.
Интерполяция нужна. Треугольник с Хабра неправильный.
Если похожий алго, то треш. Он не интерполирует края.
AndreyПостоялецwww25 окт. 20178:13#47
eDmk
скачал, работает Intel Core i7-6900K
могу на AMD FX потестировать.
eDmkПользовательwww25 окт. 201714:27#48
>могу на AMD FX потестировать
Если есть возможность посмотрите, работает ли?!
Чего то с АМД какие то проблемы. Хотя не должно быть.
Vlad2001_MFSУчастникwww25 окт. 201716:18#49
eDmk
Последняя версия запустилась, все работает.
eDmkПользовательwww25 окт. 201716:25#50
>Vlad2001_MFS
Хорошие новости :) Спасибо за помощь.
Убрал вычисление машинного эпсилона и настройки Aero.
Также заменил SetDIBitsToDevice на BitBlt. Вот теперь гадай, что из этого глючило :)
MikleМодераторwww25 окт. 201717:02#51
eDmk
У меня тоже пустилось. SetDIBitsToDevice вряд ли виноват, сам им пользуюсь.
Vlad2001_MFSУчастникwww25 окт. 201717:26#52
Vlad2001_MFS
Так вы киньте версии с эпсилоном, с Aero, с SetDIBitsToDevice. Могу все попробовать. Все равно времени полно, хоть что-то полезное сделаю.

Правка: 25 окт. 2017 17:26

eDmkПользовательwww25 окт. 201718:12#53
Машинный эпсилон безобидная функция и шустрая.
При запуске для вычисления точности считается. Я подумал что может она в бесконечный цикл сваливается.
Поставил константу на всякий случай.
+ Показать

SetDIBitsToDevice действительно не может глючить.
Она у меня с WinXP используется.

Скорее всего Aero глючил.

+ Показать

Еще значение MXCSR поменял с Default Intel $1F80 на Default Embarcadero $1900.
Чтобы ZeroDivide Exception ловились. По умолчанию от Intel не ловятся.
Больше ничего не трогал. Что то из этого падало.

Правка: 25 окт. 2017 18:14

Vlad2001_MFSУчастникwww25 окт. 201718:44#54
eDmk
Ну, в общем, кидайте все, что надо, могу потестить вечером.
122Постоялецwww25 окт. 201719:00#55
eDmk
> В разрешении экрана 2560×1600:
> 100 тысяч полигонов тянет ~10-15 fps. на одном ядре.
Я бы посоветовал сравнивать не так.

В софтрендере важнее всего филлрейт, так как он отъедает основную часть процессорного времени. И говоря грубо софтрендеры делятся на два вида: рисующие в один проход весь экран и рисующие полигоны с перекрытием, от дальних к ближним. Вторые как понятно жутко тормозят если на экране у тебя будут несколько перекрывающих друг друга объектов. Первые имеют меньшую удельную скорость обработки полигона но не теряют при загораживании так как овердро у них нулевой.
Если рендер планируется юзать для игры, надо учитывать что большинство сцен будет иметь многократное перекрытие.

> Нужен ли
Это от автора кода зависит. Если ему нужно, значит нужен. Если нет, то нет.

eDmk
> Производительность в 800x600 примерно на уровне Voodoo 2 (на моем CPU Core i7
> G6950X Extreme 3.4 ГГц / 10 ядер / 20 потоков).
Наверное уроки были плохие по которым ты делал.
Вот был фестиваль, например. Тут: http://www.gamedev.ru/code/forum/?id=219212
Посмотри там табличку на первой странице. Софтрендер обязан рвать Вуду2 даже на компах 15-летней давности. Не говоря уже об ай7.

Правка: 25 окт. 2017 19:08

eDmkПользовательwww25 окт. 201719:10#56
>В софтрендере важнее всего филлрейт
Fillrate на уровне Voodoo 1-2. Зависит от сцены конечно и разрешения экрана.
По крайней мере стабильно выдает 60 fps 800х600 на одном ядре при полностью закрашеном экране. Это характеристики Voodoo 2.
+ Показать

CPU не так быстро развиваются как GPU. Да и память тормозная в CPU.
Игрушку? Да хочу написать на своей библиотеке. Я полгода в 3D. Еще не все изучил.

Правка: 25 окт. 2017 19:11

122Постоялецwww25 окт. 201719:13#57
eDmk
> на одном ядре
Все равно оч мало. Даже для одного ядра надо раза в 4-6 быстрее.
eDmkПользовательwww25 окт. 201719:27#58
>Даже для одного ядра надо раза в 4-6 быстрее.
Ну когда отсечение доделаю, раза в 2-3 должно ускорится. У меня все полигоны просчитываются каждый кадр.
Еще с фрустумом не разобрался. Таблицы ArcCos не сделал, что весьма тормозит расчет света ибо ArcCos в чистом виде тормоз.
У меня полно мест для оптимизации. Будем учиться и стараться. Я дизайнер по професии, а не программист.
Программирование - хобби.
eDmkПользовательwww25 окт. 201719:29#59
А так у вас быстро конечно все, но треугольник не интерполируется.
Грубо говоря - не правильный математически :)

Страницы: 1 2 3 4 5 6 7 8 Следующая

/ Форум / Программирование игр / Графика

2001—2017 © GameDev.ru — Разработка игр