Сообщения на форуме пользователя Andrey (123 стр.)
Вопрос по GLSL | 6 дек. 2007 | 11:52 | #4 |
---|
unsigned
GeForce 2 поддерживает GLSL, сильно урезанный конечно и видать в Software режиме. Ну и у этой карты только есть только vs_1_1/GL_ARB_vertex_program если не ошибаюсь т.е. SM 2.0 нет.
GeForce 2 поддерживает GLSL, сильно урезанный конечно и видать в Software режиме. Ну и у этой карты только есть только vs_1_1/GL_ARB_vertex_program если не ошибаюсь т.е. SM 2.0 нет.
Получение плоскостей пирамиды видимости из проект. матрицы | 5 дек. 2007 | 15:08 | #1 |
---|
Похиподиум
работает для любого API.
// Функция расчета пирамиды INLINE void ExtractFrustum(const float *proj, const float *modl, bool IsNormalize = false) { float clip[16]; // Комбинируем матрицы(перемножаем) clip[ 0] = modl[ 0] * proj[ 0] + modl[ 1] * proj[ 4] + modl[ 2] * proj[ 8] + modl[ 3] * proj[12]; clip[ 1] = modl[ 0] * proj[ 1] + modl[ 1] * proj[ 5] + modl[ 2] * proj[ 9] + modl[ 3] * proj[13]; clip[ 2] = modl[ 0] * proj[ 2] + modl[ 1] * proj[ 6] + modl[ 2] * proj[10] + modl[ 3] * proj[14]; clip[ 3] = modl[ 0] * proj[ 3] + modl[ 1] * proj[ 7] + modl[ 2] * proj[11] + modl[ 3] * proj[15]; clip[ 4] = modl[ 4] * proj[ 0] + modl[ 5] * proj[ 4] + modl[ 6] * proj[ 8] + modl[ 7] * proj[12]; clip[ 5] = modl[ 4] * proj[ 1] + modl[ 5] * proj[ 5] + modl[ 6] * proj[ 9] + modl[ 7] * proj[13]; clip[ 6] = modl[ 4] * proj[ 2] + modl[ 5] * proj[ 6] + modl[ 6] * proj[10] + modl[ 7] * proj[14]; clip[ 7] = modl[ 4] * proj[ 3] + modl[ 5] * proj[ 7] + modl[ 6] * proj[11] + modl[ 7] * proj[15]; clip[ 8] = modl[ 8] * proj[ 0] + modl[ 9] * proj[ 4] + modl[10] * proj[ 8] + modl[11] * proj[12]; clip[ 9] = modl[ 8] * proj[ 1] + modl[ 9] * proj[ 5] + modl[10] * proj[ 9] + modl[11] * proj[13]; clip[10] = modl[ 8] * proj[ 2] + modl[ 9] * proj[ 6] + modl[10] * proj[10] + modl[11] * proj[14]; clip[11] = modl[ 8] * proj[ 3] + modl[ 9] * proj[ 7] + modl[10] * proj[11] + modl[11] * proj[15]; clip[12] = modl[12] * proj[ 0] + modl[13] * proj[ 4] + modl[14] * proj[ 8] + modl[15] * proj[12]; clip[13] = modl[12] * proj[ 1] + modl[13] * proj[ 5] + modl[14] * proj[ 9] + modl[15] * proj[13]; clip[14] = modl[12] * proj[ 2] + modl[13] * proj[ 6] + modl[14] * proj[10] + modl[15] * proj[14]; clip[15] = modl[12] * proj[ 3] + modl[13] * proj[ 7] + modl[14] * proj[11] + modl[15] * proj[15]; // извлекаем уравнение правой плоскости planes[RIGHTPLANE].ComputePlane(clip[ 3] - clip[ 0], clip[ 7] - clip[ 4], clip[11] - clip[ 8], clip[15] - clip[12]); // извлекаем уравнение левой плоскости planes[LEFTPLANE].ComputePlane(clip[ 3] + clip[ 0], clip[ 7] + clip[ 4], clip[11] + clip[ 8], clip[15] + clip[12]); // извлекаем уравнение нижней плоскости planes[BOTTOMPLANE].ComputePlane(clip[ 3] + clip[ 1], clip[ 7] + clip[ 5], clip[11] + clip[ 9], clip[15] + clip[13]); // извлекаем уравнение верхней плоскости planes[TOPPLANE].ComputePlane(clip[ 3] - clip[ 1], clip[ 7] - clip[ 5], clip[11] - clip[ 9], clip[15] - clip[13]); // извлекаем уравнение дальней плоскости planes[FARPLANE].ComputePlane( clip[ 3] - clip[ 2], clip[ 7] - clip[ 6], clip[11] - clip[10], clip[15] - clip[14]); // извлекаем уравнение ближней плоскости planes[NEARPLANE].ComputePlane(clip[ 3] + clip[ 2], clip[ 7] + clip[ 6], clip[11] + clip[10], clip[15] + clip[14]); if (IsNormalize) { // если надо нормализовать planes[RIGHTPLANE].normal.Normalize(); planes[LEFTPLANE].normal.Normalize(); planes[TOPPLANE].normal.Normalize(); planes[BOTTOMPLANE].normal.Normalize(); planes[NEARPLANE].normal.Normalize(); planes[FARPLANE].normal.Normalize(); } } |
Доделываю водичку. Советы, тесты, размышления. (Бывшее - Моя небольшая лужа) | 5 дек. 2007 | 11:39 | #23 |
---|
Asgard
>louken, да, на джифах 5-й серии крайне медленно пашет..
да это вообще карты этой серии медленные так что все ок.
>louken, да, на джифах 5-й серии крайне медленно пашет..
да это вообще карты этой серии медленные так что все ок.
Доделываю водичку. Советы, тесты, размышления. (Бывшее - Моя небольшая лужа) | 4 дек. 2007 | 20:18 | #16 |
---|
Asgard
20:16:03 : BlackCat Engine Opened
20:16:03 : BlackCat Engine Initialised
20:17:12 : --------Write FPS Data--------
20:17:12 : Engine Work Time: 65 seconds
20:17:12 : MinFPS: 15
20:17:12 : MaxFPS: 162
20:17:12 : Average FPS: 44
20:17:12 : BlackCat Engine Closed
ATI 9600 дрова 7.11.
20:16:03 : BlackCat Engine Opened
20:16:03 : BlackCat Engine Initialised
20:17:12 : --------Write FPS Data--------
20:17:12 : Engine Work Time: 65 seconds
20:17:12 : MinFPS: 15
20:17:12 : MaxFPS: 162
20:17:12 : Average FPS: 44
20:17:12 : BlackCat Engine Closed
ATI 9600 дрова 7.11.
Атмосферные эффекты в играх (Crytek, перевод) (комментарии) | 4 дек. 2007 | 11:50 | #5 |
---|
NULL_PTR
отличаня статья
отличаня статья
Пара вопросов по MFC | 4 дек. 2007 | 11:26 | #8 |
---|
slava_mib
>Объять необъятное, совместить несовместимое )))) MFC - древняя, неудобная, громоздкая и кривая вещь. В данный момент есть очень много альтернатив и 90% из них >гораздо удобнее и функциональнее MFC
MFC обновили в новой версии Visual C++ 2008 ;)
http://blogs.msdn.com/somasegar/archive/2007/11/09/visual-c-libra… s-update.aspx
так что не так все плохо с MFC.
>исходя из текущих реалий жизни - он устарел, неудобен и неуклюж.
не испытывал больших неудобств.
>Объять необъятное, совместить несовместимое )))) MFC - древняя, неудобная, громоздкая и кривая вещь. В данный момент есть очень много альтернатив и 90% из них >гораздо удобнее и функциональнее MFC
MFC обновили в новой версии Visual C++ 2008 ;)
http://blogs.msdn.com/somasegar/archive/2007/11/09/visual-c-libra… s-update.aspx
так что не так все плохо с MFC.
>исходя из текущих реалий жизни - он устарел, неудобен и неуклюж.
не испытывал больших неудобств.
Пара вопросов по MFC | 3 дек. 2007 | 19:38 | #3 |
---|
gs_4_1
>Если программа простая - WinAPI. Если сложная, то ИМХО стоит посмотреть в сторону других библиотек: Qt, wmWidgets.
может wxWidgets ? а не wmWidgets.
т.е. к примеру на wxWidgets писать проще чем на MFC ? дело стоит только за редактором ресурсов в MFC он беспоатный, а в wxWidgets нет.
Scart
>Стоит ли вообще использовать это творение мелкософта
стоит. Редактор Far Cry/Crysis написан на MFC даже не на .Net. Как бы не хаяли MFC это лучше чем VCL.
>Если программа простая - WinAPI. Если сложная, то ИМХО стоит посмотреть в сторону других библиотек: Qt, wmWidgets.
может wxWidgets ? а не wmWidgets.
т.е. к примеру на wxWidgets писать проще чем на MFC ? дело стоит только за редактором ресурсов в MFC он беспоатный, а в wxWidgets нет.
Scart
>Стоит ли вообще использовать это творение мелкософта
стоит. Редактор Far Cry/Crysis написан на MFC даже не на .Net. Как бы не хаяли MFC это лучше чем VCL.
Создание GUI. От начала до завершения. | 2 дек. 2007 | 19:24 | #121 |
---|
Aroch
А чем std::vector не устраивает? лишний раз заботится о том что не забыл сделать delete [] ?
Osiris
А чем std::vector не устраивает? лишний раз заботится о том что не забыл сделать delete [] ?
Osiris
// &stdvVertexes - вдрес класса std::vector но не начала данных. memcpy( pVoid, &stdvVertexes[0], m_uVertexBufferSize * sizeof(ORTOCOLORPOINTFACE) ); |
Cg->GL_ARB_vertex_program, не работает простейший вершинный шейдер | 2 дек. 2007 | 0:17 | #19 |
---|
innuendo
GL_MATRIX0_ARB с этим ничего не получилось :( пробовал разные варианты транспонирование, порядок умножения результат одинаков.
>Но, лично я – не сторонник делать сборную солянку. Cg
нету сборной солянки. Cg обеспечивает мне только удобную компиляцию шейдеров независимо от рендере. И нет смысла тянуть за собой Cg RunTime.
keltar
спасибо попробую.
GL_MATRIX0_ARB с этим ничего не получилось :( пробовал разные варианты транспонирование, порядок умножения результат одинаков.
>Но, лично я – не сторонник делать сборную солянку. Cg
нету сборной солянки. Cg обеспечивает мне только удобную компиляцию шейдеров независимо от рендере. И нет смысла тянуть за собой Cg RunTime.
keltar
спасибо попробую.
Неудавшийся эксперимент по текстурированию ландшафта. (комментарии) | 30 ноя. 2007 | 19:32 | #1 |
---|
Гляну статью твою потом что-нибудь скажу :)
Cg->GL_ARB_vertex_program, не работает простейший вершинный шейдер | 30 ноя. 2007 | 18:29 | #16 |
---|
innuendo
>glMatrixMode(GL_MATRIX0_ARB);
>glLoadMatrixf(matrix);
спасибо! это уже лучше, но это не то конечно что я писал но попробыать можно.
никогда не думал что в OpenGL такие проблемы с передачей матриц передача моих перемноженных рукми матриц работает в Direct3D
>Я не понял, в Cg есть же функции передачи матриц в program или нет ? :)
есть конечно, но причем тут Cg ?
но нафиг мне Cg для этого ??? он мне нужен для компиляции и все.
ты пробовал скачивать проект и посмотреть что не так? нужно что-бы было при работе двух шейдеров(1 использует glstate и матрицы перемножать и передавать не нужно, другой требует передачи матриц) одинаковый результат.
>glMatrixMode(GL_MATRIX0_ARB);
>glLoadMatrixf(matrix);
спасибо! это уже лучше, но это не то конечно что я писал но попробыать можно.
никогда не думал что в OpenGL такие проблемы с передачей матриц передача моих перемноженных рукми матриц работает в Direct3D
>Я не понял, в Cg есть же функции передачи матриц в program или нет ? :)
есть конечно, но причем тут Cg ?
но нафиг мне Cg для этого ??? он мне нужен для компиляции и все.
ты пробовал скачивать проект и посмотреть что не так? нужно что-бы было при работе двух шейдеров(1 использует glstate и матрицы перемножать и передавать не нужно, другой требует передачи матриц) одинаковый результат.
Лучше ли билборд на шейдере | 30 ноя. 2007 | 16:23 | #19 |
---|
Kavis
>это что условия в шейдере очень дорогая операция ?
ну не заточена архитектура GPU команд для команд сравнения.
>а и еще вопрос как определить для какой версию я шейдер написал, к примеру это наверно шейдер 2.0 ?
версии шейдеров в OpenGL немножко отличается от шейдеров на Direct3D фрагментный шейдер думаю потянет на версию ps_1_4 не более если не ошибаюсь. Хотя если много команд то видать 2.0. Вершинный потянут на vs_1_1
ну и более подробное соответcтвие шейдеров на OpenGL/Direct3.
http://www.gamedev.ru/faq/?id=102
>это что условия в шейдере очень дорогая операция ?
ну не заточена архитектура GPU команд для команд сравнения.
>а и еще вопрос как определить для какой версию я шейдер написал, к примеру это наверно шейдер 2.0 ?
версии шейдеров в OpenGL немножко отличается от шейдеров на Direct3D фрагментный шейдер думаю потянет на версию ps_1_4 не более если не ошибаюсь. Хотя если много команд то видать 2.0. Вершинный потянут на vs_1_1
ну и более подробное соответcтвие шейдеров на OpenGL/Direct3.
http://www.gamedev.ru/faq/?id=102
Cg->GL_ARB_vertex_program, не работает простейший вершинный шейдер | 30 ноя. 2007 | 15:24 | #14 |
---|
innuendo
All
В связи с внедрением теней в OpenGL рендере нужна передача матриц. Вот решил поднять тему для облегчения я сделал тестовый проект с 2 шейдерами на Cg которые потом компилятся в GL_ARB_vertex_program.
1 использует glstate другой нет. по нажатию на пробел шейдеры подменяются. В этом случае если используется шейдер не использующий glstate, засылается произведение Model * View *Projection в первый регистр. На экране должна быть крутящаяся сфера. Прошу кому не сложно сказать что не так.
http://www.gamedev.ru/download/?id=6385
http://www.gamedev.ru/download/?id=6386 - облегченная версия без библиотек.
All
В связи с внедрением теней в OpenGL рендере нужна передача матриц. Вот решил поднять тему для облегчения я сделал тестовый проект с 2 шейдерами на Cg которые потом компилятся в GL_ARB_vertex_program.
1 использует glstate другой нет. по нажатию на пробел шейдеры подменяются. В этом случае если используется шейдер не использующий glstate, засылается произведение Model * View *Projection в первый регистр. На экране должна быть крутящаяся сфера. Прошу кому не сложно сказать что не так.
http://www.gamedev.ru/download/?id=6385
http://www.gamedev.ru/download/?id=6386 - облегченная версия без библиотек.
Создание GUI. От начала до завершения. | 28 ноя. 2007 | 19:03 | #109 |
---|
Osiris
assert(iCharID - iID - 2 < stdvChars.size() && "Out of Range"); ftTemp = m_stdvChars[iCharID - iID - 2];
Particles. Упрощенный подход, но не работает. (Проблема решена, но появились вопросы про инстансинг) | 27 ноя. 2007 | 14:21 | #3 |
---|
Vel I
>Частицы выглядят красиво и работают быстро,
спешу тебя разочаровать glBegin/glEnd убьет твою производительность в демке где одни частицы да, конечно все быстро... используй VBO :)
>Частицы выглядят красиво и работают быстро,
спешу тебя разочаровать glBegin/glEnd убьет твою производительность в демке где одни частицы да, конечно все быстро... используй VBO :)