Jump to content

Houdini Ocean Toolkit


Jason

Recommended Posts

  • Replies 42
  • Created
  • Last Reply

Top Posters In This Topic

Not sure what's going on there Bernard. I'll check the build works ok when I'm back at my work machine this week. Can you tell me what cpu you have ? There has been reports of problems with AMD's.

-Drew

Hello,

will there be a working version for AMD's soon?

thanks,

bern

Link to comment
Share on other sites

Hi Bernard,

Give this a try ...

http://anusf.anu.edu.au/~drw900/houdini/oc..._test_win32.zip

I've switched back to using a dynamically loaded version of the FFTW library. You will need to put a copy of the included file "libfftw3f-3.dll" somewhere on you system's executable path. One place you could put it would be houdini's exe directory, probably c:\Program Files\Side Effects\Houdini 8.2.13\bin if you install into the default directory (I don't).

I'm off for a weeks vacation tomorrow and I won't be going near a computer, in case you're wondering why I've gone quiet.

-Drew

Hello,

will there be a working version for AMD's soon?

thanks,

bern

Edited by eloop
Link to comment
Share on other sites

Hi Bernard,

Give this a try ...

http://anusf.anu.edu.au/~drw900/houdini/oc..._test_win32.zip

I've switched back to using a dynamically loaded version of the FFTW library. You will need to put a copy of the included file "libfftw3f-3.dll" somewhere on you system's executable path. One place you could put it would be houdini's exe directory, probably c:\Program Files\Side Effects\Houdini 8.2.13\bin if you install into the default directory (I don't).

I'm off for a weeks vacation tomorrow and I won't be going near a computer, in case you're wondering why I've gone quiet.

-Drew

Hello,

seems to work now. Many thanks.

By the way, is it possible that there is NO icon on the Ocean SOP ?

bern

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...
  • 2 weeks later...
A new version has been released. See http://odforce.net/wiki/index.php/HoudiniOceanToolkit for more details.

Hello. I'm new to the forums but I've been playing with HOT extensively over the past few months (it's fantastic).

However, I really want to add a few features specific to what I'm working on and am eager to work with the source code.

I haven't been able to get a recompile working in Win32.

I don't have the .NET 2003 commercial package but I've downloaded and installed the .NET 2003 Framework and Windows Platform SDK but I still can't get the thing to link.

I keep getting 'invalid library format' on the runtime library MSVCPRT.lib during linking.

I know this is not a problem perse with HOT but I REALLY am eager to tweak the code.

Anyone seen anything like this while attempting to compile the source?

Will it be solved mysteriously if I install the commerical version of .NET 2003?

Houdini doesn't yet support any .NET beyond 2003, huh?

This is the first time I've tried to compile my own plugins for Houdini and I'm sure it shows. Sorry.

Thanks for any ideas.

Link to comment
Share on other sites

Hi Len,

I just had a quick browse around the MS web site and it looks as though they are only providing Visual Studio Express 2005 editions. You would definitely need a 2003 edition of VS as library formats for c++ seem to change with each VS version. If you can still find a VS Express 2003 version you may be able to combine that with matching platform SDK and get the HOT built. It is a shame that SideFX have stayed with VS 2003 for H9, but I guess they have their reasons...

Out of interest, what changes are you thinking of making ?

-Drew

Link to comment
Share on other sites

Doing a bit more searching around, here is one good reason that SideFX went with VS2003 - it's the compiler used for the default distribution of python2.5, meaning all binary win32 python extensions are compiled with VS2003.

Lot's of these issues are discussed in this thread ...

http://mail.python.org/pipermail/python-li...une/388395.html

Apparently it's hard to even buy a copy of VS2003 now, but for around the same price you can become an MSDN subscriber and get access to older versions as well as VS2005.

-Drew

Link to comment
Share on other sites

Thanks for the info. Funny that python is the culprit, but that's how it goes.

I am looking for a copy of VS 2003 to buy but it's a bit challenging. Seems to be some used copies on the market.

I'll take a look at the MSDN subscriber idea you mentioned. Didn't know about that (I'm new to Windows).

Regarding what I'm interesting in doing with HOT:

I'm working on a small U.S. Navy contract that has to do with visualizing water in nearshore areas.

We are trying to build a merged model that combines iWave (more Jerry water magic) with the FFT solution implemented in HOT, sort of as a proof-of-concept.

Basically driving iWave (which would cover the close-to-shore effects) with the FFT solution that covers the larger open ocean component.

Seem do-able? Jerry thinks so (he's 'consulting' with us).

I'm still learning but if I could compile your wonderful code I could learn a bit faster. : )

I'd love to hear any of your ideas on our crazy plan.

If we can win the first Phase there may be a place on our team for you when we have to move everything to real-time! : )

-Len

PS: I haven't read the HOT license agreement in detail so I sure hope I haven't just revealed how much I'm trampling it. Gulp.

Link to comment
Share on other sites

I got a copy of Visual Studio .Net 2003 and am getting close to compiling this thing (I can feel it).

However, I get three linker errors shown below.

For some reason it can't find three fftw library calls (fftwf_plan_dft_c2r_2d, fftwf_execute, and ffwf_destroy_plan).

Anyone have any idea what can cause this? I've checked my library paths, the .lib files are there.

Anything I need to do with the dlls? They wouldn't effect the linking would they? I'm grabbing at straws here. Thanks for the ideas.

LINKER ERRORS:

Creating library SOP_Ocean.lib and object SOP_Ocean.exp

SOP_Ocean.o : error LNK2019: unresolved external symbol __imp__fftwf_destroy_plan referenced in function "public: __thiscall drw::OceanContext::~OceanContext(void)" (??1OceanContext@drw@@QAE@XZ)

SOP_Ocean.o : error LNK2019: unresolved external symbol __imp__fftwf_plan_dft_c2r_2d referenced in function "public: void __thiscall drw::OceanContext::alloc_disp_y(void)" (?alloc_disp_y@OceanContext@drw@@QAEXXZ)

SOP_Ocean.o : error LNK2019: unresolved external symbol __imp__fftwf_execute referenced in function "public: void __thiscall drw::Ocean::update(float,class drw::OceanContext&,bool,bool,bool,bool,float,float)" (?update@Ocean@drw@@QAEXMAAVOceanContext@2@_N111MM@Z)

SOP_Ocean.dll : fatal error LNK1120: 3 unresolved externals

make: *** [sOP_Ocean.dll] Error 96

Link to comment
Share on other sites

Okay, I finally got this thing built!

They key (or one of them):

Downloaded the latest source code and skipped the Makefile. Went directly to install_win32.sh script that Drew so kindly put together (makefile still wouldn't work).

Oddly, I still needed to copy my compile of the blitz.lib from blitz_d.lib.

For some reason the compile went smoothly but generated blitz_d.lib.

If anyone else is struggling with the Windows build, let me know and perhaps my pain can help another.

Just to emphasize, I could not get this working with the free version of Visual Studio.

I got .NET 2003 and started to make progress.

Thanks again Drew!

Link to comment
Share on other sites

Congratulations Len,

You're the first windows user to report success building from source :-) Not sure why the makefile isn't working for you, it does requires quite a bit of environment setup before it's usable. You need cygwin setup including having make installed (ie gmake, not nmake), then you need VS2003 working from the cygwin command line. I have a setup which allows me to easily switch between VS6/7 and 8 by having different cygwin.bat files. I find the standard cygwin.bat file that runs up a cygwin terminal then make copies for each of the VS compilers and I dump the contents of the environment setup .bat files that are included in the VS distributions (eg VSVARS32.bat for VC7) into the start of the relevant cygwin.bat file. So eg my cygwin_vs7.bat file looks like ...

@echo off

@SET VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE
@SET VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio .NET 2003
@SET FrameworkDir=C:\WINDOWS\Microsoft.NET\Framework
@SET FrameworkVersion=v1.1.4322
@SET FrameworkSDKDir=C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1
@rem Root of Visual Studio common files.

@if "%VSINSTALLDIR%"=="" goto Usage
@if "%VCINSTALLDIR%"=="" set VCINSTALLDIR=%VSINSTALLDIR%

@rem
@rem Root of Visual Studio ide installed files.
@rem
@set DevEnvDir=%VSINSTALLDIR%

@rem
@rem Root of Visual C++ installed files.
@rem
@set MSVCDir=%VCINSTALLDIR%\VC7

@rem
@echo Setting environment for using Microsoft Visual Studio .NET 2003 tools.
@echo (If you have another version of Visual Studio or Visual C++ installed and wish
@echo to use its tools from the command line, run vcvars32.bat for that version.)
@rem

@REM %VCINSTALLDIR%\Common7\Tools dir is added only for real setup.

@set PATH=%DevEnvDir%;%MSVCDir%\BIN;%VCINSTALLDIR%\Common7\Tools;%VCINSTALLDIR%\Common7\Tools\bin\prerelease;%VCINSTALLDIR%\Common7\Tools\bin;%FrameworkSDKDir%\bin;%FrameworkDir%\%FrameworkVersion%;%PATH%;
@set INCLUDE=%MSVCDir%\ATLMFC\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\PlatformSDK\include\prerelease;%MSVCDir%\PlatformSDK\include;%FrameworkSDKDir%\include;%INCLUDE%
@set LIB=%MSVCDir%\ATLMFC\LIB;%MSVCDir%\LIB;%MSVCDir%\PlatformSDK\lib\prerelease;%MSVCDir%\PlatformSDK\lib;%FrameworkSDKDir%\lib;%LIB%

@goto end

:Usage

@echo. VSINSTALLDIR variable is not set. 
@echo.
@echo SYNTAX: %0

@goto end

:end




C:
chdir C:\cygwin\bin

bash --login -i

At this point you should be able to get a cygwin terminal that has cl.exe and devenv.exe available.

Then in my .bashrc file I setup the houdini environment in this fashion ... (Note how I install houdini into a directory with no spaces, they're a pain in the butt when working in a unix environment). You also have to provide the HDK tools a sanitized MSVCDir variable.

pushd d:/Apps/Houdini_8.2.13
export MSVCDir="c:/Progra~1/MICROS~1.NET/Vc7"
. houdini_setup_bash
if [ ${HTB} ]
then
    export PATH=`cygpath -u ${HTB}`:$PATH
fi
popd

At this point you should be able to run hcustom from the command line assuming you've previously hdkinstall'd. Then if you've setup the environment variables DRWLIBS and DRWLIBS_CYGWIN to point at a directory containg your 3rd party library builds the Makefile should work.

In my setup I have the System Environment variables ...

DRWLIBS -> D:\libs\SVN_Versions

DRWLIBS_CYGWIN -> D:/libs/SVN_Versions

Re: the blitz library build, it should be as simple as selecting the "Release" build instead of the "Debug" build in the VS7 IDE. You'll definitely want this for performance.

You can see why I go to the effort of building win32 binaries rather than trying to help people build their own :-)

I think that using the iWave algorithm with the HOT is very doable. In fact I had hoped to do it myself one of these days. You would need to come up with a SOP network to calculate the outline of objects/coastline penetrating the ocean surface. You may be able to do it with a combination of clipping planes and orthographic rendering.

Regarding the licence, it's GPL, mandated by FFTW's. So it may not be ideal for a commercial project. You would probably need to replace at least FFTW and rewrite if you have to go closed source. You can at least learn the math of the implementation by studying Ocean.h which I tried to make as clear as possible. But then I guess if it becomes a commercia project you can licence Tessendorf's WaveTools V2 library.

Phew...

-Drew

Edited by eloop
Link to comment
Share on other sites

Thanks for the info and code!

I can imagine a number of things you show there being the lynchpin for getting the Makefile working.

I didn't even know cygwin might have an inappropriate version of make by default.

Such is my naivete.

If I find a few free moments I'll try your suggestions and give it another go.

Ah! Yes, the blitz_d makes sense now. Didn't even think about that but I get it.

Puts my mind at rest that I'm not cheating the system horribly somehow by renaming the lib.

Regarding the SOP network for building water penetrating objects:

Are you thinking of photographic derived geometry data?

At least for starters we're getting the bathymetry data in digital form so that part should be relatively easy.

I think the trickier bit may be getting a believable driving system at a boundary region of the iWave solution.

I guess I'll see over the next couple of weeks.

Link to comment
Share on other sites

Here's a small hangup I'm having:

I'm trying to debug some code changes and adding some stdout lines like:

cout<<"Running code here"<<endl;

But I don't see any console output from SOP_Ocean.

I've also uncommented some of the original debug lines and I still see nothing.

I've tested a few other sample SOPs and the console shows cout commands just fine.

Even a debug line right at the start of cookMySOP doesn't generate any console output.

Keep in mind I'm on Windows here.

Strange.

New info: I was ACTUALLY trying to build a differently named version of the SOP: Ocean2.

I moved all the names over but NOW I can't see cout output. The original SOP_Ocean.C works fine.

Don't I just need to change the addOperator arguments to create a new named node?

Or do I need to also change file names, constructor names, etc?

I thought I did this too but something has gone wrong.

Edited by len
Link to comment
Share on other sites

...

I think the trickier bit may be getting a believable driving system at a boundary region of the iWave solution.

I guess I'll see over the next couple of weeks.

The boundary region could possibly be found by rendering through an orthogonal camera with camera near/far set to either side of the ocean surface. Then the image rendered could be read into an iWave SOP.

-Drew

Link to comment
Share on other sites

  • 2 years later...

Hi everyone.

I downloaded the latest HOT version via Mercurial. The build process was fine (no errors), but I am unable to compile it on OSX. The compilation log shows this error:

cc1plus: error: unrecognized command line option "-fobjc-gc-only"

The same error arises when I try to compile any other code, such as "SOP_Star.c". Apparently is has something to do with my compiling environment, or my lack of experience on compiling:

Gondor:temporal user$ hcustom SOP_Star.c

Making SOP_Star.o and /Users/user/Library/Preferences/houdini/10.0/dso/SOP_Star.dylib from SOP_Star.c

cc1plus: error: unrecognized command line option "-fobjc-gc-only"

Compile failed

My GCC version is " i686-apple-darwin8-gcc-4.0.1 ".

Could anybody help me ? Thanks.

------------------------------------------

System configuration:

Mac Pro, 2 x 2.66 GHz Dual-Core Intel Xeon

6 GB RAM

Graphics card: NVIDIA GeForce 7300 GT

Houdini version: 10.0.295 OSX

------------------------------------------

Link to comment
Share on other sites

I see this error as well but it's usually just a warning. Here is the output on my mac -

$ hcustom -e SOP_Star.C
Making directory /Users/drw900/Library/Preferences/houdini/10.0/dso
g++ -DUT_DSO_TAGINFO='"3262197cbf165b037af65da8543790ee3f2ed9ffcc23d5e46da8c3327445ec9c329220849f7d272e4346c0e729da50490ceef503efd0e85e400227ed63ea93bc4ba76fa0ff924994a3268d0805e30bfcab0a87a7d6b2c90e"' -DVERSION=\"10.0.295\" -DDLLEXPORT=  -D_GNU_SOURCE -DMBSD -DMBSD_COCOA -DMBSD_INTEL -arch x86_64 -DAMD64 -fPIC -DSIZEOF_VOID_P=8 -DSESI_LITTLE_ENDIAN -DENABLE_THREADS -DUSE_PTHREADS -D_REENTRANT -D_FILE_OFFSET_BITS=64 -fobjc-gc-only -c  -DGCC4 -DGCC3 -Wno-deprecated -I/Library/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include -I/Library/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include/htools -Wall -W -Wno-parentheses -Wno-sign-compare -Wno-reorder -Wno-uninitialized -Wunused -Wno-unused-parameter -O2 -DMAKING_DSO -o SOP_Star.o SOP_Star.C
cc1plus: warning: command line option "-fobjc-gc-only" is valid for ObjC/ObjC++ but not for C++

g++ -bundle SOP_Star.o -arch x86_64 -fobjc-gc-only -framework OpenGL -framework Cocoa -rpath,@loader_path/Libraries -Wl,-rpath,/Library/Frameworks/Houdini.framework/Versions/10.0.295/Libraries -L/Library/Frameworks/Houdini.framework/Versions/10.0.295/Libraries -L/Library/Frameworks/Houdini.framework/Versions/Current/Resources/Frameworks/Houdini.framework/Versions/10.0.295/Libraries -F/Library/Frameworks/Houdini.framework/Versions/Current/Resources/Frameworks -framework Houdini -o /Users/drw900/Library/Preferences/houdini/10.0/dso/SOP_Star.dylib

My gcc version is -

&gt; gcc -v
Using built-in specs.
Target: i686-apple-darwin9
Configured with: /var/tmp/gcc/gcc-5484~1/src/configure --disable-checking -enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.0/ --with-gxx-include-dir=/include/c++/4.0.0 --with-slibdir=/usr/lib --build=i686-apple-darwin9 --with-arch=apple --with-tune=generic --host=i686-apple-darwin9 --target=i686-apple-darwin9
Thread model: posix
gcc version 4.0.1 (Apple Inc. build 5484)

I'm not a Mac expert either but mabye it's to do with using an older OSX version ?

-Drew

Hi everyone.

I downloaded the latest HOT version via Mercurial. The build process was fine (no errors), but I am unable to compile it on OSX. The compilation log shows this error:

cc1plus: error: unrecognized command line option "-fobjc-gc-only"

The same error arises when I try to compile any other code, such as "SOP_Star.c". Apparently is has something to do with my compiling environment, or my lack of experience on compiling:

Gondor:temporal user$ hcustom SOP_Star.c

Making SOP_Star.o and /Users/user/Library/Preferences/houdini/10.0/dso/SOP_Star.dylib from SOP_Star.c

cc1plus: error: unrecognized command line option "-fobjc-gc-only"

Compile failed

My GCC version is " i686-apple-darwin8-gcc-4.0.1 ".

Could anybody help me ? Thanks.

------------------------------------------

System configuration:

Mac Pro, 2 x 2.66 GHz Dual-Core Intel Xeon

6 GB RAM

Graphics card: NVIDIA GeForce 7300 GT

Houdini version: 10.0.295 OSX

------------------------------------------

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...