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

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

Тормозит glutSwapBuffers в Windows 7/Vista из за текста...22 апр. 201118:48#8
Neponimayushiy
> glSwapBuffers - 30ms
Сглаживание включено?
GLSL + Матрицы20 апр. 201111:34#10
VDragon
inuendo прав, коменти вот это. Как раз тут 2 раза "invalid operation". при возникновении ошибки падает производительность, замечено уже такое .
glUniformMatrix4fv(glGetUniformLocation(program, "modelviewMatrix"), 1, GL_TRUE, modelviewMatrix); 
glUniformMatrix4fv(glGetUniformLocation(program, "projectionMatrix"), 1, GL_TRUE, projectionMatrix);
GLSL + Матрицы20 апр. 201110:20#5
VDragon
> Но тут я столкнулся со следующим, для каждой вершины я множу две матрицы снова и снова, хотя в теории хватило бы одного умножения на меш. Думал решить >проблему умножением на стороне компьютера, но внезапно получил падение производительности 30-40% X_x

я понял так: ты передаешь proj и ModelView в шейдер.
потом ты решил передать  proj * view и стало медленнее?
скинь код шейдера+код перемножения и код заливки покажи в двух вариантах до снижения производительности и после снижения.
И как ты замерял время?

>Итак вопрос: можно ли както в шейдере сделать переменную которая бы помнила содержимое и например рассчитывалась бы 1 раз по установленному флажку или >может есть какойто другой способ?
Есть конечно. Изменились матрицы(перемещение модели, или изменилась камера) - тогда передавай. Иначе не передавай(и/или не перемножай. Но при условии что стоит 1 и тот-же шейдер(или в OpenGL константы сохраняются для разных шейдеров? по идее должны сохраняться в регистрах GPU)

Khronos Group разработает открытый API для ввода. (комментарии)18 апр. 201113:19#11
>Круто. Думаю будет хороший "противовес" для DirectInput. Особенно радует что кроссплатформенный
Microsoft может это не будет поддерживать. Сейчас для игр под Windows либо XInput  либо напрямую WM_INPUT.
Что-то мне это напоминает историю с OpenML. Проект практически умер.
Стоит ли так делать? Класс по работе с VBO.14 апр. 201119:31#29
SNVampyre
> Откуда кэш-промахи? Ведь в плане работы с памятью ничего не меняется.
http://www.gamedev.ru/code/terms/CacheMiss
Стоит ли так делать? Класс по работе с VBO.14 апр. 201110:19#13
Sergio
> А что тебя смущает?
Многовато выделений памяти. или там реализация строки со статическим буфером внутри?
Стоит ли так делать? Класс по работе с VBO.14 апр. 201110:06#11
Sergio
хороший варинат. Только опять же std::vector не нужен тут. У декрараций до 10 с головой, зачем там std::string ? Неужели такое живет на iFone ?
innuendo
На каждую установку буфера будет кешь промах, ибо vertexBuffer *buf = new vertexBuffer;
указатель buf будет разный и не попадать в кешь. + куча аллоков при загрузке большего числа объектов для сложных уровней/сцен.
Стоит ли так делать? Класс по работе с VBO.14 апр. 20118:08#8
SNVampyre
на CPU кешь промахи будут. В кадре будет много буферов ставится. Делай проще. Число форматов ограничиноб,до 5 штук хватает за глаза. вариант со switch/ if с флагами проще и быстрее.
OpenGL Шейдеры на Intel 82945G13 апр. 201114:27#10
f222314
бери Cg и используй GL_ARB_veretx_program и GL_ARB_fragment_program
Самописный vector12 апр. 201112:06#40
Ирбис
использование исключений уже ставит крест на производительности твоего контейнера.
    T &operator [] ( LONG Index ) throw ( EArrayException ) {

           if ( Index < GetElementCount() ) return pElements[Index];

            throw EArrayRangeError;

        }
Убери проверку диапазона и throw EArrayException, вместо поставь assert. Если нужны исключений - добавь метод доступа к примеру at - там и кидай их.
сделай методы с интерфейсом STL - пригодиться для совместимости к примеру для простой замены контейнера.
Блендинг текстуры в OpenGL11 апр. 201113:07#1
Yastreb
Попробуй так:
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, GL_PRIMARY_COLOR);
вот описание
http://www.opengl.org/sdk/docs/man/xhtml/glTexEnv.xml
и вообще выкинь FFP, это старый хлам
Ошибка 1282 при вызове функции wglCreateContext6 апр. 201113:24#1
SsoloveyS
>wglCreateContext возвращается IntPtr.Zero, а glGetError возвращает код ошибки 1282.
проверь ошибку через GetLastError, FormatMessage.
glGetError  не связана с инициализацией OpenGL под Windows, в том числе и под другие платформы. у тебя библиотека не про инициализирована, поэтому любой вызов OpenGL функций даст ошибку 1282("invalid operation.")

Software Occlusion Culling (комментарии)4 апр. 201114:54#29
innuendo
> ты издеваешься над топикастером ? даже я с таким сарказмом не жёг
Я имел виду что что-бы тот код разобрать нужно иметь хорошую квалификацию. Уж точно побольше чем демки писать...
В общем хорош захламлять тему. Кому не нравится, делайте лучше.

Правка. русский язык.

Правка: 4 апр. 2011 15:30

Software Occlusion Culling (комментарии)4 апр. 201113:34#22
kas
> это наверно значит что у тебя какаянить винхп и оверхед от драйвера гораздо
> больше чем от оклюжена
У меня дрова с PerfHUD'ом кстати на 6660GT
В демку вставил PerfHUD, пока что-то не запускается, висит...
Software Occlusion Culling (комментарии)4 апр. 201113:32#21
Вот еще тесты
по умолчанию ничего не крутя и не выбирая
NVidia 9600GT
- hardware instancing + OC = 30 FPS
- hardware instancing - OC = 17 FPS
ATI 2400 Pro
- hardware instancing + OC = 12.8 FPS
- hardware instancing - OC = 6.3 FPS

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

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