Сообщения на форуме пользователя Andrey (32 стр.)
Тормозит glutSwapBuffers в Windows 7/Vista из за текста... | 22 апр. 2011 | 18:48 | #8 |
---|
> glSwapBuffers - 30ms
Сглаживание включено?
GLSL + Матрицы | 20 апр. 2011 | 11:34 | #10 |
---|
inuendo прав, коменти вот это. Как раз тут 2 раза "invalid operation". при возникновении ошибки падает производительность, замечено уже такое .
glUniformMatrix4fv(glGetUniformLocation(program, "modelviewMatrix"), 1, GL_TRUE, modelviewMatrix); glUniformMatrix4fv(glGetUniformLocation(program, "projectionMatrix"), 1, GL_TRUE, projectionMatrix); |
GLSL + Матрицы | 20 апр. 2011 | 10:20 | #5 |
---|
> Но тут я столкнулся со следующим, для каждой вершины я множу две матрицы снова и снова, хотя в теории хватило бы одного умножения на меш. Думал решить >проблему умножением на стороне компьютера, но внезапно получил падение производительности 30-40% X_x
я понял так: ты передаешь proj и ModelView в шейдер.
потом ты решил передать proj * view и стало медленнее?
скинь код шейдера+код перемножения и код заливки покажи в двух вариантах до снижения производительности и после снижения.
И как ты замерял время?
>Итак вопрос: можно ли както в шейдере сделать переменную которая бы помнила содержимое и например рассчитывалась бы 1 раз по установленному флажку или >может есть какойто другой способ?
Есть конечно. Изменились матрицы(перемещение модели, или изменилась камера) - тогда передавай. Иначе не передавай(и/или не перемножай. Но при условии что стоит 1 и тот-же шейдер(или в OpenGL константы сохраняются для разных шейдеров? по идее должны сохраняться в регистрах GPU)
Khronos Group разработает открытый API для ввода. (комментарии) | 18 апр. 2011 | 13:19 | #11 |
---|
Microsoft может это не будет поддерживать. Сейчас для игр под Windows либо XInput либо напрямую WM_INPUT.
Что-то мне это напоминает историю с OpenML. Проект практически умер.
Стоит ли так делать? Класс по работе с VBO. | 14 апр. 2011 | 19:31 | #29 |
---|
> Откуда кэш-промахи? Ведь в плане работы с памятью ничего не меняется.
http://www.gamedev.ru/code/terms/CacheMiss
Стоит ли так делать? Класс по работе с VBO. | 14 апр. 2011 | 10:19 | #13 |
---|
> А что тебя смущает?
Многовато выделений памяти. или там реализация строки со статическим буфером внутри?
Стоит ли так делать? Класс по работе с VBO. | 14 апр. 2011 | 10:06 | #11 |
---|
хороший варинат. Только опять же std::vector не нужен тут. У декрараций до 10 с головой, зачем там std::string ? Неужели такое живет на iFone ?
innuendo
На каждую установку буфера будет кешь промах, ибо vertexBuffer *buf = new vertexBuffer;
указатель buf будет разный и не попадать в кешь. + куча аллоков при загрузке большего числа объектов для сложных уровней/сцен.
Стоит ли так делать? Класс по работе с VBO. | 14 апр. 2011 | 8:08 | #8 |
---|
на CPU кешь промахи будут. В кадре будет много буферов ставится. Делай проще. Число форматов ограничиноб,до 5 штук хватает за глаза. вариант со switch/ if с флагами проще и быстрее.
OpenGL Шейдеры на Intel 82945G | 13 апр. 2011 | 14:27 | #10 |
---|
бери Cg и используй GL_ARB_veretx_program и GL_ARB_fragment_program
Самописный vector | 12 апр. 2011 | 12:06 | #40 |
---|
использование исключений уже ставит крест на производительности твоего контейнера.
T &operator [] ( LONG Index ) throw ( EArrayException ) { if ( Index < GetElementCount() ) return pElements[Index]; throw EArrayRangeError; }
сделай методы с интерфейсом STL - пригодиться для совместимости к примеру для простой замены контейнера.
Блендинг текстуры в OpenGL | 11 апр. 2011 | 13:07 | #1 |
---|
Попробуй так:
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 при вызове функции wglCreateContext | 6 апр. 2011 | 13:24 | #1 |
---|
>wglCreateContext возвращается IntPtr.Zero, а glGetError возвращает код ошибки 1282.
проверь ошибку через GetLastError, FormatMessage.
glGetError не связана с инициализацией OpenGL под Windows, в том числе и под другие платформы. у тебя библиотека не про инициализирована, поэтому любой вызов OpenGL функций даст ошибку 1282("invalid operation.")
Software Occlusion Culling (комментарии) | 4 апр. 2011 | 14:54 | #29 |
---|
> ты издеваешься над топикастером ? даже я с таким сарказмом не жёг
Я имел виду что что-бы тот код разобрать нужно иметь хорошую квалификацию. Уж точно побольше чем демки писать...
В общем хорош захламлять тему. Кому не нравится, делайте лучше.
Правка. русский язык.
Правка: 4 апр. 2011 15:30
Software Occlusion Culling (комментарии) | 4 апр. 2011 | 13:34 | #22 |
---|
> это наверно значит что у тебя какаянить винхп и оверхед от драйвера гораздо
> больше чем от оклюжена
У меня дрова с PerfHUD'ом кстати на 6660GT
В демку вставил PerfHUD, пока что-то не запускается, висит...
Software Occlusion Culling (комментарии) | 4 апр. 2011 | 13: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