首页
学习
活动
专区
工具
TVP
发布

如何扩展一个自定义SOP节点

平安夜祝大家平平安安,以后的文章关于C++语言方面的内容会多一些,不太理解的话就当一乐子看,了解一下Houdini底层架构知识也是好的。能保证的是文章的内容都是笔者自己验证过的,只要足够用心,文章内容是可以起到一些授人以渔的作用。

我们平时解决问题特别是使用API来写代码的时候,掌握两条规则可能会轻松一点,一条是不能一口吃一个胖子,遇到复杂的问题尽可能先简单化,想登天得造台阶不是,只要目标方向是对的,时间总能解决问题。第二条是既然用别人的API接口,就没必要钻牛角尖把每一点都弄的很明白,即使把头发熬白了,也不可能完全掌握别人制定的一套规则,遵循这套规则去写代码就好了,尽可能多参考API的范例去写,当有能力独立写一套自己的架构的时候,应该会有一种英雄所见之感吧。

本篇文字以在Houdini中创建一个SOP_Custom.dll插件(一个空的SOP节点)的案例来讲一些C++代码的基础和实现。

演示效果:

从演示中可以看到我编译了一个Custom Node节点,这个节点什么参数都没有,也没有任何几何信息,这是HDK中使用C++开发一个自定义节点最基本的代码实现的,唯一不同的是我给这个节点添加了图标,显得好看一些。下面来具体实现吧。

Step 1、随便找个路径创建个文件夹叫SOP_Custom,在内部文件夹和文件目录如下:

文件内容如下(这是前面两篇文字的内容,稍微做了一些改动,如果你的Houdini版本不是16.0.705,可能要稍微修改一些内容):

SOP_Custom\build\houdini.bat

SOP_Custom\modules\FindHoudini.cmake

SOP_Custom\src\CMakeLists.txt

SOP_Custom\src\SOP_Custom.cpp文件为空

SOP_Custom\src\SOP_Custom.h文件为空

SOP_Custom\CMakeLists.txt

Step 2、进入SOP_Custom\build文件夹,按shift+右键打开命令行窗口,输入下面指令编译vs项目工程

Step 3、双击打开SOP_Custom\build\SOP_Custom.sln工程文件(需要安装Visual Studio Professional 2015 Update 3)

Step 4、我们打开SOP_Custom\src\SOP_Custom.h和SOP_Custom\src\SOP_Custom.cpp文件分别写入如下的C++代码

SOP_Custom\src\SOP_Custom.h

SOP_Custom\src\SOP_Custom.cpp

Step 5、在SOP_Custom\build文件夹中打开命令行窗口,输入如下编译插件的命令并打开Houdini软件调试,这样就创建了一个自定义的SOP节点。

如果你能看到这里的话,说明你对C++还是有点兴趣的,C++代码要比Python复杂的多,这里就可以解释为什么有”人生苦短,我用Python”这句话了,因为写C++代码要比写Python代码花费多得多的时间和精力,但它们同为和计算机交流的语言,自然有共通之处。

在SOP_Custom.h头文件中,主要是用来写类的声明,包括声明类的成员和方法,但具体的实现都是在SOP_Custom.cpp源文件中去做的,下图中可以看到一一对应关系,声明是C++跟Python最大不同之一。

这些代码能写出来主要是仔细阅读HDK文档Building Custom Operators部分以及Files中的源代码来参考完成的,想完成这部分工作,基础语法需要多看几本书,比如《C++ Primer Plus》,以及临摹源代码的写法,写出来问题就不大。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171225G00OYI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券