Сообщения на форуме пользователя Andrey (155 стр.)
Аналоги OpenGL - DirectX | 19 дек. 2006 | 12:38 | #9 |
---|
antber
>И что это за буфер в конце концов, применительно для DirectX?
создаешь текстуру с флагом D3DUSAGE_RENDERTARGET это и будет примерно тоже самое.
evirus
хотя бы знать основы каждого API не будет проблем с изучением докусеентации и т.д.
>И что это за буфер в конце концов, применительно для DirectX?
создаешь текстуру с флагом D3DUSAGE_RENDERTARGET это и будет примерно тоже самое.
evirus
хотя бы знать основы каждого API не будет проблем с изучением докусеентации и т.д.
Аналоги OpenGL - DirectX | 19 дек. 2006 | 11:47 | #1 |
---|
antber
изучай оба API
тогда не будет проблем.
FBO, P-buffer это средства применяемое к примеру для рендера в текстуру.
>какой у него кэпс?
нету caps'ов в OpenGL. что-бы узнать возможности нужно проверять наличие расширений поддерживаемых картой.
изучай оба API
тогда не будет проблем.
FBO, P-buffer это средства применяемое к примеру для рендера в текстуру.
>какой у него кэпс?
нету caps'ов в OpenGL. что-бы узнать возможности нужно проверять наличие расширений поддерживаемых картой.
Менеджмент сцены | 18 дек. 2006 | 19:30 | #3 |
---|
>вот тут может быть оверхед когда он не полностью виден.
может поэтому лучше спуститься по дереву
ну в общем у тебя получился что=-то тима усовершенствованyого Scene Graph'а
если есть окклюдеры и порталы то это дополнительно делает оптимизацию
вроде все норимально идея жизнеспособна. Но конкретные вопросы и проблемы могут возникать по ходу реализации.
может поэтому лучше спуститься по дереву
ну в общем у тебя получился что=-то тима усовершенствованyого Scene Graph'а
если есть окклюдеры и порталы то это дополнительно делает оптимизацию
вроде все норимально идея жизнеспособна. Но конкретные вопросы и проблемы могут возникать по ходу реализации.
Менеджмент сцены | 18 дек. 2006 | 18:57 | #1 |
---|
>Вся геометрия режется на octree тайлы.
вот тут поподробней
туда что входит геометрия ландшафта модели полностью с AABB или может кусок входить и т.д.
>Каждый тайл содержит в себе hardware index и vertex буферы. (по одному)
формат вершин одинаковый для всего BV/IB или нет? как быть с разными форматами
>Для индуров мы создаем надстройку в виде зон, порталов и окклюдеров.
>Т.е. тайлы никуда не деваются.
тоже не совсем понятно что такое окклюдер? (можно куда нибудь меня заслать почитать книжки я с удовольствием ;) )
>Выгода в том, что геометрия лежит в видеокарте и индексы совсем
>не считаются каждый кадр.
для статики это понятно, как дело обстоит с динамическими объектами? будет отслеживание перемещение по острее тайлам?
>Минус в дополнительном рисовании излишней невидимой геометрии.
это почему? если веден острее тайл полностю, рендерим все без проверки вглубь дерева, иначе спуск по дереву. тут нужно оптимально подобрать соотношение нагрузки CPU/GPU или я неправильно понимаю?
вот тут поподробней
туда что входит геометрия ландшафта модели полностью с AABB или может кусок входить и т.д.
>Каждый тайл содержит в себе hardware index и vertex буферы. (по одному)
формат вершин одинаковый для всего BV/IB или нет? как быть с разными форматами
>Для индуров мы создаем надстройку в виде зон, порталов и окклюдеров.
>Т.е. тайлы никуда не деваются.
тоже не совсем понятно что такое окклюдер? (можно куда нибудь меня заслать почитать книжки я с удовольствием ;) )
>Выгода в том, что геометрия лежит в видеокарте и индексы совсем
>не считаются каждый кадр.
для статики это понятно, как дело обстоит с динамическими объектами? будет отслеживание перемещение по острее тайлам?
>Минус в дополнительном рисовании излишней невидимой геометрии.
это почему? если веден острее тайл полностю, рендерим все без проверки вглубь дерева, иначе спуск по дереву. тут нужно оптимально подобрать соотношение нагрузки CPU/GPU или я неправильно понимаю?
Протестите прогу с GLSL освещением | 15 дек. 2006 | 19:25 | #14 |
---|
Ferrum
работает GeForce 6600
Radeon 9600 прога падает :(
работает GeForce 6600
Radeon 9600 прога падает :(
Выбор бесплатного графического движка | 14 дек. 2006 | 10:57 | #140 |
---|
Keysal
Я смотрел но не очень глубоко.
Я смотрел но не очень глубоко.
Lua. Как прочесть значение переменной из конфига. | 13 дек. 2006 | 18:13 | #11 |
---|
nstd
да + есть, но что не удобно что отдельно файлы нужно таскать для связки классов...
luabind все в несколько строк подключает
да + есть, но что не удобно что отдельно файлы нужно таскать для связки классов...
luabind все в несколько строк подключает
Lua. Как прочесть значение переменной из конфига. | 13 дек. 2006 | 14:25 | #8 |
---|
nstd
Спасибо!!!
ну что-то сильно много по сравнению с luabind
Спасибо!!!
ну что-то сильно много по сравнению с luabind
Выбор бесплатного графического движка | 13 дек. 2006 | 11:08 | #123 |
---|
V0id
Говорят ничего движок... скриншоты впечатляют и исходники грамотные
Говорят ничего движок... скриншоты впечатляют и исходники грамотные
Lua. Как прочесть значение переменной из конфига. | 12 дек. 2006 | 14:06 | #6 |
---|
nstd
приведи пожалуйста пример использования tolua++
к примеру для такого класса
и простейший скрипт который меняет данные.
с C++ кодом который это все связывает.
спасибо заранее.
приведи пожалуйста пример использования tolua++
к примеру для такого класса
struct GameObject { int curState; bool isEmpty; };
с C++ кодом который это все связывает.
спасибо заранее.
Lua Coroutines | 12 дек. 2006 | 13:59 | #6 |
---|
+
Выбор бесплатного графического движка | 12 дек. 2006 | 13:07 | #113 |
---|
Andrushka
закинь в качалку!
если много давай на мыло
закинь в качалку!
если много давай на мыло
Выбор бесплатного графического движка | 11 дек. 2006 | 11:54 | #85 |
---|
IronBunny
>;) ето что реально такая вот красота внутре у Irrlicht? Ну да, это по-пацански наверное....
да да реально!!!
Z вот уже не 1 сообщение видел на форуме о том что Irrlicht быстрый, вот и решал спросить, но ответа и не дождался...
Значит шейдеры поддерживает, а вот рендер геометрии на убогом уровне...
а вообще это только 1 большой минус этого движка. В общем он простой и понятный. Но для нормальных проектов боже упаси его
использовать!!
ЗлобныйШкольнег
>чем сверхоптимизированный рендер.
это даже не оптимизация рендера это основы основ!!! избегать передачи геометрических данных CPU->GPU.
>;) ето что реально такая вот красота внутре у Irrlicht? Ну да, это по-пацански наверное....
да да реально!!!
Z вот уже не 1 сообщение видел на форуме о том что Irrlicht быстрый, вот и решал спросить, но ответа и не дождался...
Значит шейдеры поддерживает, а вот рендер геометрии на убогом уровне...
а вообще это только 1 большой минус этого движка. В общем он простой и понятный. Но для нормальных проектов боже упаси его
использовать!!
ЗлобныйШкольнег
>чем сверхоптимизированный рендер.
это даже не оптимизация рендера это основы основ!!! избегать передачи геометрических данных CPU->GPU.
Выбор бесплатного графического движка | 11 дек. 2006 | 11:21 | #80 |
---|
resurected_timofei
>CrystalSpace
ну очень там много всего... но не все понятно :(
но сюдя по скриншотам движок неплохой.
>CrystalSpace
ну очень там много всего... но не все понятно :(
но сюдя по скриншотам движок неплохой.
Выбор бесплатного графического движка | 11 дек. 2006 | 11:11 | #79 |
---|
Centurion
>- быстрее, чем Ogre, но все же не так, как хотелось бы.
это как это??? передача геометрии CPU->GPU это быстрее чем VB/IB в видео памяти?
ты исходники смотрел?
как тебе это:
может я чего то не допонимаю, но объясните мне как может DrawIndexedPrimitiveUP для Direct3D и glTexCoordPointer/glVertexPointer/glnormalPointer с установкой указателей на данные из RAM(но не из видео памяти), может быть быстрей использования вершинных и индексных буферов в видео памяти? т.е. DrawIndexedPrimitive и glBindBufferARB
вот многие говорят про скорость но кто нибудь загружал на
Irrlicht ландшафт 513x513 + 70 анимированных моделей + 700 статических моделей + шейдеры ? и какова будет скорость на таком способе рендеринге геометрии???
>- быстрее, чем Ogre, но все же не так, как хотелось бы.
это как это??? передача геометрии CPU->GPU это быстрее чем VB/IB в видео памяти?
ты исходники смотрел?
как тебе это:
//! draws a vertex primitive list void CD3D9Driver::drawVertexPrimitiveList(const void* vertices, s32 vertexCount, const u16* indexList, s32 primitiveCount, E_VERTEX_TYPE vType, scene::E_PRIMITIVE_TYPE pType) .... if (setRenderStates3DMode()) { switch (pType) { case scene::EPT_POINTS: pID3DDevice->DrawIndexedPrimitiveUP(D3DPT_POINTLIST, 0, vertexCount, primitiveCount, indexList, D3DFMT_INDEX16, vertices, stride); break; case scene::EPT_LINE_STRIP: pID3DDevice->DrawIndexedPrimitiveUP(D3DPT_LINESTRIP, 0, vertexCount, primitiveCount, indexList, D3DFMT_INDEX16, vertices, stride); break; case scene::EPT_LINE_LOOP: { pID3DDevice->DrawIndexedPrimitiveUP(D3DPT_LINESTRIP, 0, vertexCount, primitiveCount, indexList, D3DFMT_INDEX16, vertices, stride); u16 tmpIndices[] = {0, primitiveCount}; pID3DDevice->DrawIndexedPrimitiveUP(D3DPT_LINELIST, 0, vertexCount, 1, tmpIndices, D3DFMT_INDEX16, vertices, stride); } break; case scene::EPT_LINES: pID3DDevice->DrawIndexedPrimitiveUP(D3DPT_LINELIST, 0, vertexCount, primitiveCount, indexList, D3DFMT_INDEX16, vertices, stride); break; case scene::EPT_TRIANGLE_STRIP: pID3DDevice->DrawIndexedPrimitiveUP(D3DPT_TRIANGLESTRIP, 0, vertexCount, primitiveCount, indexList, D3DFMT_INDEX16, vertices, stride); break; case scene::EPT_TRIANGLE_FAN: pID3DDevice->DrawIndexedPrimitiveUP(D3DPT_TRIANGLEFAN, 0, vertexCount, primitiveCount, indexList, D3DFMT_INDEX16, vertices, stride); break; case scene::EPT_TRIANGLES: pID3DDevice->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, vertexCount, primitiveCount, indexList, D3DFMT_INDEX16, vertices, stride); break; } } } //! draws a vertex primitive list void COpenGLDriver::drawVertexPrimitiveList(const void* vertices, s32 vertexCount, const u16* indexList, s32 primitiveCount, E_VERTEX_TYPE vType, scene::E_PRIMITIVE_TYPE pType) ... switch (vType) { case EVT_STANDARD: glVertexPointer(3, GL_FLOAT, sizeof(S3DVertex), &((S3DVertex*)vertices)[0].Pos); glNormalPointer(GL_FLOAT, sizeof(S3DVertex), &((S3DVertex*)vertices)[0].Normal); glTexCoordPointer(2, GL_FLOAT, sizeof(S3DVertex), &((S3DVertex*)vertices)[0].TCoords); break; case EVT_2TCOORDS: glVertexPointer(3, GL_FLOAT, sizeof(S3DVertex2TCoords), &((S3DVertex2TCoords*)vertices)[0].Pos); glNormalPointer(GL_FLOAT, sizeof(S3DVertex2TCoords), &((S3DVertex2TCoords*)vertices)[0].Normal); // texture coordinates if (MultiTextureExtension) { extGlClientActiveTextureARB(GL_TEXTURE1_ARB); glEnableClientState ( GL_TEXTURE_COORD_ARRAY ); glTexCoordPointer(2, GL_FLOAT, sizeof(S3DVertex2TCoords), &((S3DVertex2TCoords*)vertices)[0].TCoords2); extGlClientActiveTextureARB(GL_TEXTURE0_ARB); } glTexCoordPointer(2, GL_FLOAT, sizeof(S3DVertex2TCoords), &((S3DVertex2TCoords*)vertices)[0].TCoords); break; case EVT_TANGENTS: glVertexPointer(3, GL_FLOAT, sizeof(S3DVertexTangents), &((S3DVertexTangents*)vertices)[0].Pos); glNormalPointer(GL_FLOAT, sizeof(S3DVertexTangents), &((S3DVertexTangents*)vertices)[0].Normal); // texture coordinates if (MultiTextureExtension) { extGlClientActiveTextureARB(GL_TEXTURE1_ARB); glEnableClientState ( GL_TEXTURE_COORD_ARRAY ); glTexCoordPointer(3, GL_FLOAT, sizeof(S3DVertexTangents), &((S3DVertexTangents*)vertices)[0].Tangent); extGlClientActiveTextureARB(GL_TEXTURE2_ARB); glEnableClientState ( GL_TEXTURE_COORD_ARRAY ); glTexCoordPointer(3, GL_FLOAT, sizeof(S3DVertexTangents), &((S3DVertexTangents*)vertices)[0].Binormal); extGlClientActiveTextureARB(GL_TEXTURE0_ARB); } glTexCoordPointer(2, GL_FLOAT, sizeof(S3DVertexTangents), &((S3DVertexTangents*)vertices)[0].TCoords); break; } switch (pType) { case scene::EPT_POINTS: glDrawArrays(GL_POINTS, 0, primitiveCount); break; case scene::EPT_LINE_STRIP: glDrawElements(GL_LINE_STRIP, primitiveCount+1, GL_UNSIGNED_SHORT, indexList); break; case scene::EPT_LINE_LOOP: glDrawElements(GL_LINE_LOOP, primitiveCount, GL_UNSIGNED_SHORT, indexList); break; case scene::EPT_LINES: glDrawElements(GL_LINES, primitiveCount*2, GL_UNSIGNED_SHORT, indexList); break; case scene::EPT_TRIANGLE_STRIP: glDrawElements(GL_TRIANGLE_STRIP, primitiveCount+2, GL_UNSIGNED_SHORT, indexList); break; case scene::EPT_TRIANGLE_FAN: glDrawElements(GL_TRIANGLE_FAN, primitiveCount+2, GL_UNSIGNED_SHORT, indexList); break; case scene::EPT_TRIANGLES: glDrawElements(GL_TRIANGLES, primitiveCount*3, GL_UNSIGNED_SHORT, indexList); break; case scene::EPT_QUAD_STRIP: glDrawElements(GL_QUAD_STRIP, primitiveCount*2+2, GL_UNSIGNED_SHORT, indexList); break; case scene::EPT_QUADS: glDrawElements(GL_QUADS, primitiveCount*4, GL_UNSIGNED_SHORT, indexList); break; case scene::EPT_POLYGON: glDrawElements(GL_POLYGON, primitiveCount, GL_UNSIGNED_SHORT, indexList); break; } ... } |
вот многие говорят про скорость но кто нибудь загружал на
Irrlicht ландшафт 513x513 + 70 анимированных моделей + 700 статических моделей + шейдеры ? и какова будет скорость на таком способе рендеринге геометрии???