Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

6 Neutral

About GeordieM

  • Rank

Personal Information

  • Name
  • Location

Recent Profile Visitors

1,521 profile views
  1. Hello from Microsoft! We currently have several open contract positions for talented Houdini Artists/TDs/TAs in the Seattle area (Redmond). You’ll be working on an exciting project collaborating with Developers, Artists and Data Scientists in the Cognition group. Main responsibilities: · Collaborate with the Art team to create procedural assets. · Work with the Technical Art Director developing new large-scale generation and simulation systems. · Work with the Technical Art Director on enabling PDG cooking of procedural assets. · Working with the Development and Art teams rendering large scene. · Photo-real rendering and VFX work. You will need at least three of the following Houdini skills: · Creating HDAs to share with other artists. · Procedural geometry creation with SOPs. · Use VEX to create efficient geometry algorithms. · Fire & Smoke VFX. · Creating DOP networks from scratch for new simulation types. · Use Python to interact with external data sources and APIs. · Knowledge of Physically Based Rendering and photo-real materials, lighting, cameras etc. · Develop new Materials ad Shaders from scratch. · Texture creation/wrangling for PBR systems. Eg ensuring the albedo levels are correct for a specific surface. Bonus Skills: · PDG workflow development. · Arnold materials and shaders. · Working knowledge of Maya. · Working knowledge of Blender. · Working knowledge of camera technology. Lenses, Sensors etc · Quixel megascans. · GIS and map data. Please contact Deanne from Aquent: dgilman@aquent.com for resume submissions and general information about the positions, location etc.
  2. Yup that's exactly what I'm doing now re For loops. If you set the Iterations parm of a For loop to $F and Gather Method to Feedback you basically turn a For loop into a Solver (obviously some nuances to this). I then have a toggle in the HDA to use a specific iteration as output or override with current time to simulation a Solver SOP for development. Thanks for the validation Florian!
  3. Exaclty! Here's a quick demo scene Solver_Time_Lock_Test.hipnc On the Solver_Test obj there's a "Solver Iterations" int slider. If you push that up you'll see the number of points increase, if you pull it back down they won't decrease till you hit 0 then it force the cache to clear as per the "Enable Automatic Resimulation" option on the DOP sop inside the solver SOP. I want a way to completely invalidate the entire cache whenever the local time of the solver is changed without forcing any node cooking via scripts. I'm working on my own custom solution as well but thought there might be an easier solution.
  4. Hi all, I'm create SOP HDAs that internally use Solver SOPs for calculations. The end result is not time dependent, the Solvers are part of a generative system and the user can set number of iterations in the HDA UI. I use Solvers instead of For loops since they're easier to visually debug while developing the system. I've been using the Timeshift SOP and exposing the Frame parm to the HDA to set number of iterations. I then disable caching on the Solver SOP and put the Timeshift directly after it. This kind of works, but if you say set the Frame parm to 500 it will process the solver to that frame, but then if you set it back to 400 it won't refresh the graph downstream. I'd like to avoid scripted calls to force node cooking etc. What's the definitive way of locking the output of a solver to a specific frame and not have the output cached in any way?
  5. Hi all, I'm working with flow fields and want to calculate eigen vectors from the flow field values. I'm working with 2D volumes in ZX plane. Originally I had 2x vector volumes (I know this is actually 6x float volumes under the hood) representing a vector to the closest point on a curve and vector perpendicular the curve. I'm now converting this to use a single matrix volume. This would work well since the only Rank matrix option on a Volume SOP is 3x3 matrix and that's what the VEX eigenvalues function takes. BUT I'm unclear on how to map 2x 2D vectors (or even 2x 3D vectors for that matter) into the 3x3 matrix so I can just pass it to the eigenvalues function. hou.Matrix4 class docs has some interesting statements: http://www.sidefx.com/docs/houdini/hom/hou/Matrix4.html "Note that Houdini’s matrices are stored in row-major format, and vectors that are multiplied with matrices are treated as row vectors." "Both VEX and the UT_DMatrix4 class in the Houdini Development Kit (HDK) also store matrices in row-major format." So I'm guessing something like: Row major zero matrix: | x1, y1, 0 | | x2, y2, 0 | | 0, 0 , 0 | Row major unit matrix: | x1, y1, 0 | | x2, y2, 0 | | 0, 0 , 1 | Thoughts? TNKS! G
  6. how to get @ sign in string

    Just stumbled onto this problem. The help for VEX functions using SOP group syntax needs to be way more clear. From tooling around using \@ instead of \x40 seems to also work.
  7. Hi all, I'm attempting to generate a tangent space normal map of a large terrain using Bake Texture ROP. It keeps failing due to geo size so I'm attempting to render tiles. I have two object nodes, one merges low res tiles from main terrain and other merges hi res tiles. I'm using a Wedge ROP to drive X and Y parms on an object which the tile objects reference to change the tile they display. This all works fine, except the Bake Texture ROP doesn't seem to refresh the bounds of the tile objects between Wedge iterations. It renders the tile in the space of the entire terrain. What's even weirder is I added bounds and match size SOPs to the tile to scale it to the entire terrain size, and it still only render tiles in terrain space. Is there some magic I need to do to get Wedge renders to update SOP graphs correctly? Does the last SOP graph node need to reference parms driven by the Wedge node? I've attached an image of the output, as you can see it's correctly rendering the tile, just in the space of the entire terrain. Thanks! G
  8. Hi all, I need an input curve for a HDA that has arbitrary values between -100 and 100. Though you can manually set the values of points in a Ramp parm outside 0-1, the curve UI doesn't rescale to show them. Any way to make this work? TNKS! G
  9. So this is a focus related issue but haven't worked out a good callback to use. But have worked out a slightly dodgy solution. Instead of inheriting from QWebEngineView directly I inherit from QWidget and then add a QWebEngineView. I then listen for the timerEvent event on the python panel and call QWebEngineView.update() every 0.5 seconds. This works well but probably not the best solution.
  10. Small update, I can get WebEngineView to start updating by calling: self.resize(self.width()-1, self.width()-1) self.resize(self.width(), self.width()) Here my class inherits from QtWebEngineWidgets.QWebEngineView. BUT as soon as the mouse enters the QWebEngineView control it freezes again.
  11. Hi all, I'm creating a python panel tool with a web front end. I've successfully put a Qt WebEngineView in a Python panel, but when the panel is hidden and displayed again (ie switching tabs in Houdini UI) the main loop of WebEngineView seems to pause. Any animations stop and all mouse/keyboard interaction stops. If I resize the panel it will recover most of the time. I assume I have to call something on WebEngineView when then the python panel onActivateInterface() is called but I can't see anything obvious in the Qt docs http://doc.qt.io/qt-5/qml-qtwebengine-webengineview.html#WebAction-prop PS: I'm on Win 10. Anyone solved this before? TNKS! G
  12. Try exposing each component element of a float3 parm out as a separate float parm and see if that makes a difference. I have experience with other engines and Houdini engine but not Unity but this helped in my experience. Also I'd suggest just creating a UI debug OTL and start with the simple UI like ints and floats then add different parm types and test in Unity every time you add one. G
  13. ForEach SOP loop over point groups

    Had some more problems but sorted them out: 1. I'd deleted and re-added the Each SOP which had nuked it's connections to the ForEeach SOP 2. had hou.node("..").stampValue("FORVALUE", 0) instead of hou.node("..").stampValue("FORVALUE", "") which was forcing the output to 0. TNKS! G
  14. ForEach SOP loop over point groups

    Thanks! Arrg missed that check box
  15. Hi all, I have point data that doesn't have any primitives but it's partitioned into groups. I'd like the ForEach SOP to loop once per group. I've seen examples of this working for primitive groups: http://forums.odforce.net/topic/15277-how-to-access-the-iterating-group-inside-foreach-sop/ But I can't get it to work for point groups. Any suggestions? Thanks! G