GafferHQ / gaffer

Gaffer is a node-based application for lookdev, lighting and automation
http://www.gafferhq.org
BSD 3-Clause "New" or "Revised" License
969 stars 207 forks source link

Windows version of Gaffer ? #2967

Closed SheepDomination closed 1 year ago

SheepDomination commented 5 years ago

Is there plans for a Windows version ?

ericmehl commented 5 years ago

I have a fork in progress with Windows support that you may find useful: https://github.com/hypothetical-inc/gaffer. There's a beta release on that repository from a few weeks ago that is mostly functional but still has some quirks and bugs.

I'm continuing to work towards getting it ready for production, passing unit tests and all that jazz, so check back every now and then for more updates.

SheepDomination commented 5 years ago

Which repository should I be looking into to find the beta ?

ericmehl commented 5 years ago

This release here: https://github.com/hypothetical-inc/gaffer/releases

There's also been some discussion on the user forums at https://groups.google.com/forum/#!topic/gaffer-dev/KDspEgxy65A with some more information, history of the progress, etc.

SheepDomination commented 5 years ago

I see the list of bugs among unknown bugs. From what I read the focus is primarily on VRay, rather then any other engine including Arnold.

boberfly commented 5 years ago

Hi @SheepDomination Arnold did compile fine, but the python bindings seem to differ from the linux ones so that shaders and things were unable to scrape data and fill in the menus. Might be related to forward/backslashes but I didn't investigate further than that.

I'm busy right now with getting Cycles to work, but I can re-visit this at a later time using @ericmehl 's latest work. @ericmehl - would it be easy/possible to just download Arnold in your CI build so that it can build the plugin in Gaffer?

Cheers

ericmehl commented 5 years ago

I'll see if I can get that download working and building this week, I should have some extra time to give to it. I did make some changes in Gaffer concerning the forward vs. backslash to get the OSL shaders loading right - hopefully this will carry over or be easily adapted to Arnold too.

boberfly commented 5 years ago

https://github.com/hypothetical-inc/cortex/blob/msvc2017_for_merge/contrib/IECoreArnold/src/IECoreArnold/UniverseBlock.cpp#L65 this line most likely will fix Arnold's shader menu listings, need to check...

ericmehl commented 5 years ago

It does fix the shader listings, but there are a couple of other things that need to be changed in Gaffer. I created a new branch with my latest: https://github.com/hypothetical-inc/gaffer/tree/arnold-windows

It gets Arnold recognized in Gaffer but it crashes for me when I go to create a shader or anything else that actually fires up the Arnold engine.

If you have interest @boberfly I'd be interested to see if you have better results getting it to work since you know the rendering side of Gaffer far better than me.

For example I get a number of warnings about unsupported parameters like this:

WARNING : GafferArnold::ParameterHandler::setupPlug : Unsupported parameter "matrix" of type "ARRAY" on node "ArnoldShaderBall.skyDome" of type "skydome_light" WARNING : GafferArnold::ParameterHandler::setupPlug : Unsupported parameter "filters" of type "ARRAY" on node "ArnoldShaderBall.__skyDome" of type "skydome_light" WARNING : GafferArnold::ParameterHandler::setupPlug : Unsupported parameter "shader" of type "NODE" on node "ArnoldShaderBall.skyDome" of type "skydome_light" WARNING : GafferArnold::ParameterHandler::setupPlug : Unsupported parameter "matrix" of type "ARRAY" on node "ArnoldShaderBall.skyDome" of type "skydome_light" WARNING : GafferArnold::ParameterHandler::setupPlug : Unsupported parameter "filters" of type "ARRAY" on node "ArnoldShaderBall.__skyDome" of type "skydome_light" WARNING : GafferArnold::ParameterHandler::setupPlug : Unsupported parameter "shader" of type "NODE" on node "ArnoldShaderBall.skyDome" of type "skydome_light"

And a crash on access violation when it hits

8 0x00007ffc82fdbc0e [GafferScene ] GafferScene::Sphere::zMaxPlug

boberfly commented 5 years ago

@ericmehl I'll fire up the old MSVC machine here and take a stab at it. From the looks of it, the string matching code to figure out the parameters might not be dealing with wchar properly but I'll need to throw it at a debugger to be sure. That .string() trick might do it though. https://github.com/GafferHQ/gaffer/blob/master/src/GafferArnold/ParameterHandler.cpp#L311

ericmehl commented 5 years ago

I'm thinking the crash and the warnings are not related now. I did a quick debug and I'm finding that Gaffer isn't able to create the m_renderer object at https://github.com/GafferHQ/gaffer/blob/47ed242c0b01c2110cf57cd9aed5263dca6e4504/src/GafferScene/InteractiveRender.cpp#L208

When I stepped through it, Gaffer knows about Appleseed and OpenGL but Arnold seemed to have missed the wagon. I'll keep poking around a little too and share what I can discover.

ericmehl commented 5 years ago

I managed to get Arnold working on Windows! It turned out to be a simple case of adding the IECoreArnoldPreview that was mis-pathed and the changes I put up on Friday. I have those in my ongoing https://github.com/hypothetical-inc/gaffer/tree/msvc2017_for_merge branch.

Right now though to get Arnold support use this specific build which includes Arnold for Cortex and Gaffer: https://www.dropbox.com/s/31rmlu0bd9d31zq/gaffer_build.zip?dl=0

I'm putting that up as a separate build since it's not a result of my CI pipeline. I'll have to sort out how / if I'll continue supporting Arnold in my fork since I don't use it in production and maintaining separate builds for it may become more than I can take on.

But for those building from source the chain now works with Arnold. You will need:

  1. download Gaffer Dependencies for Windows
  2. build Cortex for Windows. Make sure to point the ARNOLD_ROOT environment variable to your installation before building. This is the key step I may not be able to keep up with since it relies on having Arnold's API that I believe I'm not able to include in CI builds since it needs to come from Autodesk.
  3. build Gaffer for Windows. This also needs the ARNOLD_ROOT set as in step 2.
SheepDomination commented 5 years ago

Is Arnold required to be installed ?

boberfly commented 5 years ago

@SheepDomination yeah just like the Linux version, it should exist in your PATH environment variable.

andrewkaufman commented 5 years ago

@ericmehl its just for visibility on our Work in Progress board, but can you assign this issue to yourself? I can't seem to assign you for some reason... maybe your username has restricted permission settings?

ericmehl commented 5 years ago

Hmmm, I don't seem to be able to assign myself either. I think because I don't own the repository? It sounds like I need to be invited to be a collaborator first, via the repo's settings.

johnhaddon commented 5 years ago

I've invited you to be a collaborator Eric - let me know if it doesn't arrive for any reason. If being assigned to the issue is more of a public commitment than you want to make though, just let me know...

ericmehl commented 5 years ago

Great, I just accepted it. I'm happy being assigned publicly, I'm looking forward to getting back to it once I have the Cortex bits wrapped up!

johnhaddon commented 5 years ago

Great! Assigned!

johnhaddon commented 4 years ago

Just linking the latest build and the forum thread where it was announced :

https://github.com/hypothetical-inc/gaffer/releases/tag/0.55.1.0 https://groups.google.com/forum/#!topic/gaffer-dev/rQraWNbDxaU

ZhongLingXiao commented 4 years ago

Hi Eric,

Is there a build steps on windows in detail.

Thanks

c17vfx commented 4 years ago

any news 0.56?

ericmehl commented 4 years ago

@c17vfx Probably early - mid March. I have a project keeping me busy until then and I'll update the Windows build after. @ZhongLingXiao apologies for missing your message, I'll put together more info on building when I make that update.

noizfactory commented 2 years ago

Wondering if this is in the near horizon? We are still on windows at the studio due to limited time and resources for a Linux migration which is a huge bottleneck for deploying a gaffer pipeline. Would love to switch to gaffer if there is a windows version coming soon.

ericmehl commented 1 year ago

Hey @noizfactory, this is definitely still happening! In fact we're working out some final issues to get a new Windows release out, hopefully in the coming weeks. It won't be 100% tested and buttoned up, but it will be better tested than the last release from my fork, and have all the latest additions since 0.61.1.2 as well.

BigRoy commented 1 year ago

This is now on the very close horizon!

The 1.2.0.0a1 Pre-release has officially added a Windows build, see discussion on 1.2.0.0a1.

Windows : Added official builds for Windows.


Thanks @ericmehl for your continuous efforts on this front!

johnhaddon commented 1 year ago

Closing, since 1.2.0.0 has now been released with Windows support. Thanks once again @ericmehl!