houdini hdk范例文件sop_dualstar中文注释笔记

这篇博客详细解读了Houdini HDK中SOP_DualStar范例,重点讲解如何在第二个输出端分离几何体。通过创建新的gdh并分配新的gdp实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述
这个范例主要介绍了在有两个输出端的时候怎么在第二个输出端分离出一个几何体。关键点就是创建一个新的gdh给定一个新的gdp。

头文件 SOP_DualStar.h

#ifndef __SOP_DualStar_h__
#define __SOP_DualStar_h__
#include <SOP/SOP_Node.h>
namespace HDK_Sample {
class SOP_DualStar : public SOP_Node
{
public:
    static OP_Node      *myConstructor(OP_Network*, const char *,
                                OP_Operator *);
    static PRM_Template      myTemplateList[];
protected:
         SOP_DualStar(OP_Network *net, const char *name, OP_Operator *op);
    virtual ~SOP_DualStar();

    /// cookMySop does the actual work of the SOP computing, in this
    /// case, a star shape.
    virtual OP_ERROR         cookMySop(OP_Context &context);
    virtual GU_DetailHandle  cookMySopOutput(OP_Context &context, int outputidx, SOP_Node *interest);

    /// Actually build a star in the given geometry
    void    buildStar(GU_Detail *dst, OP_Context &context);
private:
    /// The following list of accessors simplify evaluating the parameters
    /// of the SOP.
    int     DIVISIONS(fpreal t) { return evalInt  ("divs", 0, t); }
    fpreal  XRADIUS(fpreal t)   { return evalFloat("rad", 0, t); }
    fpreal  YRADIUS(fpreal t)   { return evalFloat("rad", 1, t); }
    int     NEGRADIUS()     { return evalInt  ("nradius", 0, 0); }
    fpreal  CENTERX(fpreal t)   { return evalFloat("t", 0, t); }
    fpreal  CENTERY(fpreal t)   { return evalFloat("t", 1, t); }
    fpreal  CENTERZ(fpreal t)   { return evalFloat("t", 2, t); }
    int</
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值