Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Nvidia Flex

Nvidia Flex

Поделиться
Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 4 Следующая

MiraПостоялецwww21 мар. 201717:49#0
попробовал подключить вот это изделие от Nv https://developer.nvidia.com/flex
скачал SDK,
написал хидер для библиотеки, нашел скудную документацию по API и попробовал их использовать.
решил написать приложение сиулирующее жидкость, часть писал по докам часть по демо проекту приложенному к СДК
но куб из партиклей при разных настройках просто "складывается при падении", в лучшем случае рассыпается как горошек.
крутил все настройки сольвера, ничего не помогает. что я мог упустить?
кто-то вообще пробовал юзать эту либу?

на всякий случай исходный код (без самого фреймворка MrShoor)
http://rgho.st/8PX5VNmgT

что делаю:
1)инициализирую либу
создаю буфер партиклей, заполняю его позициями + масса 1
создаю буфер активности, буффер фазы, велосити буффер, а также SmoothParticles буффер - чтоб использовать в качестве выходного.

в цикле делаю :
mapbuffers - отображаю буфера GPU в память
достаю положения из SmoothParticles (можно из просто Particles )
unmapbuffers - отдаю буфера назад в GPU
setbuffers - ставлю буфера в сольвер
обновляю сольвер UpdateSolver
getbuffers - забираю буфера назад как в примере

что еще нехватает?(((((

Правка: 22 мар. 2017 2:24

bykabakПостоялецwww21 мар. 201719:01#1
Я пока до этих Flex не добрался, но примеры у них там есть ?  Они работают ?

Правка: 21 мар. 2017 19:02

MiraПостоялецwww21 мар. 201719:48#2
bykabak
> часть писал по докам часть по демо проекту приложенному к СДК

есть демка с исходником. красиво и довольно шустро.
но я переносил на паскаль, и видимо что-то не учел(((

ChebПостоялецwww21 мар. 201720:44#3
>переносил на паскаль
{$packrecords c}
cint, cuint, ptrint, ptruint и иже с ними
; stdcall или ;cdecl

м?

MiraПостоялецwww21 мар. 201720:51#4
Cheb
разумеется.
NvFlexParams = packed record //105
  numIterations:integer ;          //!< Number of solver iterations to perform per-substep
  gravity : NxFlexVector3;          //!< Constant acceleration applied to all particles
        //i tak dalee 
end;
procedure NvFlexSetVelocities(pSolver:Pointer; pbuf:Pointer; n:integer);cdecl;external FlexLib;
ну там нет никаких ерроров, данные вполне валидно принимаются, возвращаются. поведение системы в целом нормальное. но я вообще с физикой не на ты. очень сложно сориентироваться что там и зачем.
например "растекание" кубика воды получается максимум чтото такое...
и не реагирует на изменение параметра жидкостию
кстати тип BOOL я для верности заменил на integer , делаю 0 или не 0
67878 | Nvidia Flex

Правка: 21 мар. 2017 20:53

MiraПостоялецwww22 мар. 20170:52#5
поигрался параметрами, и все таки получилась симуляция жижы
MiraПостоялецwww22 мар. 20171:11#6
у кого есть возможность , гляньте пож FPS и стабильность физики. по моему она у меня привязана к FPSу
https://yadi.sk/d/9iMJf90B3GDxpN
34325 | Nvidia Flex

Правка: 22 мар. 2017 1:54

ZiltopЗабаненwww22 мар. 20177:37#7
Круто ! На АМД пишет CUDA not found.
Я так понял ты игры будешь делать только для обладателей NVIDIA видеокарт.

Прикольно.

MiraПостоялецwww22 мар. 20177:47#8
Ziltop
К сожелению да,  нвидиа не предусмотрели работу на картах конкурента :(
ZogrimПостоялецwww22 мар. 20179:35#9
Mira
> К сожелению да, нвидиа не предусмотрели работу на картах конкурента :(
Гм, во FleX 1.1 добавили же поддержку DX Compute

"in addition to CUDA there is now a cross-platform DirectX 11 and 12 version of the Flex libraries that Windows applications can link against"

MiraПостоялецwww22 мар. 201710:03#10
Zogrim
У меня не пошла дх версия.
Причем на их демке тоже просто висла при запуске. Но с другой стороны да,  если у других работает,  то это выход для них

Правка: 22 мар. 2017 10:04

bykabakПостоялецwww22 мар. 201711:42#11
Работает на GTX660, FPS 160.

похоже CUDA 3.0  - минимум необходим для этого дела. У NVidia есть список плат с поддержкой версий CUDA

MiraПостоялецwww22 мар. 201711:57#12
bykabak
у меня тоже 660,  фпс около 200
Да, надо поддержку cuda3.0+
bykabakПостоялецwww22 мар. 201712:23#13
Mira,
С водой не разбирались ?

Какая версия PhysX у вас используется ?

MiraПостоялецwww22 мар. 201712:44#14
bykabak
Так это вода и есть,  только сферы сделать и скринспейс шейдер нужен.  Тупо физику щас рисую кубиками.  Flex он же  отдельный от физикса,  и специализирован только на физике мягких тел средствами gpgpu.  А так px сдк у меня 3.3.3

Не разбирался я пока с встроенным cloth,  softbody и inflatable.  Но они мне вроде щас не нужны,  поэтому я не писал им классовую обертку.  Только api

Правка: 22 мар. 2017 12:48

Страницы: 1 2 3 4 Следующая

/ Форум / Программирование игр / Физика

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