powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Производительность 3D в WPF
15 сообщений из 15, страница 1 из 1
Производительность 3D в WPF
    #37569548
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал трёхмерную модель лабиринта на примерно 40к полигонов. Всё сделал по тайлам, а посему расстановку точек каждого тайла сделал по базовой точке. Триангуляцию по расставленным точкам тоже сам, тем более, что фигурки-то простые - кубики да прямоугольники, просто с очень большим количеством полигонов. Текстурирование и освещение (всего два точечных источника в положении камеры) тоже сам сделал. Причём на все стены и пол налепил всего по две текстурки - каждая примерно по 256х256 размерами. Просто текстурки везде повторяются.

Побродил по лабиринту...

Это к тому, что всё программировалось на C#, и никакие модели - ни геометрия, ни освещение - не подкачивались из внешних файлов, сделанных во всяких максах и блендерах, кроме пары текстурок.

Так вот, ставлю FarPlaneDistance в плюс бесконечноть и отъедает всё это дело 24 МБ ОЗУ и 31 МБ ОЗУ видео (ОЗУВ). Ставлю FarPlaneDistance так, чтобы показывалось только примерно пятая-шестая часть лабиринта, а расходы памяти не изменились никак. Более того, как были подтормаживания при бесконечной дальности прорисовки, так и остались (при разворачивании окна на весь экран, но не выходя из настроек рабочего стола).


ВОПРОСЫ.

1. Такое ощущение, что FarPlaneDistance не влияет на производительность. Как связан параметр FarPlaneDistance с наличием данных в ОЗУ и ОЗУВ? Ну т. е. те модели, что отсечены FarPlaneDistance, по-прежнему в ОЗУ и ОЗУВ и обрабатываются ЦПУ и ГПУ, или подогружаются только по мере входа в пределы FarPlaneDistance? Судя по всему, они из ОЗУ и ОЗУВ никуда не исчезали и продолжают обрабатываться ЦПУ и ГПУ. Тогда зачем FarPlaneDistance нужен вообще?

2. Что происходит с ресурсами - геометрией, текстурами и прочим - когда они загружены и отправлены на обработку видеокартой? Они же в ОЗУ остаются? Тем более, что модели у меня именованные и я к ним обращаюсь иногда - та же камера вообще на кнопки непрерывно реагирует, вместе со светом. Тогда получается, что они занимают место дважды - в ОЗУ и в ОЗУВ?

3. Что происходит с ресурсами во взрослых играх у профессионалов - типа всяких кризисов, скайримах и пр.? Там же текстуры грузятся в ОЗУВ через ОЗУ? И геометрия и пр.? И в остаются в ОЗУ, если могут понадобиться?

4. Где бы почитать про 3D производительность и как её повысить в WPF? А также, как все эти параметры, типа FarPlaneDistance, влияют на производительность, и почему у меня не влияет? Также, где почитать, как конкретно WPF отправляет ресурсы с ОЗУ на видеокарту и как их перед этим обрабатывает. Не непонятно мне, как такая простая сцена может вообще тормозить, а какой-нибудь Морровинд, который, хоть и старый, но куда сложнее, летает на максимальных настройках? Ведь вроде и то, и то на DirectX работает.


Для справки:видеокарта GeForce 8400 GS 256 МБ, процессор Феном II, 2 ядра по 3,1 ГГц, ОЗУ 3 ГБ.

Я знаю, что WPF не предназначен для сложной трёхмерки. Но я другого ничего не знаю, да и всё равно хочу пока на WPF.
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37569550
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> как были подтормаживания при бесконечной дальности прорисовки, так и остались

...так и остались при обрезании дальности прорисовки до буквально "под ногами".
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37569552
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Я знаю, что WPF не предназначен для сложной трёхмерки. Но я другого ничего не знаю, да и всё равно хочу пока на WPF.

Да и 40к текстурированных треугольников - это не "сложная трёхмерка". Это графика уровня PlayStation One и ниже.
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37569558
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал 2,6 млн. треугольников:

ОЗУ 650 МБ заняло, ОЗУВ - 30-90 МБ (окно - полный экран), тормозня как в окне, так и при полном экране - при отсутствии обрезки;

ОЗУ 570 МБ заняло, ОЗУВ - 30-90 МБ (окно - полный экран), тормозни в окне нет, только при полном экране - при обрезке "почти под ногами".
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37569559
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
10,5 млн. треугольников - не хватило памяти.
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37569567
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Сделал 2,6 млн. треугольников:

Кстати, при такой сцене для 30 FPS нужно, чтобы производительность была на уровне 78 млн. треугольников в секунду. У меня по ощущениям выдавало кадров 10 при разрешении где-то 1920х1080.
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37569619
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user7320,
А что Вы хотите сделать в конечном итоге ? Игру ? То вам не сюда. WPF хоть и использует DirectX, но для программирования игр он слишком тормозной. Так, всякие градиентики он нарисует, простых человечком каких нить тоже, трансформацию тоже сделает, но не более того.
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37569646
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2user7320,
А что Вы хотите сделать в конечном итоге ? Игру ? То вам не сюда. WPF хоть и использует DirectX, но для программирования игр он слишком тормозной. Так, всякие градиентики он нарисует, простых человечком каких нить тоже, трансформацию тоже сделает, но не более того.
Да, игру, но простенькую.

А вы вы можете подкинуть статеек про сравнение производительности WPF и DirectX? И как вообще для DirectX на C# писать?

Ну и непонятно, почему WPF должен быть НАСТОЛЬКО тормозным - вроде, трансляция функций WPF в DirectX чуть ли не один в один возможна?

И ещё, понимаете, если бы он действительно только для градиентиков и простых трансформаций был, то зачем ему шейдеры аж третьей версии и прочие навороты? По-моему, тенденция идёт к наращиванию возможностей подобных технологий. Вот и Flash получил трёхмерные функции и аппаратное ускорение, и Сильверлайт. WPF, думаю, тоже будут накручивать ещё - например, теней ему не хватает и отражений.
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37569649
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2

Ну и плюс я стараюсь сделать свой движок отделяемым от визуальной части, чтобы если что, можно было перенести на другое средство отображения - хотя бы тот же DirectX или XNA.
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37569668
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user7320thunder2user7320,
А что Вы хотите сделать в конечном итоге ? Игру ? То вам не сюда. WPF хоть и использует DirectX, но для программирования игр он слишком тормозной. Так, всякие градиентики он нарисует, простых человечком каких нить тоже, трансформацию тоже сделает, но не более того.
Да, игру, но простенькую.

А вы вы можете подкинуть статеек про сравнение производительности WPF и DirectX? И как вообще для DirectX на C# писать?

Писать для DirectX на C# также как и на любом другом языке для Windows, т.е. муторно. Обычно пользуются готовыми библиотеками.
http://www.codeproject.com/KB/directx/ - полные список статей.
А вообще в инете полно книг для программировния на DirectX, например такая:
http://www.ozon.ru/context/detail/id/3557386/

Ну и непонятно, почему WPF должен быть НАСТОЛЬКО тормозным - вроде, трансляция функций WPF в DirectX чуть ли не один в один возможна?

Думаю это из-за принятой модели распрастренения событий. Пузырьки и тунели знаете ли даром не даются. К тому же сам C# вносит свою лепту.

И ещё, понимаете, если бы он действительно только для градиентиков и простых трансформаций был, то зачем ему шейдеры аж третьей версии и прочие навороты? По-моему, тенденция идёт к наращиванию возможностей подобных технологий. Вот и Flash получил трёхмерные функции и аппаратное ускорение, и Сильверлайт. WPF, думаю, тоже будут накручивать ещё - например, теней ему не хватает и отражений.

Вам тут вряд ли помогут. На WPF пишут не потому, что он использует DirectX, а скорее из-за его возможностей по конструированию элементов и управления ими. Уж больно приятная компоновочная модель принята в WPF. Ну и привязки, конечно, и XAML и шаблоны со стилями и многое другое, но никак из-за того что он использует DirectX.
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37569874
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37569963
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Тогда получается, что они занимают место дважды - в ОЗУ и в ОЗУВ?
это совершенно нормально для Direct3DEx. WPF -ни при чём
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37574485
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот ещё такой вопрос. Меня совершенно не удовлетворяет дефолтное затенение по Гуро в 3D WPF - чтобы получить более-менее приличную картинку, приходится невообразимо увеличивать количество треугольников даже на плоских прямоугольных поверхностях, для которых по идее двух должно быть достаточно. Есть ли возможность использовать затенение по Фонгу?

И да, зачем нужна коллекция нормалей в модели? Я заполняю только коллекцию вершин, треугольников и текстурных координат - этого достаточно. Но в разных скриптах экспорта моделей, типа скрипта для Blendera, я видел, что коллекция нормалей тоже заполнена. Зачем?
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37574669
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

нормали на полигонах, называют картой нормалей. нужна лишь для правильного распределения света.
есть еще и другие карты, которые нужны для расчета света.
...
Рейтинг: 0 / 0
Производительность 3D в WPF
    #37575385
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

забейте, это не ваш инструмент.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Производительность 3D в WPF
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]