Сообщения на форуме пользователя Andrey (108 стр.)
Почему динамический буфер D3DUSAGE_DYNAMIC в D3DPOOL_DEFAULT медленнее чем в D3DPOOL_MANAGED | 23 мая 2008 | 18:07 | #11 |
---|
>я попробую обязательно, но не до конца понимаю почему это должно быстрее работать
все просто:
1) лочим маленькими кусками с D3DLOCK_NOOVERWRITE это значит что если это часть еще не отрисовалась то не будут данные записаны что даст оптимизиацию драйверу,
2) дальше в конце буфера мы лочим с D3DLOCK_DISCARD в этому случае возращается указатель который не инициализируется данными которые были ранее в буфере.
что тоже достаточно быстро
все просто:
1) лочим маленькими кусками с D3DLOCK_NOOVERWRITE это значит что если это часть еще не отрисовалась то не будут данные записаны что даст оптимизиацию драйверу,
2) дальше в конце буфера мы лочим с D3DLOCK_DISCARD в этому случае возращается указатель который не инициализируется данными которые были ранее в буфере.
что тоже достаточно быстро
D3DPOOL_MANAGED и E_OUTOFMEMORY | 23 мая 2008 | 10:58 | #3 |
---|
yuraiu02
возможно можно. Есть в Windows ккая-то утилита которая может вывести информацию которую скидывает функция OutputDebugString(при режиме DX Debug используется она скорей всего т.к. в окно отладки выводится информация)
возможно можно. Есть в Windows ккая-то утилита которая может вывести информацию которую скидывает функция OutputDebugString(при режиме DX Debug используется она скорей всего т.к. в окно отладки выводится информация)
Почему динамический буфер D3DUSAGE_DYNAMIC в D3DPOOL_DEFAULT медленнее чем в D3DPOOL_MANAGED | 22 мая 2008 | 19:25 | #2 |
---|
yuraiu02
делай Lock с флагом D3DLOCK_DISCARD
делай Lock с флагом D3DLOCK_DISCARD
Перезапись VBO в OpenGL | 22 мая 2008 | 18:23 | #1 |
---|
Minsk and Boo
ты точно со своими смещениями для нормалей и т.д. ничего не напутал? что говори glGetError()?
попробуй упростить задачу к примеру создай буфер просто с вершинами и индексами (без нормалей и текстурных координат) пробуй перезаписывать и проверять утечку.
ты точно со своими смещениями для нормалей и т.д. ничего не напутал? что говори glGetError()?
попробуй упростить задачу к примеру создай буфер просто с вершинами и индексами (без нормалей и текстурных координат) пробуй перезаписывать и проверять утечку.
D3DPOOL_MANAGED и E_OUTOFMEMORY | 22 мая 2008 | 18:19 | #1 |
---|
yuraiu02
а что говорит DX Debug?
а что говорит DX Debug?
Как лучше сделать класс SkinnedMesh? (варианты) | 22 мая 2008 | 12:03 | #1 |
---|
Dark Minstrel
>CAnimatedMesh: public CMesh
у меня сделано так-же. Это верный подход я думаю.
В случае скелетной анимации в наследуемом SkinnedMesh классе у меня прсот набор костей и кадров. Этот класс не знает ничего о самой геометрии. Он только формат вершин меняет для меша ну и вершинный буфер. В методе Update считается иерерахия матриц и они скидываются в шейдер. Рендер берет из Mesh все что нужно и рисует, и даже не знает какой это мешь анимированный или нет.Но у меня правда 1 скелет поэтому проблем с субмешами нет.
Я думаю нужно делать варинат когда есть CAnimatedMesh c группой костей влияющих на какой-то одельный subMesh из CMesh.
>CAnimatedMesh: public CMesh
у меня сделано так-же. Это верный подход я думаю.
В случае скелетной анимации в наследуемом SkinnedMesh классе у меня прсот набор костей и кадров. Этот класс не знает ничего о самой геометрии. Он только формат вершин меняет для меша ну и вершинный буфер. В методе Update считается иерерахия матриц и они скидываются в шейдер. Рендер берет из Mesh все что нужно и рисует, и даже не знает какой это мешь анимированный или нет.Но у меня правда 1 скелет поэтому проблем с субмешами нет.
Я думаю нужно делать варинат когда есть CAnimatedMesh c группой костей влияющих на какой-то одельный subMesh из CMesh.
хелп с DXT | 21 мая 2008 | 11:37 | #1 |
---|
MrShoor
посмотри пример из DirectX SDK DDSWithoutD3DX, он в папке Direct3D10 но есть реализация под Direct3D9
посмотри пример из DirectX SDK DDSWithoutD3DX, он в папке Direct3D10 но есть реализация под Direct3D9
Как задать область для рисования в OpenGl | 21 мая 2008 | 11:33 | #7 |
---|
alex19921992
потому что совершенно это разные вещи.
потому что совершенно это разные вещи.
d3d to opengl wrapping | 15 мая 2008 | 18:42 | #48 |
---|
The Andreyp
как я тебя понимаю :)
как я тебя понимаю :)
уменьшение CRT | 15 мая 2008 | 15:23 | #5 |
---|
Nomad
>к сожалению, от new/delete отказываться не хочется.. жаль црт нельзя отключать частями(
а перегрузить его самому напрямую вызывая внутри HeapAlloc/HeapFree?
>к сожалению, от new/delete отказываться не хочется.. жаль црт нельзя отключать частями(
а перегрузить его самому напрямую вызывая внутри HeapAlloc/HeapFree?
Толщина линий в DX | 15 мая 2008 | 11:17 | #2 |
---|
Rean
используй ID3DXLine
используй ID3DXLine
Bертекс/индекс буффер при экспорте из Макса | 14 мая 2008 | 13:51 | #8 |
---|
glslDevil - вышел аццкий дебаггер GLSL-шейдеров (OpenGL) | 14 мая 2008 | 0:31 | #27 |
---|
Под вистой internal debug error :-(
PSM на OpenGL | 13 мая 2008 | 10:58 | #12 |
---|
Executor
>А в чём тут преступление?
я пытаюсь переделать тени из Direct3D в OpenGL. Преступление в том что в Direct3D я использую D3DFMT_R32F(можно и D3DFMT_R16F тут дело в точности как ты сказал ) этот формат для 1 канала Red, а GL_RGBA16F_ARB как я понимаю для всех каналов и это большой расход памяти. Поэтому аналогично использовать GL_LUMINANCE32F_ARB(GL_LUMINANCE16F_ARB). В этом у меня не создается FBO на 6600GT при использовании GL_LUMINANCE32F_ARB, а на 8600GT все ок. если использовать GL_RGB32F_ARB то не создается не на 1 карте. Создается на всех картах GL_RGBA16F_ARB. Но если взять отрендеренную текстуру то ее внешний вид не такой как в Direct3D. т.е. она не содержит глубины. В случае использования GL_RGBA16F_ARB и вывода текстуры глубины на экран она содержит просто отрендеренную сцену :(. Хотя используется тот-же шейдер что и в Direct3D(я через Cg делаю). Может я не так использую FBO ?
ты можешь скинуть код создания FBO и использования? дабы не захламлять тему моржно продолжить общение в ICQ если не против.
>А в чём тут преступление?
я пытаюсь переделать тени из Direct3D в OpenGL. Преступление в том что в Direct3D я использую D3DFMT_R32F(можно и D3DFMT_R16F тут дело в точности как ты сказал ) этот формат для 1 канала Red, а GL_RGBA16F_ARB как я понимаю для всех каналов и это большой расход памяти. Поэтому аналогично использовать GL_LUMINANCE32F_ARB(GL_LUMINANCE16F_ARB). В этом у меня не создается FBO на 6600GT при использовании GL_LUMINANCE32F_ARB, а на 8600GT все ок. если использовать GL_RGB32F_ARB то не создается не на 1 карте. Создается на всех картах GL_RGBA16F_ARB. Но если взять отрендеренную текстуру то ее внешний вид не такой как в Direct3D. т.е. она не содержит глубины. В случае использования GL_RGBA16F_ARB и вывода текстуры глубины на экран она содержит просто отрендеренную сцену :(. Хотя используется тот-же шейдер что и в Direct3D(я через Cg делаю). Может я не так использую FBO ?
ты можешь скинуть код создания FBO и использования? дабы не захламлять тему моржно продолжить общение в ICQ если не против.
PSM на OpenGL | 11 мая 2008 | 16:40 | #8 |
---|
Exelents
>Слушай, я сейчас поставил свежие дрова (номер 163) и оно (FBO + F32 на nVidia) заработало. Может стоит обновить дрова?
у меня интсрументальные дрова вместе c PefHUD поэтому не хочется переустанавливать другие.
Я немного сдвинулся с места оказывается я сделал ошт\ибку я использовал GL_RGB32F_ARB а правильней GL_LUMINANCE32F_ARB. В я в аську к тебе постучался. Ты какую константу использовал?
>Слушай, я сейчас поставил свежие дрова (номер 163) и оно (FBO + F32 на nVidia) заработало. Может стоит обновить дрова?
у меня интсрументальные дрова вместе c PefHUD поэтому не хочется переустанавливать другие.
Я немного сдвинулся с места оказывается я сделал ошт\ибку я использовал GL_RGB32F_ARB а правильней GL_LUMINANCE32F_ARB. В я в аську к тебе постучался. Ты какую константу использовал?