Войти
ПрограммированиеПодсказкиФизика

Как подключить PhysX Visual Debugger

Автор:

PhysX Visual Debugger — утилита отладки и визуализации сцен PhysX. В ранних версиях PhysX SDK (до 2.8.1#13) называлась Visual Remote Debugger (VRD). PhysX Visual Debugger позволяет манипулировать физическими объектами созданными, в программе, к которой PVD был подключен, а также просматривать свойства этих объектов.

Скачать PhysX Visual Debugger с официального сайта: PVD home

PhysX Visual Debugger | Как подключить PhysX Visual Debugger

Код
Minitip

Код

Для того чтобы подключить к своей программе VRD нужно скопировать в начало файла где у вас инициализируется сам PhysX следующий код:

#define SAMPLES_VRD_HOST "localhost"
#define SAMPLES_VRD_PORT NX_DBG_DEFAULT_PORT
#define SAMPLES_VRD_EVENTMASK NX_DBG_EVENTMASK_EVERYTHING
int    gAppData;
void vrd_init()
{
  NxRemoteDebugger* pRemDeb = g_pPhysicsSDK->getFoundationSDK().getRemoteDebugger();
  
  pRemDeb->connect(SAMPLES_VRD_HOST,   SAMPLES_VRD_PORT,   SAMPLES_VRD_EVENTMASK);

  if (pRemDeb->isConnected())
  {
      pRemDeb->createObject(&gAppData,  NX_DBG_OBJECTTYPE_GENERIC,
                           "AppData",   NX_DBG_EVENTMASK_EVERYTHING);
      pRemDeb->writeParameter("Info text",   &gAppData,   true,
                           "Info",     NX_DBG_EVENTMASK_EVERYTHING);
      pRemDeb->createObject(&gAppData+1,   NX_DBG_OBJECTTYPE_VECTOR,
                           "AVector",   NX_DBG_EVENTMASK_EVERYTHING);
      pRemDeb->writeParameter(NxVec3(0, 0, 0),  &gAppData+1,   true,
                           "Origin",  NX_DBG_EVENTMASK_EVERYTHING);
      pRemDeb->writeParameter(NxVec3(1, 1, 1),  &gAppData+1,  true,
                           "Extent",  NX_DBG_EVENTMASK_EVERYTHING);
      pRemDeb->addChild(&gAppData, &gAppData+1,  NX_DBG_EVENTMASK_EVERYTHING);
      // Tells our application that we have created the VRD object
      // and that it is ok to set information in it
      gAppData = 1; 
  }
}

Все просто, теперь если запустить дебагер перед стартом приложения он отловит данные из него. Полученными объектами можно манипулировать, все манипуляции отразятся на объектах в вашей программе. (Код взят из PhysX SDK 2.8.1)

Minitip

Если вы хотите сменить координатную систему (это нужно если вы работаете с DX, а не OpenGL):

View -> Coordinate System-> выбираете нужную.

#C++, #PhysX

10 июня 2009