Jump to content
mranosa

Requirements to learn hdk

Recommended Posts

Hello i am really sorry for this basic topic that i really think of as a stupid topic. I have c++ basic background and started to learn hdk from the documentation. I didn't understand most of things written there and i think it's something that i don't have in my background... So what can I do to learn hdk ??? What should I do before learning it???

Share this post


Link to post
Share on other sites

If you're familiar with C++ concept (including new stuff like C++11 or templates) you were mostly intimidated with HDK idioms, not C++ itself afaik. Every enough sophisticated environment has its own slang created on top of general language. 

There is no other way to get use to it, other than just dive into it. Copy some basic examples, like SOP_Pointwave for HDK directory ($HFS/toolkit/SOP), compile it and start playing with it by adding new things. 

If you can't read it, just ask question about particular line. Be specific, describe which line is a problem. Use google to search for C++ idioms (stackoverflow will be your friendly place). After very little time, you will grasp of what is going on there. 

HDK itself is actually excellent way to learn C++. It's a good blend of engineering without too much bias of ideology unlike boost and the like. 

Basically read the code, not just docs. 

Share this post


Link to post
Share on other sites

Me too i want to learn C++ HDK to bright some tools to hounidi, How it is easy or difficult to create your own tool? I would like to port Cycles renderer plugin to Houdini for example. It is possible to create whatever a tool for 3D modeling inside Houdini with customized gui ?

Many thanks.

Share this post


Link to post
Share on other sites
19 hours ago, threedslider said:

How it is easy or difficult to create your own tool?

You have to be more specific... It's the same as with any DCC application, with the difference that it's much easier in Houdini  to make tools without C++ using just VEX,Python and HDAs and thus most custom plugins end up being not C++ (you need to have really good reason to use C++).

19 hours ago, threedslider said:

I would like to port Cycles renderer plugin to Houdini for example.

Excellent! Nothings specially hard about it, albeit note that custom ROPs are not supported in Apprentice nor Indie. Your Cycles plugin will be available only for commercial users unless SESI decides differently. Technically you can create custom exporter without SOHO (thus working everywhere), but it's harder to support all features and might be considered as a violation of end-user license agreement (or not, again it totally depends on SESI consideration). Personally I think SESI should allow some sort of third party ROPs for noncommercial users, because it brings new people and their energy. 

19 hours ago, threedslider said:

It is possible to create whatever a tool for 3D modeling inside Houdini with customized gui ?

It's possible but used to be harder than it should. With new viewport python states it's should be much easier. I don't know much about them though. You should probably consult someone like Alexey Vanzhula about it. 

Share this post


Link to post
Share on other sites
Posted (edited)
3 hours ago, symek said:

You have to be more specific... It's the same as with any DCC application, with the difference that it's much easier in Houdini  to make tools without C++ using just VEX,Python and HDAs and thus most custom plugins end up being not C++ (you need to have really good reason to use C++).

I mean if it is very difficult to create for plugin from C++ HDK in Houdini Indie ? I use C++ because Cycles is writing same C++, you mean VEX or Python can make same behavior as C++ for plugin ?

 

3 hours ago, symek said:

Excellent! Nothings specially hard about it, albeit note that custom ROPs are not supported in Apprentice nor Indie. Your Cycles plugin will be available only for commercial users unless SESI decides differently. Technically you can create custom exporter without SOHO (thus working everywhere), but it's harder to support all features and might be considered as a violation of end-user license agreement (or not, again it totally depends on SESI consideration). Personally I think SESI should allow some sort of third party ROPs for noncommercial users, because it brings new people and their energy.

Not sure to understand this but I hear there is support for third party on Houdini Indie so i can create a plugin for that, possible ? What do you mean SESI sorry i am new here?

 

3 hours ago, symek said:

It's possible but used to be harder than it should. With new viewport python states it's should be much easier. I don't know much about them though. You should probably consult someone like Alexey Vanzhula about it. 

I would like to create some tool for 3D modeling in plugin and of course C++ but if python can achieve too so i don't mind it. Is it possible python for creating 3D tool and then sell it? Alexey is a developer or not ?

Edited by threedslider

Share this post


Link to post
Share on other sites
54 minutes ago, threedslider said:

I mean if it is very difficult to create for plugin from C++ HDK in Houdini Indie ?

It's as easy or as difficult as in case of 3dsMax, Maya, Cinema4d, Modo etc. There is no difference as long as we talk about generalities. There are differences in details, like this one that HDK is not SDK designed for third party developers exposing some public API, but rather selection of Houdini's own headers. It means it's much more powerful and reacher environment, not necessarily as easy to use or as well documented as, say, Maya SDK. It depends on what you're trying to do with it. Have you tried some of HDK examples? You should. 

Quote

I use C++ because Cycles is writing same C++ (...)

This doesn't mean you have to use C++, but - yes - making fully featured render plugin for Houdini will require using C++, for example for fast geometry output or IPR support. Python will play its role too. First option is using SOHO module (dedicated Python API for supporting third party renderers in Houdini). It allows you very easily to support lots of features which are otherwise hard to write by your self (tessellation, visibility flags, inheriting render properties etc). 

Most render plugins are mixture of C++ and Python, where C++ handles geometry export or IPR, and python anything else. 

Quote

you mean VEX or Python can make same behavior as C++ for plugin ?

Very often yes they can. Take a look on qLib library for example (http://qlab.github.io/qLib/). None of this is compiled C++ plugin afaik. Also Python is very capable language in respect to Houdini (much faster than people think if you know what your are doing with that).

54 minutes ago, threedslider said:

Not sure to understand this but I hear there is support for third party on Houdini Indie so i can create a plugin for that, possible ? What do you mean SESI sorry i am new here?

SESI (i.e. Side Effects Software Incorporated, although they've seem to changed it to SideFX - creators of Houdini) has to agree to support your plugin in Houdini Indie. All supported renderers are exceptions from a general settlement. This is because Indie has a certain limitations compared to a full commercial license (resolution and lack of render description file output I think).

54 minutes ago, threedslider said:

I would like to create some tool for 3D modeling in plugin and of course C++ but if python can achieve too so i don't mind it. Is it possible python for creating 3D tool and then sell it? Alexey is a developer or not ?

..and you will be blessed by people modeling in Houdini (all three of them!), because there isn't many modeling tools for Houdini. Alexy makes such plugin (as you could already check). Afaik interactive plugin will require Python, because Python gives you the access to viewport states, C++ is optional, but I really don't know much about this aspect. Alexy (and probably others) does.

Share this post


Link to post
Share on other sites

I am digging in hdk now but I don't seem to understand 10 percent of the written though I have c++ knowledge... The documentation isn't enough and too abstract. Isn't there any other source!!??

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×