Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


toadstorm last won the day on March 6

toadstorm had the most liked content!

Community Reputation

44 Excellent


About toadstorm

  • Rank

Contact Methods

  • Website URL

Personal Information

  • Name
  • Location
    San Jose, CA

Recent Profile Visitors

3,274 profile views
  1. Your `trace()` instinct is about right, but personally I'd use `gather()`. You need to provide `gather()` with a position P and a direction T. The Fresnel VOP can get you T based on N, I (the camera ray) and an IOR (called eta here). Then tell `gather()` to sample the value of the exported AOV attribute (multimatte RGB or whatever) you want to be refracting in this shader: vector temp = 0; vector hit; gather($P,$T,”bias”,0.01,”samples”,1,”name_of_aov_attribute”,hit) { temp += hit; } $out = temp; then you can bind that output to any export you like. i'm only doing one sample here, but if you needed smoother samples you could increase that number, then divide `temp` by the number of samples after your gather loop is done. i used an Inline VOP for that code, but it'd probably work in a snippet if you changed from $ style variables to snippet syntax.
  2. PySide set Color of cells in QTableView

    If you're using QTableView, you could always use a QStyledItemDelegate to display the first row however you want, but there's some extra boilerplate involved. You could also try using the default model behavior's data() method... the role you want is QtCore.Qt.BackgroundRole: if role == QtCore.Qt.BackgroundRole and index.column() == 0: return QtGui.QColor(255,0,0)
  3. Updated Method for Aiming Normals

    Yeah, a wrangle is usually a good choice. The method is almost exactly the same. Here's a screengrab of the network and the code you'd use: vector p2 = point(1, "P", @ptnum); @N = normalize(p2 - @P);
  4. he did mention he didn't want to blast all the other primitives, though that would be my preferred workflow in this case.
  5. You can create a @density primitive attribute on your box that will guide the scatter density, if you set the Scatter SOP to use density as your Density Attribute.
  6. PBR and raytracing are more or less the same thing... if you crack open any of the default shaders, you're going to see the Compute Lighting VOP in there, which is running pbrlighting.vfl internally. The main difference you'd notice as a user is that if you're trying to run PBR-specific shading nodes with the raytrace engine, it'll likely crap out, and if you're trying to use some more old-school tricks in PBR, you might get unexpected results. Most of the time I use the raytrace engine and make sure my materials are all using Compute Lighting at some point, and this seems to work well for most scenes. Micropolygon is an older approach that's really great in a few specific situations, but it has limitations. It's best used with volumes, especially with displaced volumes, since it can crank through them very very fast. IIRC you have to use deep shadow maps on your lights, however, and if your shader requires raymarching (i.e. multiplying density against volumetric textures) you're not really going to see any speed gains. It doesn't seem to work properly in IPR mode, so if you want to see the actual speed gains you'd expect on volumes, render to MPlay. If you're doing volume-heavy work and you don't need fancy lighting, it's worth a shot to see if you can make it work, but it's not as easy or predictable as raytrace/PBR. 90% of the time you'll be using raytrace/PBR.
  7. If you haven't already watched Entagma's video on parallel transport, it's worth watching. The technique allows you to generate a stable reference frame along a curve, without the flipping you'd often get from a static up vector. http://www.entagma.com/td-fundamentals-parallel-transport/
  8. Smoke falling down

    Particle advection will help for the look, if you're trying to get super wispy smoke. I'd try introducing turbulence, but use the collision field as a mask for applying it. That should get you that nice laminar flow at the top, and noisy turbulent flow underneath.
  9. Interior Fluid Shader

    You're using the wrong node... you want the Transform VOP, converting from space: current to space: world
  10. [SOLVED]Modify Rotation Of Aligned Copies?

    I inserted two nodes here. The first is to create a stable p@orient attribute on your plane, before it starts animating. The scattered points inherit this orientation. It's just based on the maketransform() function, using the existing @N and an arbitrary up vector (+X in this case). The second is to use the quaternion() function to create a second quaternion from an axis and angle. The axis you want to rotate around is @N, and the angle is any random angle between -PI and PI radians, which corresponds to -180 and 180 degrees. The qmultiply() function then adds this rotation to the existing orientation. The great thing about quaternions here is that you can take any axis and angle, make a quaternion out of it, then qmultiply that against your existing rotation, and you'll get a combined rotation back. ap_arrows_align_along_curved_surface_fixed.hiplc
  11. Interior Fluid Shader

    You can grab attributes from points in a shader, no problem. This is what point cloud functions (pcopen, pcfilter) were intended for. If you cache out your points to bgeo, you can take your shader global position P, convert it to world space using a Transform VOP, then use that as the position for a point cloud open VOP, with your points as the input geometry. This way you can grab and filter any point attribute you like. With volumes you can use the Volume Sample and Volume Sample Vector VOPs to grab voxel data from any cached volume primitive.
  12. If you want to create groups from an i@class attribute, maybe just use the Partition SOP?
  13. Export pyro to polygon alembic with vertex color

    Vertex colors will work in Maya from Houdini if: the attribute is vector3 RGB (it's possible this could work with vector4, haven't tried it) it's a vertex attribute it has the attribute type "color" (use the VEX command setattribtypeinfo() to set the type to "color" if it isn't already) Here's a sample file, this displays with vertex colors in Maya as expected: meshed_pyro_vtx_color.hip
  14. Use a Geometry Wrangle or a POP Wrangle if you're dealing with particles, and use an expression like this: if(len(v@v) < ch("min_speed")) { removepoint(0, @ptnum); } Or use a SOP Solver in your DOP network to delete the points using any of the SOP-based methods listed above.
  15. voronoi fracture, how to avoid straight segments

    Sorry, misread you, I thought you were saying concave made no difference in finals! Sounds like we're saying the same thing then.