GameDev.ru
/ GameDev.ru / Пользователи / Andrey / Сообщения на форуме пользователя Andrey (12 стр.)

Сообщения на форуме пользователя Andrey (12 стр.)

рисование в bitmap с помощью шейдеров3 авг. 201212:28#5
Blew_zc
а я не знаю, Не стал разбираться. Попробуй проект создай можешь поймешь.
Убогость OpenGL API3 авг. 201211:47#342
innuendo
> Кстати, а где прослоек больше ?
Без понятия. У обоих драйверов может быть общая часть по работе уже с родными данными драйвера и его функциональностью - код преобразованного шейдера и его константы, текстурная память и кешь, доступ к вершинам и индексам, набор растер операций и т.д. и т.п. А вот "толщина" прикладного кода когда с OpenGL функций или COM вызовов Direct3D все идет в драйвер, возможно есть некие конвертации, может быть разной. У меня на 8600GT больший FPS чем на ATI 5670 на OpenGL. На Direct3D все наоборот. Причем карты разного уровня. Причины разные. Неоптимальная реализация UBO к примеру (вспомнив Rage там были проблемы с ним. Убрали это...).
Пример того как константы ставятся в Direct3D на nVidia
http://www.gamedev.ru/code/forum/?id=89213&page=4#m54
Не факт что драйвер OpenGL что-то проверяет, так-же как в Direct3D. Единственное что в Direct3D тебе в DxDebug свалится с ошибкой с указанием того что превысил лимит констант или еще чего-то, в OpenGL cкопирует тупо и все, потом зашлет в видюху, на очередной glDrawElements будет GL_INVALID_OPERATION или BSOD. Диагностировать это уже сложнее, но это уже другое.
Это простой пример где не будет прослойки. Что-бы ответить на это вопрос полностью, очевидно нужно попытаться изучить код драйверов.
Быстрые зомби (с хабра)(про Valve и Linux)3 авг. 201211:15#16
Повторюсь тут.
Ну что я могу сказать. Переписали драйвер хорошо. Еще я могу предположить что довольно старая игра по загрузке пиксельными и шейдерами.
>Modifying our game to work better with OpenGL
Очень важный момент.Могли использовать OpenGL 3.3 и выше, значит есть многие улучшения по производительности при использовании новых расширений VAO,UBO,gl_arb_draw_elements_base_vertex ну и наверное многое другое. Старый драйвер под Direct3D9 оставили без изменений.
"We have been doing some fairly close analysis and it comes down to a few additional microseconds overhead per batch in Direct3D which does not affect OpenGL on Windows. Now that we know the hardware is capable of more performance, we will go back and figure out how to mitigate this effect under Direct3D."
Они улучшат стоимость batch Direct3D по сравнению с OpenGL, а причины стоимости исследованы.
C чего бы не иметь большую производительность в OpenGL в таком случае? Не OpenGL уделала Direct3D, а ее реализация.
Убогость OpenGL API3 авг. 201211:14#340
innuendo
Ну что я могу сказать. Переписали драйвер хорошо. Еще я могу предположить что довольно старая игра по загрузке пиксельными и шейдерами.
>Modifying our game to work better with OpenGL
Очень важный момент.Могли использовать OpenGL 3.3 и выше, значит есть многие улучшения по производительности при использовании новых расширений VAO,UBO,gl_arb_draw_elements_base_vertex ну и наверное многое другое. Старый драйвер под Direct3D9 оставили без изменений.
"We have been doing some fairly close analysis and it comes down to a few additional microseconds overhead per batch in Direct3D which does not affect OpenGL on Windows. Now that we know the hardware is capable of more performance, we will go back and figure out how to mitigate this effect under Direct3D."
Они улучшат стоимость batch Direct3D по сравнению с OpenGL, а причины стоимости исследованы.
C чего бы не иметь большую производительность в OpenGL в таком случае? Не OpenGL уделала Direct3D, а ее реализация.

рисование в bitmap с помощью шейдеров2 авг. 201217:42#3
roserg
еще у тебя ошибка GL_INVALID_OPERATION после glBegin и далее.
Производительность XNA2 авг. 201213:15#227
Chaos_Optima
> Хотя да хеш мапу написать гораздо проще нежели avl или rb дерево
+100
Работа с моделями произвольного формата1 авг. 201210:27#77
gammaker
> А я собираюсь сделать так: mesh->Normals[index]=normal и
> mesh->Positions[index]=position.
Это не правильно. Зачем тебе таки методы? Mesh все таки хранилище геометрии с ссылками на материалы, грузится это сразу с файла. Если уж это нужно, то лучше сделать методом в котором будет хотя-бы assert на проверку index за пределы массива.
Работа с моделями произвольного формата30 июля 201214:05#30
innuendo
>э... зато будут косвенные вызовы ? ещё лучше :)
в том то и дело. Профайлить нужно. Зато код гибче.Короче все отстой без VAO.
Работа с моделями произвольного формата30 июля 201210:57#24
gammaker
1) как уже сказали делаешь 5-6 форматов. больше не нужно. Загрузка меша вообщше не завимит от формата вершины. Все определяется в hear'е бинарного файла. там-же и размер буфера и формат вершины, число вершин число полигонов. Там же ссылки на метнриалы. Если более сложный формат - еще и подмеши. Загрузка не зависит от API.
и возможно от платформы хотя нужно учесть big Endian/little Endian.
>Я написал функции установки позиции, цвета, текстурных координат и так далее, которые вычисляют их позицию в выбранной вершине. Но боюсь, что это медленно, так как придётся >каждый раз проверять их наличие, а ветвления слишком дорогие.
2) Насчет ветвлений по установки. Да, код раздувается ну это имеет вместо для убогого <= OpenGL 2.1. Можешь создать список атрибутов с указателями на функции установки, в цикле перебираешь атрибуты вершины и вызываешь соотвтвующие gl*Pointer/glVertexAttribPointer.
struct VertexFormat {
  int formatType;
  typedef void (*func)(....);
  array<func> setAttribFunctionList;
};
Ветвлений не будет.
В новом OpenGL есть VAO(наконец то...), делаешь для каждого формата 1 VAO и ставишь 1 раз.
пришел новый буфер  - смотришь его формат ставишь соответствующий VAO - все указатели стоят и никаких ветвлений с gl*Pointer/glVertexAttribPointer
Для Direct3D изначально не было таких проблем. Создается набор IDirect3DVertexDeclaration9/ID3D10InputLayout/ID3D11InputLayout ставится 1 раз если сменился формат вершины.
Насчет твоих ООП заморочек с классом Mesh ничего сказать не могу. Все на твое усмотрение.
Вопрос по шейдерам на Cg27 июля 201213:10#33
Spartan
> Ко времени наступления "перспективы", уже во всю будут PS4 и XBOX 720, и
> никаких Cg там в помине не будет, ибо AMD.
Кстати да. Там будет истинный нативный OpenGL/GLSL.Единственный путь nVidia должна портануть Cg на OpenGL ES для мобильных платформ.
Модели26 июля 201212:52#2
Great Expectations
Свой пиши. Изучай экспорт из 3DS Max, Maya, тут тебе куча всего: Max Script/Native Max API/IGame,  Maya Embedded Language (MEL)/Native Maya API. Можно использовать Collada/FBX
Начни с простого возьми lib3ds экспортни и загрузи через библиотеку.
Женская мода в 80-е vs Женская мода в 90-е vs Кричащая фригидность современности.26 июля 201211:42#75
dave
Sandra'у люблю. Одна из качественных поп певиц.
ГУЛЬМЭН 2 [технодемо!]25 июля 201218:14#4837
да...
А рисует круто.
http://www.youtube.com/watch?v=FXLUGhtY71s

Следующие темы >>

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