Сообщения на форуме пользователя Andrey (98 стр.)
Правильная система частиц на DX9 + HLSL | 14 окт. 2008 | 13:07 | #10 |
---|
LIVe
да кстати только что заметил используй индексный буфер. Это даст прирост отрисовки + уменьшится объем заливки данных, и расчет вершин на CPU.
да кстати только что заметил используй индексный буфер. Это даст прирост отрисовки + уменьшится объем заливки данных, и расчет вершин на CPU.
Правильная система частиц на DX9 + HLSL | 14 окт. 2008 | 12:42 | #8 |
---|
LIVe
ну еще как вариант лочить не весь буфер, а частично - на размер живых частиц, ну и выводить все-таки не все, а только живые.
ну еще как вариант лочить не весь буфер, а частично - на размер живых частиц, ну и выводить все-таки не все, а только живые.
Правильная система частиц на DX9 + HLSL | 13 окт. 2008 | 19:00 | #1 |
---|
LIVe
>Приходится на каждом кадре или как минимум при каждом пересчете состояния системы частиц делать Lock/Unlock вершинному буферу.
ты лочишь буфер правильно? c правильными флагами? копируешь данные 1 строчкой (к примеру memcpy, а сами вершины сидят в системной памяти)?
создаешь в каком пуле?
>Хотябы вершинные для пересчёта координат вершин.
сложно представить что еще можно сделать на них ну если только еще работа с цветом.
>Все либо не то, либо для OpenGL, либо не на HLSL.
остается вариант либо asm либо Cg (тот-же HLSL)
>как из шейдера управлять созданием/удалением частиц.
Наверное только CPU. Помечать частицу что она неактивна, перемещать в конец массива. Удалять не обязательно. При создании задавать начальные параметры. Использовать единый pool частиц.
В шейдере можно получить 10-20% скорости за счет вынесения геометрических расчётов на GPU, большую часть времени все равно занимает расчет параметров + заливка данных в буферы. Но действовать несколькими аффекторами работа, с разными эмиттерами, да еще со сложными параметрами на вершинных шейдерах врядли возможна.
>Приходится на каждом кадре или как минимум при каждом пересчете состояния системы частиц делать Lock/Unlock вершинному буферу.
ты лочишь буфер правильно? c правильными флагами? копируешь данные 1 строчкой (к примеру memcpy, а сами вершины сидят в системной памяти)?
создаешь в каком пуле?
>Хотябы вершинные для пересчёта координат вершин.
сложно представить что еще можно сделать на них ну если только еще работа с цветом.
>Все либо не то, либо для OpenGL, либо не на HLSL.
остается вариант либо asm либо Cg (тот-же HLSL)
>как из шейдера управлять созданием/удалением частиц.
Наверное только CPU. Помечать частицу что она неактивна, перемещать в конец массива. Удалять не обязательно. При создании задавать начальные параметры. Использовать единый pool частиц.
В шейдере можно получить 10-20% скорости за счет вынесения геометрических расчётов на GPU, большую часть времени все равно занимает расчет параметров + заливка данных в буферы. Но действовать несколькими аффекторами работа, с разными эмиттерами, да еще со сложными параметрами на вершинных шейдерах врядли возможна.
Проблема с загрузкой файла эффектов | 9 окт. 2008 | 18:41 | #1 |
---|
Ну смотри в Debug Output ошибки:
Проблема с ортогональным проецированием | 9 окт. 2008 | 18:34 | #1 |
---|
christof
По другому как задать больше w, h ничего не выйдет. Можно попробовать уменьшать w, h объектов после расчета финального AABB, бокса после поиска объектов попавших в тень это чуть уменьшит возможно алиасинг. Ну, а для поиска объектов использовать начальные заданные значения w, h.
Но лучше перейти из Standart Shadow Map на более продвинутые техники PSM(Perspective Shadow Map), PSSM(Parallel Split Shadow Map), LSPSM(Light Space Perspective Shadow Map), TSM(Trapezoidal Shadow Maps
), CSM(Cascade Shadow Map)
По другому как задать больше w, h ничего не выйдет. Можно попробовать уменьшать w, h объектов после расчета финального AABB, бокса после поиска объектов попавших в тень это чуть уменьшит возможно алиасинг. Ну, а для поиска объектов использовать начальные заданные значения w, h.
Но лучше перейти из Standart Shadow Map на более продвинутые техники PSM(Perspective Shadow Map), PSSM(Parallel Split Shadow Map), LSPSM(Light Space Perspective Shadow Map), TSM(Trapezoidal Shadow Maps
), CSM(Cascade Shadow Map)
Uniforms GLSL | 9 окт. 2008 | 13:13 | #1 |
---|
Crazy_Dreamer
если я не ошибаюсь то gl_LightSource требует больше регистров чем если бы ты сам передал.
ну и дополнительные вызовы устаревших функций glLight*
если я не ошибаюсь то gl_LightSource требует больше регистров чем если бы ты сам передал.
ну и дополнительные вызовы устаревших функций glLight*
проблема с glDrawElements! | 8 окт. 2008 | 13:05 | #1 |
---|
OberMeister
а индексы где?
и куда ты фигячишь вершины в glDrawElements когда нужны индексы?
а индексы где?
и куда ты фигячишь вершины в glDrawElements когда нужны индексы?
Влияет ли длина хэндлов в fx-файле на производительность ? | 7 окт. 2008 | 11:52 | #6 |
---|
ksacvet777
>PAnsiCharToD3DXHandle('tex0')
ну а зачем каждый раз прокидыать указатель? можно же 1 раз при загрузке эффекта все хендлы получить. То что сделать можно 1 раз - лучше делать 1 раз.
>PAnsiCharToD3DXHandle('tex0')
ну а зачем каждый раз прокидыать указатель? можно же 1 раз при загрузке эффекта все хендлы получить. То что сделать можно 1 раз - лучше делать 1 раз.
Проблемы в Direct3d с отображением примитивов на ATI | 3 окт. 2008 | 21:19 | #6 |
---|
bool
>интересно как оно тогда на нвидиа работало...
это в Release работало. Но в Debug будет тоже самое что и на ATI
>интересно как оно тогда на нвидиа работало...
это в Release работало. Но в Debug будет тоже самое что и на ATI
Проблемы в Direct3d с отображением примитивов на ATI | 2 окт. 2008 | 23:24 | #3 |
---|
Semson
неверно работаешь с вершинным буфером скорей всего, DX Debug, Software Vertex Processing(при создании Device )помогут тебе.
неверно работаешь с вершинным буфером скорей всего, DX Debug, Software Vertex Processing(при создании Device )помогут тебе.
Помогите с D3DXMatrixTranslation | 2 окт. 2008 | 0:20 | #1 |
---|
JoKeR
чем переводил coff2omf ? она только вроде секции импорта переводит. Лучше возьми lib для дебилдера. или смени компилятор на Visual C++.
чем переводил coff2omf ? она только вроде секции импорта переводит. Лучше возьми lib для дебилдера. или смени компилятор на Visual C++.
Visual С++ vs. Delphi | 25 сен. 2008 | 21:09 | #4298 |
---|
main
проверил и что? Delphi опять убог
проверил и что? Delphi опять убог
C:\Downloads\sort\sort>_Project1.exe Size of data = 100b Element count = 1000000 516ms C:\Downloads\sort\sort>_SortGCC.exe Size of data = 100b Element count = 1000000 500ms C:\Downloads\sort\sort>_sortMSVC.exe Size of data = 100b Element count = 1000000 453ms C:\Downloads\sort\sort>_sortWatcom.exe Size of data = 100b Element count = 1000000 469ms C:\Downloads\sort\sort>Project1_main.exe Size of data = 100b Element count = 1000000 531ms
Visual С++ vs. Delphi | 25 сен. 2008 | 16:35 | #4266 |
---|
Sta1kerBo1ts
>Ты перечислил не все компиляторы )
что значит не все? на всех этих я делал проект на C++, проект на Delphi не мой я его закинул до кучи что-бы народ не лазил по другим ссылкам.
>Ты перечислил не все компиляторы )
что значит не все? на всех этих я делал проект на C++, проект на Delphi не мой я его закинул до кучи что-бы народ не лазил по другим ссылкам.
Visual С++ vs. Delphi | 25 сен. 2008 | 16:30 | #4263 |
---|
NightmareZ
Project1.dpr в архиве :) какой Delphi не знаю это код и проект DROnik смотри подробности в посте 4249
Project1.dpr в архиве :) какой Delphi не знаю это код и проект DROnik смотри подробности в посте 4249
Visual С++ vs. Delphi | 25 сен. 2008 | 16:28 | #4261 |
---|
Sta1kerBo1ts
>кстати, какого года компилятор брали?
Visual C++ 2005
OpenWatcom 2007
GCC(MinGW) 2006(gcc 3.4.5)
>кстати, какого года компилятор брали?
Visual C++ 2005
OpenWatcom 2007
GCC(MinGW) 2006(gcc 3.4.5)