Archived post by Bender

hdrihaven.com/ texturehaven.com/

great resources for practice textures/hdrs

docs.google.com/presentation/d/1OBGSp2Wjw7CuIHuJIwvXj-Wpb-hwDfgtNEqrnK5vKKA/edit?usp=sharing I kinda broke the presentation mode on this when I added some stuff… but it’s my ‘intro to lighting’ slides – I added some extra shit for some school age kids I had to do a presentation for that isnt quite fleshed out in the slides as it was done verbally

Archived post by Bender

cheers

Broadstrokes mistakes non-lookdev people make: 1) Putting color in specular color channels on dialectric (non-conductive ie non-metallic) materials . Typically only metals tint the specular response. 2) Clamping high bit-depth maps or using nodes that clamp values on them. 3) confusing roughness/glossiness – make sure your maps are rough where they should be rough 4) Not adjusing the specular color to match the roughness. Typically the specular response is also reduced where it’s roughened – in CG we often invert the roughness map to get the specular color. The roughness *should* take care of the energy distribution across the surface but usually needs a little help from the spec color. 5) Taking into account the affect bump maps have on specular roughness. Remember that the specularity of a surface is simply emulation of micrsocopic diversions on a surface. Bump is just a macro version of this, but make the frequency small enough and you’re effectively increasing specular roughness. If you’re going to use high frequency bump, make sure its plugged in while you address specular roughness values> 6) SSS will reduce bump and shadow fidelity on macro and micro scales. You may need to adjust bump or diffuse in order for it to be read as you expect while using SSS (again, VERY broad stroke note) 7) Confusing bad shading with bad lighting. If you’re getting highly detailed bump that you cant seem to shake, or things are looking highly specular when you dont think they should be – is it acually because you have lights with no surface area? The smaller the light area the less points on a highly bumpy, highly glossy surface that will catch the glancing angle of that light… make sure your light sources are based in the reality of the shot – a reason why both neutral look development and shot Lookdev are equally important

Archived post by Nick D

@Sepu swap $HIP to $JOB for all redshift textures

`def hipToJob(): for node in hou.node(“/”).allSubChildren(): if node.type().name()==”redshift::TextureSampler”: fileJob = node.parm(“tex0”).rawValue().replace(“$HIP”,”$JOB”) node.parm(“tex0”).set(fileJob)`

Archived post by xcaseyx

“`Spot lights casting caustic photons (millions) Object casting caustic photons (glass material with disperssion) Search radius on caustics set to like 0.1 or 0.03 depending on the shot higher values = more blur, lower values = more tiny dots of light If you want very very detailed caustics crank up spot lights to 9-10 million and search radius down to like .01 add photos until you’re happy“`

Archived post by rich lord

`// formula to change from one space to another // P = inverse(m1) * m2
// get the position and orient data vector start_p = point(0, “P”, 1); vector end_p = point(0, “P”, 2); vector4 start_orient = point(0, “orient”, 1); vector4 end_orient = point(0, “orient”, 2);
// calculate the blended values float blend = fit(@Frame, 1, 48, 0, 1); end_p = lerp(start_p, end_p, blend); end_orient = slerp(start_orient, end_orient, blend);
// matrix at start matrix3 start_m = qconvert(start_orient); vector start_n = set(start_m.zx, start_m.zy, start_m.zz); vector start_up = set(start_m.yx, start_m.yy, start_m.yz); matrix a = maketransform(start_n, start_up, start_p);
// matrix at end matrix3 end_m = qconvert(end_orient); vector end_n = set(end_m.zx, end_m.zy, end_m.zz); vector end_up = set(end_m.yx, end_m.yy, end_m.yz); matrix b = maketransform(end_n, end_up, end_p);
matrix final = invert(a) * b; pos = pos * final;`

There we go! Thanks so much! @TOADSTORM + @jake rice 😮 . Infinite fishies for me!

Need to handle scale, but I already have code for that.

Archived post by MrWolf

In case you want to speed up the Point Deform SOP ( a lot ), you can disable the xformbyattrib1 node inside the hda. That is in charge of deforming custom attributes. Should really be disabled by default and there should be a checkbox to enable it on demand. We’re talking about ~x5 speed improvement. If you disable the ‘attribdelete1’ node as well, you’ll gain another ~10% in speed.

Archived post by mestela

so, timeshifts and for loops

kindasorta got a definitive answer

“The For Each Begin SOP does not do an implicit blast on it’s input unlike the Each SOP that was there in previous releases. If you put a Time Shift SOP before the Fetch, it will seem like it is not working as the Fetch isn’t cooking it’s input. It will return the same piece of geometry for all time. To correct this, use a Blast SOP and delete out the piece you want with detail expressions pointing to a Meta Data SOP.” – Jeff Lait

More explicitly, don’t let the begin block split your geo for you. Change it to ‘fetch input’, so it brings in everything on each run of the loop, then manually isolate to the thing you want, by using info from the metadata sop. Now any timeshifts within the loop will behave.

a gif to explain that: www.tokeru.com/cgwiki/images/5/55/Forloop_timeshift_fix.gif