• 设置好项目,把Houdini HDK的头文件、lib文件等链接到位。

  • 系统环境变量,给PATH添加一行“C:\Program Files\Side Effects Software\Houdini 19.5.640\bin”。

  • 远程服务器需要打开Houdini,并把Windows->Houdini Engine SessionSync打开,然后点击“Start”按钮。

//该样例代码应编译出一个exe,点击后会在远程服务器打开TLT_layout.hip文件。
#include <HAPI/HAPI.h>
#include <HAPI/HAPI_API.h>
#include <HAPI/HAPI_Common.h>
#include <HAPI/HAPI_Helpers.h>
#include <HAPI/HAPI_Version.h>
#include <UT/UT_StringHolder.h>
#include <iostream>
using namespace std;

int main() {
    UT_StringHolder filename = "E:/Houdini Projects/TLT_Rock_paibu/TLT_layout.hip";

    HAPI_Session* session = new HAPI_Session();
    HAPI_Result res;

    //res = HAPI_CreateInProcessSession(session);
    res = HAPI_CreateThriftSocketSession(session, "LOCALHOST", 9090);//目前连接本机
    printf("Session Status = %d\n", res);

    HAPI_CookOptions* option = new HAPI_CookOptions();
    HAPI_Initialize(session, option, 1, -1, "C:/Users/Administrator/Documents/houdini19.0/houdini.env", NULL, NULL, NULL, NULL);//环境变量

    res = HAPI_LoadHIPFile(session, filename.c_str(), true);
    printf("Load File Status = %d\n", res);
    HAPI_NodeId* geo1_id = new HAPI_NodeId();
    HAPI_GetNodeFromPath(session, -1, "/obj/geo1", geo1_id);
    HAPI_NodeInfo* geo1_nodeinfo = new HAPI_NodeInfo();
    HAPI_GetNodeInfo(session, *geo1_id, geo1_nodeinfo);
    printf("geo1 ID = %d, geo1 Child Count = %d", *geo1_id, geo1_nodeinfo->childNodeCount);

    HAPI_Cleanup(session);
    HAPI_CloseSession(session);
    cin.get();
    return 0;

}