XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Моделлинг> MdlVis
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Результаты опроса: Поддерживает ли ваша видеокарта вершинные шейдеры?
Да, поддерживает 78 77.23%
Нет, не поддерживает 7 6.93%
А что такое шейдеры? 16 15.84%
Голосовавшие: 101. Вы еще не голосовали в этом опросе

 
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
Опрос: поддержка вершинных шейдеров
Поддерживает ли ваша видеокарта вершинные шейдеры?
(Собственно, идея в том, чтобы ускорить работу MdlVis, перенеся на GPU часть вычислений. Если хотя бы у 80% есть нормальное железо, то будет смысл добавить в настройки программы опцию, включающую альтернативный [ускоренный, шейдерный] алгоритм рендеринга).
Пока я доделываю редактор анимаций, как раз наберётся необходимая статистика ответов.
.
Для тех, кто уже тянется к третьему пункту опроса: речь идёт именно о ВЕРШИННЫХ шейдерах (НЕ фрагментных!), они поддерживаются даже довольно старым железом.
Так что если у вас стоит GeForce2 (и выше), или же Radeon 9700 (и выше), смело голосуйте: "ДА, ПОДДЕРЖИВАЕТ".
Старый 16.11.2006, 12:46
DampirTBs

offline
Опыт: 28,311
Активность:
У меня стоит гф 6600 гт поетому мне до барабана. Думаю у большинства народа сидящего на модемах старые компы, поетому мона сразу определить на сайте всех модемщиков =)
Старый 16.11.2006, 15:35
NETRAT

offline
Опыт: 83,712
Активность:
Ты бы, Алексей обьяснил как это проверить =) впрочем, у меня GeForce 3, так что вероятно, поддерживает
Старый 16.11.2006, 15:38
Кет

offline
Опыт: 111,109
Активность:
пока что мы выигрываем.
Старый 16.11.2006, 16:36
Inoriol
Я пришёл....
offline
Опыт: 11,629
Активность:
у меня ge force gx 5200 так что вроде поддерживает.
Старый 16.11.2006, 17:00
Iron
Листовой
offline
Опыт: 24,427
Активность:
А я не в курсе. У меня средненькая видюха. Radeon 9550 XT 128mb. Как вообще енто определить? Я по нету полазал так и не нашел ничего. Плз, кто знает скажите.

Алексей, в любом случае нужно вводить опцию, ведь железо все потиху грейдят, глядишь и через год уже будут у всех видюхо с вершинными шейдерами.
Старый 16.11.2006, 17:20
Охотник
...
offline
Опыт: 3,472
Активность:
DampirTBs-ну у меня модем-и при это видюха GE 7800 GT -просто некоторые живут в таких местах как я-где сложно поставить выдленку с хорошей скоростью и тарифами(безлимитки ваще не видел(моя мечта))
Старый 16.11.2006, 17:40
Кет

offline
Опыт: 111,109
Активность:
Iron, мб написано на коробке из-под видюхи или в дровах...
Старый 16.11.2006, 17:57
Wolfeg
oldfag
offline
Опыт: 23,207
Активность:
Iron, кароч заходишь в NFS, разгоняешь большую скорость, если всё вокруг размазывается, значьт есть, ткоа хз какой версии, но эт не важно. в общем это типа расплывчатости.
Старый 16.11.2006, 19:18
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Вершинные шейдеры это сила. Тока я слабо представляю как ты их сипользовать будешь под Делфи и в ОпенЖЛ... Или ты не для рендеринга сцены, а для вычислений?
Старый 16.11.2006, 21:53
Iron
Листовой
offline
Опыт: 24,427
Активность:
MENToss, данный способ пока не катит, ибо я растягиваю удовольствие ипока тока 31% закончел, т.е. скорость выше 150-и не поднимаетси. Или этого достаточно? Если да, то обращу внимание.
Старый 16.11.2006, 22:24
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
Я просто выпал ;). Впервые слышу, что шейдер equ расплывчатость. Да и способ теста предложен весьма оригинальный. В общем, чтобы люди не обшаривали всю сеть в поисках информации о шейдерах, попытаюсь дать небольшую справку:
Шейдерные программы (шейдеры) - это не расплывчатость и не спецэффекты. Это - всего лишь программы, которые предназначены для выполнения на видеопроцессоре. Они пишутся на специальных языках программирования и загоняются в видеокарту, чей процессор (GPU) выполняет их независимо от работы ЦП компа. Основная цель, ради которой пишут шейдеры - перенести часть вычислений (в основном векторных и матричных преобразований) на GPU.
Зачем это нужно? Дело в том, что многие графические расчёты очень ресурсоёмки. К примеру, при анимировании персонажа нужно рассчитывать положение каждой вершины(!) модели в каждом кадре. И если будет меньше 25 кадров в секунду, то получатся тормоза. А ведь ещё нужно обсчитать текстурирование, отсортировать полупрозрачные фрагменты в порядке их видимости, наложить освещение... Так что очень неплохо было бы ускорить этот процесс.
Теперь о видеокартах. Они всё время совершенствуются. Статистика показывает, что за то время, пока Intel удваивает производительность своих процессоров, NVidia и ATI увеличивают "шустрость" GPU примерно в 3,3 раза.
Недавно на gamedev'е проводили тест - оказалось, что видеопроцессор Radeon 9800 эквивалентен Athlon 15000+. А старенькие GeForce2 обгоняют 1500Мгц-пентиумы. Эти данные буквально ошеломляют. Как же так? Почему GPU считает НАСТОЛЬКО быстрее? Всё дело в конвейеризации и распараллеливании. Intel сейчас хвастается двухъядерным процессором. А, к примеру, в GeForce6 на одном кристалле смонтировано 6 вершинных и 16 фрагментных процессоров! ЦП должен обрабатывать разнородные данные, а GPU ориентированы на обработку однородных массивов (т.е. потоков вершин или наборов матриц/векторов), что и позволяет эффективно распараллелить вычисления. Многие команды векторной арифметики аппаратно реализованы на видеопроцессоре. Например, вычисление скалярного произведения векторов на GPU реализуется одной командой, тогда как на ЦП - 5 командами (причём операции умножения тратят по 4 такта процессора каждое).
Вывод: все расчёты, какие только можно (а лучше - даже и те, которые нельзя) желательно перенести на GPU. Написать шейдер, загнать в видеокарту - и путь он там работает, а проц займётся тем временем более важными делами. При этом получается просто сумасшедшее ускорение. Например, на шейдерах часто обсчитывают отражение, преломление, волны на воде (последнее осуществляется численным решением дифф. уравнений 2-го порядка прямо в реальном времени! Я как-то выкадывал свою демку, где на такой водичке плавало лого XGM). Конечно, всё это можно рассчитать и на ЦП. Но - очень долго.
.
Существует несколько видов шейдеров:
  • вершинные шейдеры - самый старый тип. Работают с наборами вершин.
  • Фрагментные (они же - пиксельные) шейдеры - работают с наборами пикселей (т.е. оперируют в основном не векторами и матрицами, а цветовыми компонентами).
Есть также разные версии шейдеров (т.е. набор команд для видеопроцессоров постепенно растёт с выходом новых видеокарт).
.
Как проверить поддержку шейдеров? Воспользоваться любой тест-программой, которая может выводить список фич, поддерживаемых вашей видеокартой. В сети их полно. Выкладываю свою собственную - только что накатал её ;). Она весьма примитивна - просто опрашивает видеокарту и выводит список её фич в небольшом окошке. Вам нужно просмотреть эту кашу из надписей и найти там хоть что-нибудь из этого списка:
  • GL_ARB_vertex_program - самый старый тип шейдеров. Поддерживается даже не слишком новым "железом". Его-то я и хочу задействовать.
  • GL_ARB_fragment_program - фрагментные шейдеры. Это уже версия поновее;
  • GL_ARB_vertex_shader - расширенный вариант шейдеров;
  • GL_ARB_fragment_shader - следующее расширение;
  • GL_ARB_shader_objects - наличие встроенного компилятора GLSL. Позволяет писать шейдеры на Си-подобном языке.
  • GL_ARB_shading_language_xxx (вместо xxx - версия компилятора, обычно 2.0) - наличие компилятора HLSL/Cg (другие шейдерные языки программирования)
В общем, если вы найдёте хотя бы одну из этих строк - замечательно! Прежде всего ищите первую строчку (GK_ARB_vertex_program) - это необходимый минимум.
ATI-карточки могут выдавать ещё что-то вроде "GL_EXT_vertex_program" или "GL_ATI_vertex_program" - это показатель наличия ATI-специфического шейдерного процессора. Такие шейдеры будут работать только на картах ATI и никакого интереса не представляют.

Алексей добавил:
exploder: для расчёта анимации (положения вершин в каждом кадре). Да и какая разница, в чём из использовать? Они-то всё равно на собственных языках программирования пишутся, потом только в видеокарту загоняются. И в OpenGL это тоже отлично делается.
Прикрепленные файлы
Тип файла: zip exttst.zip (978 байт, 143 просмотров )

Отредактировано Алексей, 16.11.2006 в 22:48.
Старый 16.11.2006, 22:27
NETRAT

offline
Опыт: 83,712
Активность:
Тебе следовало их выводить в столбик, а не в строчку ...
Да, поддерживает. Да имхо у 90% народу поддерживает, ибо, насколько я понял, это достаточно старая фича. Можешь смело на нее рассчитывать, но на всякий случай сделай программу более универсальной - добавь проверку этих шейдеров и опциональную поддержку
Миниатюры
Кликните на картинку для увеличения
Название:  GL_Extensions.png
Просмотров: 91
Размер:  11.8 Кбайт  

Отредактировано NETRAT, 17.11.2006 в 01:16.
Старый 17.11.2006, 01:07
PlagueHeart
Postmortem Upheaval
offline
Опыт: 2,201
Активность:
У меня видеокарта не поддерживает... но собираюсь на выходных новую купить...
Старый 17.11.2006, 01:13
cosmo
® shadow of Mr.Gold
offline
Опыт: 15,207
Активность:
Алексей За статью большое спасибо, я этого не знал.
А в чем отличие версии пиксельных шейдеров ? например у меня на Radeon 9600 вторая версия, а для новых игр требуется 3-ая версия, в чем их отличия, т.е. это просто более усовершенствованый набор программ?
Старый 17.11.2006, 12:26
Iron
Листовой
offline
Опыт: 24,427
Активность:
А как файлик то ентот запускать?
Старый 17.11.2006, 12:34
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
cosmo: В том, что с каждой версией появляется всё больше новых команд, которые могут присутствовать в шейдерной программе. Если программа использует команды, появившиеся только в 3.0, то понятно, что она не пойдёт на младших версиях. Правда, иногда бессовестные производители игр, дабы показать "крутость" своей игрушки, делают шейдеры, которые вполне могли бы идти и на 2.0 (к примеру), но заявляют, что им якобы нужна самая последняя версия шейдеров и вводят в код игры соответствующую проверку. Это как в старом анекдоте:
Цитата:
- Чем отличается плохая игра от хорошей?
Ответ программиста: в плохой игре мало FPS и нет поддержки вершинных шейдеров.

Iron: В архиве лежит exe. Он запускается... ну, так, как обычно запускают программы.
Старый 17.11.2006, 12:58
cosmo
® shadow of Mr.Gold
offline
Опыт: 15,207
Активность:
Алексей Это значит что раньше видео карты без этих программ вполне справлялись с поставленными задачами, а теперь игры стали слишком требовательны, что без шейдеров не обоитись.
Да у меня еще старый AGP порт и видео карта уже устаревшая, я вообще уже столкнулся с проблеммой устаренвания железа, недавног с Sata проколося, теперь дома лежит HDD 200гб а воткнуть его невошто.
Старый 17.11.2006, 13:20
Iron
Листовой
offline
Опыт: 24,427
Активность:
Алексей, перезалей, а то я архив скачиваю, а там просто файл без расширения. Если дописать расширение, то винда выдает ерор.
Старый 17.11.2006, 14:59
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Алексей, просто я читал про шейдеры, но сам лично их не программировал. Знаю, что вершинные шейдеры пришли на смену T&L блоку, и их помощью можно напрямую обращатся в регистрам видеокарты и выполнять вычисления...
Старый 17.11.2006, 15:12

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 00:33.