Re[9]: Нарисовать 50 000 цветных полигонов . Silverlight
От: MxMsk Португалия  
Дата: 06.06.11 09:07
Оценка:
Здравствуйте, aloch, Вы писали:

A>Вот, например, в Direct3d и OpenGL есть поддержка 3D графики. При чем, по общепринятым критериям, она "нормальная". Но вот в игрушке возникает необходимость нарисовать много полигонов — т.е. сделать открытое пространство. И тут выясняется, что это "нормальное" API + навороченные дорогущие видеокарты просто не справляются с такой задачей — слишком много полигонов! И по этому появляеются специальные "движки", заточенные под отрисовку открытых пространсв — путем упрощения "дальних" моделей, скрытия какихнибуть гор на горизонте и т.п.

Угу. А я добавлю, что такие вещи, как ComboBox не является частью GDI, они только используют его для отрисовки. Следуя этой же логике, WPF — это уровень ComboBox-ов, который использует DirectX для отрисовки. Так что, ничего удивительного в отсутствии "быстрой" 2D графики. Возможно MS стоит сделать аналог Canvas-а из HTML5 для каких-то критических ситуаций, но для этого, как я понимаю, уже придумали хосты DirectX. Впрочем, сейчас мне это уже не нужно, мы добились нужной скорости в своем проекте. Пришлось попотеть, но результат радует.
Re[9]: Нарисовать 50 000 цветных полигонов . Silverlight
От: Andy77 Ниоткуда  
Дата: 07.06.11 01:54
Оценка:
Здравствуйте, aloch, Вы писали:

Приведенная аналогия страдает тем, что отличие 2D от 3D в том, что миллионы полигонов можно на современном железе быстро нарисовать даже без использования аппаратного ускорения. В случае 3D движки игрушек решают реальную проблему; Силверлайт же говорит "нет, ребята, вам этого не надо". Как показывает практика — иногда надо. Спорить по этому поводу я не собираюсь, если твоих пользователей (ты решаешь похожие задачи?) устраивает медленная графика, не показывающая всех элементов, значит, у нас просто разные категории пользователей, тебе повезло.
Re[10]: Нарисовать 50 000 цветных полигонов . Silverlight
От: Аноним  
Дата: 07.06.11 04:43
Оценка:
Здравствуйте, Andy77, Вы писали:

A>Здравствуйте, aloch, Вы писали:


A>Приведенная аналогия страдает тем, что отличие 2D от 3D в том, что миллионы полигонов можно на современном железе быстро нарисовать даже без использования аппаратного ускорения.


К сожалению это не так — иначе такого понятия, как "поддержка открытых пространств" не было бы в принципе в 3Д движках "за ненадобностью" — вали все полигоны в кучу, оно их все быстро нарисует. В качестве примера стоит попробовать в Доом3 (например) войти в режим "ноклип" и посмотреть на весь уровень со стороны — тормоза гарантированы.

Возможно разговор там идет не о миллионах, а о сотнях миллионов полигонов, но предел производительности есть везде.

Безусловно, жаль, что у WPF/Silverlight этот предел достаточно низкий (я это и сам ощущаю, мне, например, пришлось написать рисование сложных DWFx — чертежей в отдельном потоке (через RenderTargetBitmap) для того чтобы тормоза-подвисания не чустовоались пользователем в GUI-потоке).

Но, с другой стороны, я давно понял, что "за бесплатно" получить от кого-то эффективное решение сложной, неординарной задачи, практически не возможно. Вот, например, пусть силверлайт прекрано справится с 50000 полигонов, а потом возникнет задача нарисовать 50000000 полигонов. В решеение (программное или аппаратное), решающее "в лоб" такую задачу я не верю. И вот здесь придется "попотеть" программисту, если он хочет получить приличный результат (именно за счет оптимизации того, что рисуем). Программисты Автокад-а "попотели" над этим 20 лет тому назад, и я в 1990 году под ДОС в Автокад 10 на 286 машине (33 мегагерца) с 1 мегабайтом памяти (!), работал с чертежами, которые тормозят на современной машине в WPF!


> В случае 3D движки игрушек решают реальную проблему; Силверлайт же говорит "нет, ребята, вам этого не надо".


Нет, Сильверлайт говорит — "если вам это надо,то сделать это можно, нужно толкьо поработать самим, т.к. я не для того сделан!"
Re[10]: Нарисовать 50 000 цветных полигонов . Silverlight
От: yoriсk.kiev.ua  
Дата: 07.06.11 10:24
Оценка:
Здравствуйте, Andy77, Вы писали:

A>Приведенная аналогия страдает тем, что отличие 2D от 3D в том, что миллионы полигонов можно на современном железе быстро нарисовать даже без использования аппаратного ускорения.


Да там не только количество полигонов исскуственно уменьшают. Подклыдвают текстуры худшего качества и много другое.

A>Спорить по этому поводу я не собираюсь, если твоих пользователей (ты решаешь похожие задачи?) устраивает медленная графика, не показывающая всех элементов, значит, у нас просто разные категории пользователей, тебе повезло.


Осталось только изобрести пользователей, которые могут одновременно увидеть, воспринять и работать с 500тыс. полигонов.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.