GameDev.ru
/ GameDev.ru / Пользователи / Andrey / Сообщения на форуме пользователя Andrey (98 стр.)

Сообщения на форуме пользователя Andrey (98 стр.)

Правильная система частиц на DX9 + HLSL14 окт. 200813:07#10
LIVe
да кстати только что заметил используй индексный буфер. Это даст прирост отрисовки + уменьшится объем заливки данных, и расчет вершин на CPU.
Правильная система частиц на DX9 + HLSL14 окт. 200812:42#8
LIVe
ну еще как вариант лочить не весь буфер, а частично - на размер живых частиц, ну и выводить все-таки не все, а только живые.
Правильная система частиц на DX9 + HLSL13 окт. 200819:00#1
LIVe
>Приходится на каждом кадре или как минимум при каждом пересчете состояния системы частиц делать Lock/Unlock вершинному буферу.
ты лочишь буфер правильно? c правильными флагами? копируешь данные 1 строчкой (к примеру memcpy, а сами вершины сидят в системной памяти)?
создаешь в каком пуле?
>Хотябы вершинные для пересчёта координат вершин.
сложно представить что еще можно сделать на них ну если только еще работа с цветом.
>Все либо не то, либо для OpenGL, либо не на HLSL.
остается вариант либо asm  либо Cg (тот-же HLSL)
>как из шейдера управлять созданием/удалением частиц.
Наверное только CPU. Помечать частицу что она неактивна, перемещать в конец массива. Удалять не обязательно. При создании задавать начальные параметры. Использовать единый pool частиц.
В шейдере можно получить 10-20% скорости за счет вынесения геометрических расчётов на GPU, большую часть времени все равно занимает расчет параметров + заливка данных в буферы. Но действовать несколькими аффекторами работа, с разными эмиттерами, да еще со сложными параметрами на вершинных шейдерах врядли возможна.
Проблема с загрузкой файла эффектов9 окт. 200818:41#1
Ну смотри в Debug Output ошибки:
ID3D10Blob* erros = NULL;
hr = D3DX10CreateEffectFromFile( L"first.fx", NULL, NULL, "fx_4_0", D3D10_SHADER_ENABLE_STRICTNESS, 0, 
                                     g_pd3dDevice, NULL, NULL, &g_pEffect, NULL, &erros );
 if( FAILED( hr ) )
  {
if (errors) {
OutputDebugStringA(static_cast<const char *>(errors->GetBufferPointer()));
}
    MessageBox( NULL, L"Sorry, there is an error", L"Ошибка", MB_OK );
    return hr;
  }

Проблема с ортогональным проецированием9 окт. 200818: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)
Uniforms GLSL9 окт. 200813:13#1
Crazy_Dreamer
если я не ошибаюсь то gl_LightSource требует больше регистров чем если бы ты сам передал.
ну и дополнительные вызовы устаревших функций glLight*
проблема с glDrawElements!8 окт. 200813:05#1
OberMeister
а индексы где?
и куда ты фигячишь вершины в glDrawElements когда нужны индексы?
Влияет ли длина хэндлов в fx-файле на производительность ?7 окт. 200811:52#6
ksacvet777
>PAnsiCharToD3DXHandle('tex0')
ну а зачем каждый раз прокидыать указатель? можно же 1 раз при загрузке эффекта все хендлы получить. То что сделать можно 1 раз - лучше делать 1 раз.
Проблемы в Direct3d с отображением примитивов на ATI3 окт. 200821:19#6
bool
>интересно как оно тогда на нвидиа работало...
это в Release работало. Но в Debug будет тоже самое что и на ATI
Проблемы в Direct3d с отображением примитивов на ATI2 окт. 200823:24#3
Semson
неверно работаешь с вершинным буфером скорей всего, DX Debug,  Software Vertex Processing(при создании Device )помогут тебе.
Помогите с D3DXMatrixTranslation2 окт. 20080:20#1
JoKeR
чем переводил coff2omf ? она только вроде секции импорта переводит. Лучше возьми lib для дебилдера. или смени компилятор на Visual C++.
Visual С++ vs. Delphi25 сен. 200821:09#4298
main
проверил и что? 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. Delphi25 сен. 200816:35#4266
Sta1kerBo1ts
>Ты перечислил не все компиляторы )
что значит не все? на всех этих я делал проект на C++, проект на Delphi не мой я его закинул до кучи что-бы народ не лазил по другим ссылкам.
Visual С++ vs. Delphi25 сен. 200816:30#4263
NightmareZ
Project1.dpr в архиве :) какой Delphi не знаю это код и проект DROnik смотри подробности в посте 4249
Visual С++ vs. Delphi25 сен. 200816:28#4261
Sta1kerBo1ts
>кстати, какого года компилятор брали?
Visual C++ 2005
OpenWatcom 2007
GCC(MinGW) 2006(gcc 3.4.5)

Следующие темы >>

2001—2012 © GameDev.ru — Разработка игр