Сообщения на форуме пользователя Andrey (52 стр.)
Душегубъ (FPS, наш ответ Крайсису :) | 10 мая 2010 | 12:32 | #25 |
---|
iLya2IK
> Он у меня и так вырублен.
как вырублен? 2 модели 2 кубика и 14 FPS ???? (ATI X1300)
>Надо будет перекомпилить в 2010 - как раз посмотрим, как они там в действительности улучшили производительность.
я думаю никак не улучшили :)
> Он у меня и так вырублен.
как вырублен? 2 модели 2 кубика и 14 FPS ???? (ATI X1300)
>Надо будет перекомпилить в 2010 - как раз посмотрим, как они там в действительности улучшили производительность.
я думаю никак не улучшили :)
Душегубъ (FPS, наш ответ Крайсису :) | 9 мая 2010 | 17:26 | #19 |
---|
iLya2IK
прикольно. Но чего такой FPS маленький? Delphi код убивает проц? :))) VSync отключи.
прикольно. Но чего такой FPS маленький? Delphi код убивает проц? :))) VSync отключи.
Как передать кол-во знаков после запятой в printf | 9 мая 2010 | 2:22 | #18 |
---|
Конишуа
> Конечно, лучше получить не NUL-терминированную строку и упасть где-нибудь в
> другом месте.
решение в посте 15, причем простое :)
> А вот snprintf в отличие от _snprintf NUL-терминированность гарантирует.
это все хорошо, но вот Microsoft не хочет поддерживать C99 стандарт
> Конечно, лучше получить не NUL-терминированную строку и упасть где-нибудь в
> другом месте.
решение в посте 15, причем простое :)
> А вот snprintf в отличие от _snprintf NUL-терминированность гарантирует.
это все хорошо, но вот Microsoft не хочет поддерживать C99 стандарт
Как передать кол-во знаков после запятой в printf | 8 мая 2010 | 15:38 | #15 |
---|
Конишуа
> _snprintf абсолютно непригоден, потому что не гарантирует, что результат будет
> NUL-терменированный.
Зато не будет переполнения буфера, да и Саттер рекомендует ее. Никогда с переполнением не сталкивался? У меня было, в одном из проектов, где была написана система логирования использующая vsprintf вместо vsnprintf. Все глобальные переменные затерлись(а избавиться от них было на от момент не так просто и времени не было). Спасибо хватит.
> _snprintf абсолютно непригоден, потому что не гарантирует, что результат будет
> NUL-терменированный.
int num = snprintf(buf, sizeof(buf) - 1, ...); buf[num] = '\0';
снова gluUnProject | 8 мая 2010 | 15:23 | #17 |
---|
d3v310p3r
> Опять же... Объектов много... Матрица вида ведь меняется для каждого объекта?
> Возьмем для примера сферу...
>
> glRotate(...);
> glTranslate(...);
> ExtractFrustum(); // Находит 6 плоскостей отсечения пирамиды
> glutSolidSphere(5.0,20,20);
>
> glRotate(...);
> glTranslate(...);
> ExtractFrustum(); // Получается функцию вызывать всегда перед
> рисованием, и после изменения матрицы?
> glutSolidSphere(5.0,20,20);
Каждый объект должен содержать ограничивающий объем
BoundingBox, BoundingSphere уже находящийся в мировых координатах. Тогда проверка с frustum будет корректной и считать его нужно 1 раз за кадр.
> Опять же... Объектов много... Матрица вида ведь меняется для каждого объекта?
> Возьмем для примера сферу...
>
> glRotate(...);
> glTranslate(...);
> ExtractFrustum(); // Находит 6 плоскостей отсечения пирамиды
> glutSolidSphere(5.0,20,20);
>
> glRotate(...);
> glTranslate(...);
> ExtractFrustum(); // Получается функцию вызывать всегда перед
> рисованием, и после изменения матрицы?
> glutSolidSphere(5.0,20,20);
Каждый объект должен содержать ограничивающий объем
BoundingBox, BoundingSphere уже находящийся в мировых координатах. Тогда проверка с frustum будет корректной и считать его нужно 1 раз за кадр.
Как передать кол-во знаков после запятой в printf | 7 мая 2010 | 23:06 | #8 |
---|
Sergio
рекомендую не использовать sprintf - замени на _snprintf
kvakvs
> Да всё выглядит верно, можно не тестировать, ну кроме того, что Visual C начнёт
> ворчать по поводу "sprintf is unsafe and is deprecated, use sprintf_s instead".
рекомендую не использовать sprintf - замени на _snprintf
kvakvs
> Да всё выглядит верно, можно не тестировать, ну кроме того, что Visual C начнёт
> ворчать по поводу "sprintf is unsafe and is deprecated, use sprintf_s instead".
#define _CRT_SECURE_NO_DEPRECATE
снова gluUnProject | 7 мая 2010 | 23:01 | #8 |
---|
d3v310p3r
> Спасибо, но я все равное не понял =( Со временем думаю дойду до этого сам
что тебе не понятно?
Иерархические структуры данных позволяют подойти к проблеме выбора/поиска посредством работы с группой объектов, а не с единицей.
Код написанный Loxx45, как раз выполняет эту задачу он вполне понятный. Я бы конечно цикл по дочерним развернул в целях оптимизации, ну это уже другое.
> Спасибо, но я все равное не понял =( Со временем думаю дойду до этого сам
что тебе не понятно?
Иерархические структуры данных позволяют подойти к проблеме выбора/поиска посредством работы с группой объектов, а не с единицей.
Код написанный Loxx45, как раз выполняет эту задачу он вполне понятный. Я бы конечно цикл по дочерним развернул в целях оптимизации, ну это уже другое.
Глобальные переменные | 6 мая 2010 | 17:13 | #54 |
---|
Z
> Про перформанс - случайно затолкали мъ такое в какой-то код, которъй вдруг потом начали възъвать довольно часто (примерно какой-то флаг, режим рендера, >етц.) - начинают наползать всякие LHS, одна тъсяча за другой - и все ето из-за стиля кодинга.
Объясни пожалуйста что такое LHS ?
> Про перформанс - случайно затолкали мъ такое в какой-то код, которъй вдруг потом начали възъвать довольно часто (примерно какой-то флаг, режим рендера, >етц.) - начинают наползать всякие LHS, одна тъсяча за другой - и все ето из-за стиля кодинга.
Объясни пожалуйста что такое LHS ?
Кол.во источников света в кадре | 6 мая 2010 | 16:06 | #92 |
---|
innuendo
с размером 4.0 размер окна по умолчанию
1 - 260 FPS
2 - 126 FPS
3 - 85 FPS
4 - 61 FPS
5 - 59 FPS
6 - 40 FPS
7 - 35 FPS
8 - 30 FPS
почти FULL Screen
1 - 72 FPS
2 - 36 FPS
3 - 24 FPS
4 - 18 FPS
5 - 14 FPS
6 - 12 FPS
7 - 10 FPS
8 - 9 FPS
В Fill Rate все упирается. Чайник на весь экран.
с размером 4.0 размер окна по умолчанию
1 - 260 FPS
2 - 126 FPS
3 - 85 FPS
4 - 61 FPS
5 - 59 FPS
6 - 40 FPS
7 - 35 FPS
8 - 30 FPS
почти FULL Screen
1 - 72 FPS
2 - 36 FPS
3 - 24 FPS
4 - 18 FPS
5 - 14 FPS
6 - 12 FPS
7 - 10 FPS
8 - 9 FPS
В Fill Rate все упирается. Чайник на весь экран.
Кол.во источников света в кадре | 6 мая 2010 | 15:30 | #90 |
---|
innuendo
> размер в glutSolidSphere
СКОЛЬКО ты поставил ??. сразу чего не написал
как fullScreen в glut включить? не делал не разу это.
> размер в glutSolidSphere
СКОЛЬКО ты поставил ??. сразу чего не написал
как fullScreen в glut включить? не делал не разу это.
Кол.во источников света в кадре | 6 мая 2010 | 15:06 | #88 |
---|
innuendo
> ещё раз это у тебя на fullscreen или default ?
на default.
как чайник близко ты к экрану придвинул?
> ещё раз это у тебя на fullscreen или default ?
на default.
как чайник близко ты к экрану придвинул?
Кол.во источников света в кадре | 6 мая 2010 | 14:25 | #84 |
---|
Outlaw
щас разберемся :)
щас разберемся :)
Кол.во источников света в кадре | 6 мая 2010 | 14:24 | #83 |
---|
innuendo
> ты делал ресайз на fullscren ? или по дефаулту ?
по дефаулту.
в старой версии чайник близко к экрану как раз в Fill Rate упирается, давай кусок кода где это поправлено. я отключил VSync 200 FPS - 8 источников.
> ты делал ресайз на fullscren ? или по дефаулту ?
по дефаулту.
в старой версии чайник близко к экрану как раз в Fill Rate упирается, давай кусок кода где это поправлено. я отключил VSync 200 FPS - 8 источников.
Кол.во источников света в кадре | 6 мая 2010 | 14:15 | #79 |
---|
может для начала Vsync отрубить?
innuendo
а исходники демки есть?дай ссылку самому интересно стало, наверное из SDK 9.5 это.
innuendo
а исходники демки есть?дай ссылку самому интересно стало, наверное из SDK 9.5 это.
Вопрос про OpenGL и потоки. | 6 мая 2010 | 11:33 | #9 |
---|
Burz666
Опиши проблему подробнее и с куском кода. У меня все в отдельном потоке рисуется без проблем.
Расскажу про некоторые нюансы.
При входе в функцию потока контекст должен быть текущим в этом потоке(wglMakeCurrent) и именно только этом!!!. Он может быть расшарен с другими через wglShareList(но это вообще не нужно практически). Попытка вызовов glBind* функций в разных потоках приводит к ub. Ибо в этом API что-бы что-то сделать с ресурсом, его нужно сделать "текущим" функциями glBind*, в отличие от Direct3D API, где работа с изменением данных ресурса не связана с тем что он должен быть текущим для использования.
Проверяй вызовы всех функций wgl* на ошибки.
Опиши проблему подробнее и с куском кода. У меня все в отдельном потоке рисуется без проблем.
Расскажу про некоторые нюансы.
При входе в функцию потока контекст должен быть текущим в этом потоке(wglMakeCurrent) и именно только этом!!!. Он может быть расшарен с другими через wglShareList(но это вообще не нужно практически). Попытка вызовов glBind* функций в разных потоках приводит к ub. Ибо в этом API что-бы что-то сделать с ресурсом, его нужно сделать "текущим" функциями glBind*, в отличие от Direct3D API, где работа с изменением данных ресурса не связана с тем что он должен быть текущим для использования.
Проверяй вызовы всех функций wgl* на ошибки.