Сообщения на форуме пользователя Andrey (136 стр.)
HLSL инициализация | 14 июня 2007 | 11:02 | #1 |
---|
xeda
эм... DirextX Debug что говорит?
Тут не телепаты давай минимум кусок кода. и код шейдера.
эм... DirextX Debug что говорит?
Тут не телепаты давай минимум кусок кода. и код шейдера.
Cg->GL_ARB_vertex_program, не работает простейший вершинный шейдер | 14 июня 2007 | 10:58 | #2 |
---|
innuendo
Пробовал :( Не помогло. Еще надо попробовать с разными вариантами.
С оcтальным все нормально?
Пробовал :( Не помогло. Еще надо попробовать с разными вариантами.
С оcтальным все нормально?
Cg->GL_ARB_vertex_program, не работает простейший вершинный шейдер | 13 июня 2007 | 20:12 | #0 |
---|
Привет всем!
компилю простейший шейдер с помощью Cg 1.5.0019(февральское обновление) в профиль arbvp1
вот шейдер:
вот что выдается в результате:
где data это const char* содержащий asm код выданный Cg.
использую так, сначала вычисляю перемножение model*view*projection
и записываю это в структуру описания констант:
далее стандартный код использования GL_ARB_vertex_program:
далее установка конатант:
afIt->startIndex == 1;
Без вершинного шейдера все работает. Проcтейший пиксельный шейдер то же работает.
пробовал перемножать матрицы без world т.е. (*worldViewProj) = view * proj; Грешил на неправильное перемножение матриц
попробовал сделать это с иcпользованием D3DX с world и без world.
поменял в шейдере местами position и ModelViewProjection т.е.
попробовал перемножение матриц со своим классом и D3DX, с world и без world
Ничего не помогло!
Пробовал на картах Radeon X1300(драйвера последние 7.5) и GeForce 6600 (там правда NVPerfHUD)
GL_NO_ERROR == glGetError() всегда.
Что я делаю не так?
спасибо всем заранее с Уважением Андрей.
компилю простейший шейдер с помощью Cg 1.5.0019(февральское обновление) в профиль arbvp1
вот шейдер:
struct PS { float4 position : POSITION; // position in projection space float2 uv0 : TEXCOORD0; // texture coordinate }; uniform float4x4 ModelViewProjection : WorldViewProj; // the model*view*projection matrix PS vsMain(float4 position : POSITION, float2 uv0 : TEXCOORD0) { PS vsOut; vsOut.position = mul(position, ModelViewProjection); vsOut.uv0 = uv0; return vsOut; } |
Гружу шейдер как обычно:
// получить идентификатор glGenProgramsARB(1, &id); // проверка ошибки OpenGL oglRender->CheckOpenGLError(); // выбрать glBindProgramARB(GL_VERTEX_PROGRAM_ARB, id); // загрузить программу glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, static_cast<GLsizei>(len), data); // проверка ошибок if (!CheckARBProgramError()) { return NULL; } ....
использую так, сначала вычисляю перемножение model*view*projection
и записываю это в структуру описания констант:
// получить текущую видовую матрицу glGetFloatv(GL_MODELVIEW_MATRIX, world); // получить указатель на хранение констант(std::vector<float> == 16 элементов) Matrix4x4 *worldViewProj = reinterpret_cast<Matrix4x4 *>(&afIt->constantData[0]); // матрица камеры const Matrix4x4 &view = camera.GetViewMatrix(); // матрица проекций const Matrix4x4 &proj = camera.GetProjectionMatrix(); // перемножение 3 матриц (*worldViewProj) = (*reinterpret_cast<const Matrix4x4 *>(&world)) * view * proj; |
// разрешить использование glEnable(GL_VERTEX_PROGRAM_ARB); // выбрать текущую программу glBindProgramARB(GL_VERTEX_PROGRAM_ARB, shader);
Без вершинного шейдера все работает. Проcтейший пиксельный шейдер то же работает.
пробовал перемножать матрицы без world т.е. (*worldViewProj) = view * proj; Грешил на неправильное перемножение матриц
попробовал сделать это с иcпользованием D3DX с world и без world.
поменял в шейдере местами position и ModelViewProjection т.е.
vsOut.position = mul(ModelViewProjection, position);
Ничего не помогло!
Пробовал на картах Radeon X1300(драйвера последние 7.5) и GeForce 6600 (там правда NVPerfHUD)
GL_NO_ERROR == glGetError() всегда.
Что я делаю не так?
спасибо всем заранее с Уважением Андрей.
Обертки для работы с GLSL, у кого как? | 13 июня 2007 | 15:09 | #6 |
---|
KpeHDeJIb
передача параметров только через Uniform, заранее уже пропарсенные при загрузки.
передача параметров только через Uniform, заранее уже пропарсенные при загрузки.
Parallax Demo | 13 июня 2007 | 14:49 | #32 |
---|
paladinrus
112 FPS Hight GeForce 6600
112 FPS Hight GeForce 6600
Tokamak стала open-source. (комментарии) | 8 июня 2007 | 16:34 | #8 |
---|
GLoom
RagDroll ?
RagDroll ?
Texture manager | 7 июня 2007 | 19:45 | #8 |
---|
0r@ngE
>хотя блин не хотелось STL юзать
аргументы? попробуй STLPort одна из лучших реализаций
http://www.stlport.org/
>хотя блин не хотелось STL юзать
аргументы? попробуй STLPort одна из лучших реализаций
http://www.stlport.org/
Стиль кодирования (C++). Кто как пишет? Опрос. | 7 июня 2007 | 16:38 | #40 |
---|
1. б
2. б
3. б
4. а
5. б
6. в
поправка: void main() { if(1) { } }
3. б
4. а
5. б
6. в
Организация разделения систем рендеринга в игровом движке | 7 июня 2007 | 11:22 | #12 |
---|
widget_fx
>смотрел в ОГРе, там както по другому всетаки сделано
там сделано так-же.
Ghost2,Спец, cppboris правы.
забей макросами
все файлы Cpp и H что связано с Direct3D. чтобы вообще не подключалось и не компилилось.
для OpenGL нужно еще переделать инициализация под другую платформу. Хотя тут может помочь SDL.
>смотрел в ОГРе, там както по другому всетаки сделано
там сделано так-же.
Ghost2,Спец, cppboris правы.
забей макросами
#ifdef _WIN32 ... #endif
для OpenGL нужно еще переделать инициализация под другую платформу. Хотя тут может помочь SDL.
Форматы моделей | 5 июня 2007 | 20:04 | #3 |
---|
Transparent Shadows demo - Revisited | 4 июня 2007 | 13:55 | #21 |
---|
NULL_PTR
>>около 13 FPS на GeForce 6600.
>Хм, у меня на Radeon9800pro на максимуме - 15 avarage fps.
может и-за того что у меня NVPerfHUD ?
>>около 13 FPS на GeForce 6600.
>Хм, у меня на Radeon9800pro на максимуме - 15 avarage fps.
может и-за того что у меня NVPerfHUD ?
Tokamak стала open-source. (комментарии) | 1 июня 2007 | 13:29 | #5 |
---|
XIRMAC
Это очнь хорошая идея. Есть с ним проблемы.
Это очнь хорошая идея. Есть с ним проблемы.
Transparent Shadows demo - Revisited | 31 мая 2007 | 19:46 | #4 |
---|
NULL_PTR
около 13 FPS на GeForce 6600.
около 13 FPS на GeForce 6600.
Occlusion Culling на ландшафте | 31 мая 2007 | 18:26 | #11 |
---|
Petelnikov
Спасибо за сслыки!
По поводу ссылок 6-8
Извиняюсь за ламерский вопрос а чем открывать файлы *.ps ? :)
Спасибо за сслыки!
По поводу ссылок 6-8
Извиняюсь за ламерский вопрос а чем открывать файлы *.ps ? :)
Перлы Форума Gamedev.ru | 31 мая 2007 | 13:26 | #2628 |
---|
NULL_PTR
:)))))))))))))))))))))))))))))))))))
:)))))))))))))))))))))))))))))))))))