通过HAPI控制远程服务器运行hip文件
设置好项目,把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;
}
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0协议,完整转载请注明来自 零度冰山
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果
