Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by Alanw

  1. Displacement and point cloud

    The file you attached works fine for me. All I did was increase the pointcloud search radius to 0.496.
  2. My comment you quoted was discussing prman 17... I think you may have missed that. I can clarify though. prman 17's ImplicitField SDK has new methods for performing filtered lookups delineated by point p, dPdu, dPdv and dPdw (a filter region). If you want to take advantage of this, then you currently need to be using brickmaps.
  3. Hi Jon, I have only breifly looked at OpenVDB's feature list. From first glance, I don't see any advantages over Field3D. I was hoping it would offer a mip-mapped storage format for performing filtered lookups, but it looks like it also requires point sampling voxel grids. (like Field3D) The Field3D group has shown some interest on the subject at least. I think it boils down to a pipeline decision more than anything. Otherwise, brickmaps are probably the best option for speed and quality.
  4. Try this shader for your clouds. class simple_vol_density(varying float density = 1; uniform float densityMultiplier = 1;) { public void surface(output color Ci, Oi) { color Cdiff = 0; illuminance(P) { Cdiff += Cl; } Oi = density*VolumeField*densityMultiplier; Ci = Cdiff * Oi; } } [/CODE] Be aware, the majority of prman 17's volume related attributes are not supported in Houdini yet. (only prman 16) So you will either have to add them using an include, or modify soho. I wouldn't even try rendering without them. (see Pixar's documentation) It's questionable whether or not you'll actually see any gains in speed. Mantra certainly knows how to render volumes.
  5. Here's a little test. This isn't apples to apples as far as settings are concerned, but more or less the quality of the result. I don't think they're necessarily equal on quality either, but close enough. (The mantra render could use a higher shading rate) I tried rendering prman volumes directly (12.1 supports it), but soho's throwing an error, so all I have to compare with is my DSO for now. The scene has x2 lights. (key + fill), and a voxel grid with (217 325 211) resolution. mantra, using the liquid smoke shader from the material palette. stochastic transparency is OFF volume step size is 0.1 4x4 samples 1 shading rate micropolygon mode Generating Image: ip (640x480) Plane[C]: Cf+Af[4] (16-bit float) Render Time: 1:45.50u 1.86s 5.83r prman, using a custom shader. (just an illum loop w/ density controlling Oi) note the coarse shading rate. (it's the opposite in prman, where 4 is quite low quality) ShadingRate 4 Attribute "dice" "rasterorient" [0] Attribute "trace" "int maxdiffusedepth" [1] Attribute "trace" "int maxspeculardepth" [1] Attribute "trace" "float bias" [0.00999999978] Attribute "volume" "string depthinterpolation" ["smooth"] Attribute "volume" "string[1] refinementstrategies" ["uniformdepth"] Attribute "volume" "float[2] depthrelativeshadingrate" [4 4] Attribute "volume" "deptherror" [0.00392] Attribute "shade" "string transmissionhitmode" ["shader"] Attribute "shade" "string diffusehitmode" ["shader"] [/CODE] Rendering at 640x480 pixels, 4x4 samples "ip" (mode = rgba, type = it) Memory: 2290.08 MB Max resident mem: 718.48 MB Page faults: 0, Page reclaims: 243226, Swaps: 0 Real time: 00:14 User time: 03:00 Sys time: 00:01 Once the buckets appear in my framebuffer, they both take the same time to render (roughly 2 seconds), but my DSO is taking approximately 10 seconds to load the 250MB field3D file for rendering, so all in all I think they're close to the same. Maybe some more folks who've tested both in production can comment. This is with 24 threads @ 3.6Ghz
  6. I've done quite a bit of testing with prman 17's volumes lately while writing a Field3D implicit field DSO. ( a few tests here and I mention render times down in the comments) tests below..
  7. I've put together a dark skin for odforce that some of you cave-dwellers may be interested in. You can grab it here. In order to use this theme, you'll need the stylish browser plugin for firefox, or chrome. Otherwise, it's useless. To install from firefox, you click "manage styles", and then "write new style". Copy + paste the CSS into your blank style, and give it a name. I've updated it quite a bit, but it's not perfect. If you find any big areas that I've missed, let me know and I'll try to keep it updated, but no guarantees. It's dead simple to do youself if you use the FireBug addon. -Alan
  8. I've fixed a few things. http://www.alan-warren.com/scripts/odforcev8_dark.css - The tags which may appear above posts were illegible. (white text over light gray background image) The tag image is now a deep brown color. - The contents of [code blocks had a white background, with default syntax highlighting. I've updated these to use a dark theme inspired by my current VIM colorscheme.
  9. Another update. http://www.alan-warr...orcev8_dark.css A bunch of the images were still pointing to the old staging URL, but that's been fixed. (I removed them from the CSS since they're not being changed) Thanks to Solitude for mentioning it on IRC.
  10. Read me!

    I like the Coders Corner how it is now better than placing Shading, HDK and Scripting a level deeper. I like to skim the "last post info" column from the root level of the forum. If these topics are buried a level deeper, we'll have to click down to see the latest posts. ( I know they'll still be listed @ the root, but it won't always be clear which topic posts fall under) Also, will HDK continue to have ODE, Bullet and Ocean as sub-forums? I like the new look though. Thanks, Alan
  11. Anything would be better than nothing.
  12. Rendering Tons of Points

    This was my "gotcha" as well. Thanks for mentioning this, I was wondering where my output went...
  13. Ptex question

    I think you'll need to stick with quads for ptex. Honestly though, ptex isn't the answer for all pieces of geometry. (especially pieces that you won't subdivide) Mari also makes it possible to get away with auto-projecting your UV's most of the time, so the layout process is very fast.
  14. Render Artifacts

    Can you attach a .bgeo that reproduces this? If you imported this geo with normals present, it may be helpful to delete them and use a Facet SOP to add them back.
  15. Houdini cannot read rib archives. It will only allow you to attach rib to geometry that will in turn be processed at render time. Delayed loads can be achieved with the delayed load procedural SHOP. You reference your RIB on disk and attach the SHOP to your OBJ using the shop_procedural parameter. It's about as simple as it gets. You can also use a standard RIB archive without delayed load. The parameter for this is in the Geometry folder in soho's parameter interface. All you have to do is add it to the geometry you wish to attach RIB to, reference some rib on disk and render. The geometry in your RIB will completely replace the OBJ you attached it to, so it's useful to attach rib to instance points.
  16. Mantra Default Properties SHOP

    I don't think so. This should help explain how properties are inherited. http://www.sidefx.com/docs/houdini12.0/props/
  17. Raytracing for Renderman

    The parameter you want is called "transmission visibility". It's not present by default so you'll need to add it as Ethan has nicely described. HTH
  18. looking for work

  19. Vector Displacements revisited.

    Mantra also has a parameter you can add to your geometry called Redice displacements that might help in this case. Object space maps render faster than absolute tangent maps, but they will not work on deforming geometry. (moving point positions). They do work with animated objects though.
  20. Vector Displacements revisited.

    The files from Disney work fine for me. They're not vector, or displacement maps though so you will need to change your vop network. If you add a ptexture vop to the Mantra Surface material it should work out. Just plug it in where the diffuseColor vop is going now. For Mudbox, you must select "Object Space" in the map export window. Otherwise they will not work with this setup.
  21. Vector Displacements revisited.

    Here's a hip. I don't see any warnings or errors on my end. HIP Archive
  22. Vector Displacements revisited.

    I had some time to give this a shot in Mantra with the ear.ptx file floating around the net. There's really nothing to it for object space maps. If I can get my hands on a tangent space map I'll get it a shot, but that should only be necessary if the object you're rendering is deforming. VOPS VEX /* written by Alan Warren * bluemoonshine@gmail.com * * description: shader with ptex vector displacement * */ displace aw_vdisp_example( string vdisp_map = "" ) { vector Po = ptransform("space:current", "space:object", P); vector Nn = normalize(N); vector tmp; vector result; vector ptexcol; vector dispP, dispN; float uu = s; float vv = t; int fface = getprimid(); float duu = Du(uu); float duv = Dv(uu); float dvu = Du(vv); float dvv = Dv(vv); ptexcol = ptexture(vdisp_map, fface, uu, vv, duu, duv, dvu, dvv, "filter", "gaussian", "lerp", 1, "width", 1, "blur", 0); tmp = Po + ptexcol; result = ptransform("space:object", "space:current", tmp); dispP = result; //dispP += dispN; dispN = computenormal(dispP, Nn, Ng); P = dispP; N = dispN; } Here's the Ear PTEX Vector Map HTH Alan
  23. Vector Displacements revisited.

    He's referring to "Vector Displacements" Check it out here. http://wiki.polycount.com/VectorDisplacementMap
  24. Vector Displacements revisited.

    Here's a more general code sample. public void displacement(output point P; output normal N) { normal Nn = normalize(N); normal Ngn = normalize(Ng); normal normalDelta = Nn - Ngn; point Po = transform("object", P); if (displacementmap != "" ) { color tmp = texture(displacementmap, s, t, "filter", "gaussian"); float referenceMag = length(vector "shader" (1,0,0)); Po = Po + (Km * normal(tmp[0],tmp[1],tmp[2]) * referenceMag); P = transform("object", "current", Po); N = normalize(calculatenormal(P)) + normalDelta; } }
  25. Vector Displacements revisited.

    I wrote a vector displacement shader for prman that you're welcome to dissect. https://github.com/AlanWarren/demo-reel-shaders/blob/master/surface/aw_surface_std.sl I've tested it with 32bit float ptex vector displacement maps generated in Mudbox using prman 16.1. (obj space). If you need any help let me know. Just take particular notice of the displacement method, and this header. https://github.com/AlanWarren/demo-reel-shaders/blob/master/include/aw_TexturingUtils.h aw_ptexDisplace() is the function I use for vector maps. When I get some free time I'll try a vex port.