- Table of Content
- houdini shortcuts
- macOX display prefs
- display settings
- set selection (of polys or points)
- select modes
- select in between
- brush select
- pivot tumbling
- gimball/pivot axes
- move points only on XY axis
- align handle to world/object/component
- grain, sand, powder (vellum)
- resize image in COP
- karma rendering setup solaris
- 360 panos in houdini
- soft transform
- substance material in houdini
- houdini animated WEBP from 3d sequence
- scale object according to reference object
- scale node img context
- Cogwheels/Zahnräder, control with ramp
- setup UV sample scene
- setup UV viewport and visualizer
- UV flatten, creating seams
- UV flatten, UVs with preexisting or random seams
- install houdini in linux, ubuntu
- redshift settings
- render multiple versions/takes
- NVIDIA Denoiser
- set houdini TEMP path for cache, scratch volume
- sculpt tool
- fluids
- emit particles from an object
- change DEL/backspace key on mac, hotkeys
- create a spiral, helix
- curves (without Edit SOPs)
- animation and keyframing
- motion camera, tracking on path
- better texture quality
- create volumetric
- prepare file for 3d printing
- glow with emission of point color
- stick object on a bended object (wriststrap)
- create mesh/grid/wriststrap
- importing vector from illustrator
- color variations in IMG/COP network
- random variations of mesh
- wireframe render
- wine bg/hdr setup
- close polygon hole
- Textures mit alpha
- UV mapping
- compositing
- keyframes and animation
- VOPs
- custom shaders
- switching geo
- switch color VEX
- material setups
- improve textures in viewport
- convert hipnc to hiplc
- alembic export
- FBX export
- new project settings
- instances
- edge loop
- polysplit
- houdini dropship modeling course
- add notes/labeling node networks
- asteroid with sphere and mountain
- rembrandt low poly
- polybridge
- background
- store geo within file
- creating a new material
- basic lights
- model a glass/goldring
- houdini basic lighting and rendering
- basic rendering settings
- export obj
- sphere distributed on a grid
- hide the popup node stuff
- extrude operation
- center axis
- switch axis/handle between world/object mode
- create digital assets
- simple UVs
- PROBLEM: camera upside down inverted in render view
How to find stuff
Please use Browser Search or Scroll down.
houdini shortcuts
=============================================================== alt + left/right arrow go to new network view (mat/out usw) alt + mouse rotate in space alt + middle mouse drag in space s select t move e scale r rotate y cut network line space + h frame active object tab add node, open node menu, tab menu shift + enter place node and automatically connect them space + mouse rotate zoom usw space in nodes paneo: to pan 1/2/3 switch between point selection/object selection modes p to show parameters for nodes space 123 pers/front/back/side views d in viewport, for display options w wireframe shift w shaded m toggle between object/world axis mode x to show snapping options space + 1 perspective view space + 2 top view space + 3 front view space + 4 right view space + 5 UV view mode radio menus (tab is faster and works in viewport too....) c pie menu in perspective view x snapping v viewport navigate networks i go down u go up p toggle parameters nodes u/i go into node / leave node shift + o make a visual collapsable group of nodes c color box, to colorize nodes ...more edit -> shortcuts crtl + node drag moves bottom part of nodes shift + node drag moves the top part of nodes =============================================================== ===============================================================
macOX display prefs
houdini settings -> change to HiDPI macOS system settings -> displays -> larger text
display settings
in nodes pane -> view -> display options Chose node size -> never show node ring view -> uncheck show custom node check
set selection (of polys or points)
select the points/polys -> model tab (top) -> group (this creates a node with only this selection)
select modes
oben rechts menu icons select front and back facing (= select only visible) primitives = polygons
select in between
in edge mode, hold down 'shift' + A key
brush select
scroll middle mouse button to increase/decrease
pivot tumbling
mouse over any point and hit space+Z (now it rotates around that point!)
gimball/pivot axes
press ENTER to see it
move points only on XY axis
(for example in side view) find the tiny dot next to gimball, it only enables 2 axes when moving!
align handle to world/object/component
select polys to move -> rightclick on handle -> component =============================================================== ===============================================================
grain, sand, powder (vellum)
add some testgeo, which will become the grain body then add vellum configure grain node check click points from volume Grain size: 0.05 check jitter scale (to arrange more randomly) add vellum constraints node feed only first input add 2 null nodes name them geo, constraint feed in first 2 of vellum constraint node go up into /obj context add dopnet node cache tab -> cache memory: 25000 then dive inside dopnet node add vellum object node Initial Geometry: select geo null here Initial Constraint: select constraint null here add vellum solver node substep: 15 (to keep them together) Static Threshold: 1 advanced tab -> Attraction Weight: 1 (this defines how much it will clump) add gravity force node and connect to output (for testing) (now it should be falling) add ground plane node -> physical tab Bounce: 0 Bounce Forward: 0 Friction: 10 underneath add a merge node feed gravity node into merge node and connect to output (for testing) go back to test geo node and add attribute VOP (add under vellum constraints grain node) (set display flag on 2nd vellum constraints node and grain size to 0.02) inside add Anti-aliased Noise 3D Frequence: 10 10 10 Amplitude: 10 (this also defines clumbiness!) connect P with pos and noise with Cd add fit range node connect with noise Destination Min: 0.8 add bind export node connect with shift Name: attractionweight
adding colliders
add geo node with box inside then go into dopnet add static object node next to groundplane SOP path: select box object here fricion: 0 add merge node (feed static and groundplane) connect out to other merge node (keep input order or no simulation!) (uncheck testgeo to hide it)
caching
add geo node and dive inside add _dop import node DOP Network: /obj/dopnet1 Object Mask: *Vellum* import style: Fetch Unpacked Geometry from DOP Network add color node color type: ramp from attribute attribute: attractionweight add file cache node (set frame range) file mode: Write files click save to disk add another file cache node but dont connect File Mode: Read files set display flag here
rendering grain particles in redshift
on geo node -> Redshift tab -> Particles -> check Render Object as Particles material needs to be assigned on top of geo node (not inside!)
src
https://www.youtube.com/watch?v=oqFPeicqPKE https://www.youtube.com/watch?v=AGPug-p_M2s https://www.youtube.com/watch?v=Iq2OktZtl14 https://www.sidefx.com/docs/houdini/grains/about.html
resize image in COP
add scale node downscale filter: gaussian
karma rendering setup solaris
(use daily build!!) desktop -> solaris
adding geo to stage
add sop import nodes add transform nodes and position objects add material library node Material VOP: select from mat context here check Assign to Geometry Geometry Path: All Geometry Primitives (add merge nodes)
adding camera
(find nice position in viewport) crtl click on camera icon on top shelf (after merge node)
add lights
crtl click on environment light in top shelf Intensity: 3 Texture: set HDR here
enable karma
switch to karma viewport (Persp) add karma render properties node diffuse limits: 4 create snapshots with filmstrip icon (next to viewport)
adding lens shader
add physical lens in mat context Bokeh tab Shape: Polygonal Number of Sides: 5 ( = aperture blades) Rotation: 72 in camera node karma tab set or create -> check use lens shader set or create -> Lens Shader VOP: select shader sampling tab F-Stop: 0.5
set focus
switch viewport from karma to Houdini GL press z to get focus handles
render to disk
add karma node diffuse limits: 4 click render to disk and check in render scheduler
src
360 panos in houdini
redshift
place null and 4 cameras set camera resolution: 4000 x 6000 copy position of null into cameras, move rig with null rotate cameras 90° each in redshift tab on cameras -> setttings tab -> camera projection -> Fisheye Projection 1,1 180 (equirectangular didnt project properly in pano2vr also no rs-texture shader for equip...) render 4 images out and stich in ptgui sensor: 3d rendering lens: 8mm, generic fisheye
or mantra testing:
add VR cam and set projection, remove stereo to straighten image, remove cam transform rotation values (didnt project properly in pano2vr..)
soft transform
add soft transform node or soft peak node distance metric: radius
substance material in houdini
create/import a material in alchemist
take some photos and import in alchemist or load sbsar export as targa images: diffuse -> base color normal -> normal roughness -> roughness specular -> reflectivity metallic -> metallic height -> displacement (glossiness -> roughness) (AO -> not needed (game engines) )
houdini sbsar import in redshift
mat -> build vopnet, name it TEXTURENAME inside link rs textures
for displacements:
feed tex map into displacement node map encoding: vector
houdini animated WEBP from 3d sequence
setup project in houdini
- 20fps/100 frames project in houdini ( 50ms webp ) - counter clockwise - no shadow ( kontrastreiche verlaeufe in webp flickern ) - compositing out + nice bg mkdir frames img2webp -o cup.webp -q 80 -mixed -d 50 folder/*.png (adjust quality/filesize with -q) then delete last frame so there is no weird transition delay
parameters -q: quality vs filesize
q 20 sucks q 50 bad q 70 ok q 90 pretty good
parameters -d: duration in milliseconds
15 fps -> 66.66 ms 20 fps -> 50 ms 25 fps -> 40 ms 30 fps -> 33.33 ms 60 fps -> 16.66 ms ( calculation: 1000/60)
scale object according to reference object
add match size node
scale node img context
downscale filter: catmull (is sharper than gaussian) (gaussian is great too...)
Cogwheels/Zahnräder, control with ramp
add line node direction: 0 0 1 length: 10 points: 100 add attribute wrangle node (feed line node) @newy = fit(@ptnum, 0, @numpt-1, 0, 1); @P.y = ch("yscale")*chramp("myramp", @newy);
myramp parameters
(click on down arrow to maximize ramp window) add some points and for each point change: interpolation: Catmull-Rom Yscale parameter: 5 add circle node primitive type: polygon orientation: YZ Plane radius: 4 4 divisions: 5
change rotate x
rotate: 0.5*(180-(360/ch("divs"))) then select top line of circle delete it dissolve node: Delete Non-Selected check create curves when dissolving boundary add resample node check maximum segments segments: npoints("../line1")-1 add attribute expression node feed resample node and attribute wrangle node VEXpression: set(self.x, self.y + @opinput1_P.y, self.z) add copy and transform node Total number: ch("../circle1/divs") rotate x: 360/ch("../circle1/divs") add join node check wrap last to first
src
setup UV sample scene
download a model: http://threedscans.com/ (add reverse node) add transform node add polyreduce node percent to keep: 1%
setup UV viewport and visualizer
split screen space + 5 for UV viewport right click Visualization icon (bottom right of 3dviewport) click + -> scene -> color Color Type: Texture Distortion Texture Attribute: uv Ramp Range: Set Using: Center and Width enable Visualizer save desktop
src
UV flatten, creating seams
(setup UV sample scene) (setup UV viewport and visualizer) add attribute delete node vertex attributes: uv add uv flatten node flattening method: Angle based (ABF) (click into UV view window, press Enter) (crtl + b to maximize viewport) (shift + w to get wireframes) click Cut Seams icon create some cuts/edge loops along the edges of the object make sure the control checkers are uniform and have the same size: if they are too big, create smaller areas if they are too small, create more seams along the edges click Straighten Edge Loops and create a line (with 2 clicks) on UVs with should be straight but is not, Enter when done hit repack button if greyed out, uncheck enable Manual Layout save texture to file: click on uv flatten node -> right click -> save -> Texture UV to Image add UV transform node and change scale to rotate UVs, go to UV map, then S and select the ones then press R to rotate, this will add an edit node
src
UV flatten, UVs with preexisting or random seams
(setup UV sample scene) (setup UV viewport and visualizer) add autoUV node from sidefx labs shelve (gamedev) add uv flatten node flattening method: angle based check preserve seams (click into UV view window, press Enter)
or
flattening method: Spectral (SCP) check preserve seams check preserve island boundary shapes (this removes distortion by applying a uniform relax on the interior of each UV island!!) (click into UV view window, press Enter) add vertex split node attribute: UV add group node uncheck basegroup check include by edges check unshared edges group type: edges name it: seams_out (maybe add group transfer node or) add another UV flatten node flattening method: angle based uncheck preserve seams seams: final-seams-group now adjust seams in group nodes use shift-a click to select lines in between click repack button in last uvflatten node
src
install houdini in linux, ubuntu
download launcher from sidefx.com
sudo sh install_houdini_launcher.sh
To install Houdini, go to /opt/houdini/launcher/bin/ and run ./houdini_launcher
install game dev tools
shelves -> sidefx labs
redshift settings
redshift camera tag
check Enable Photographic Exposure film speed: 160 Saturation: 1.2 postfx: LUT C:\ProgramData\Redshift\Data\LUT\AdanmqLUTS and find Kodak-Portra-400.cube
alpha maps
(also add UVs to object/grid) add rs material builder and go inside add rs texture node, name it alpha set alpha texture here add rs material node and connect to final node feed rs texture node into opacity color
matte, ambient occlusion, shadow
v2
(works independant of object hight and radius adjustable!) add a grid node -> redshift OBJ tab -> Visibility check Primary Ray Visible uncheck Seconday Ray Visible (not for transp plastic!) uncheck Caste Shadows check Receives Shadows check Self-shadows check Cast AO (disable Matte tab!) create new rs material builder in mat context add rs material and connect to Surface preset: paper color: set to black backlighting color: set to Black add rs AO node connect out to opacity color of Material node settings: Samples: 56 Bright: set to Black Dark: set to White, Grey (controll transp.) Max Distance: 5 (control size here!) assign this material to grid node
v1
(Problem: if high object, AO will spread too much!) add a grid node geo node -> redshift tab -> matte tab Matte Enable check show background check Apply to Second Rays check Affected by matte lights check Shadow Enable check Receive Shadows From Mattes check Affect Alpha then place a new HDR in scene, name: shadow-hdr in Objects tab Light Enabled for: bg-grid Shadow enabled for: here-object in all other lights, select in Objects tab: Light Enabled for: here-object Shadow enabled for: here-object * ^/obj/grid1 (all except grid1)
display redshift material preview in viewport
add RS Material builder inside add a RS Material and TextureSampler connect them to surface right click on Vopnet -> Parameters and Channels -> Edit... add folder name it "See Tex" add toggle name it "Use diffuse" click Build-in Tags find Use Diffuse Map # add file image name it "diffuse map" click Build-in Tags find Texture # displacement possible too...
src
https://www.youtube.com/watch?v=i8v0iObThds
exclude object from light
on a light -> objects tab -> check Enable Light-Mesh Associations them select object to exclude/include * ^/obj/grid1 (all except grid1)
groupname in nodename
put this in Group Name:
`opname('.')`
then just rename node
pass point color
in MAT context, add RS Material Builder before, add RS Material and connect outputColor with Surface before RS Material add RS Color User Data node Attribute name: Cd connect out with diffuse color
displacement maps / height maps
(remember UVs and enough subdivisions!) obj level -> redshift tab -> tesselation enable tesselation enable displacement then go to shop context and create rs network (vopnet) (mat context gives error in ROP) add displacement node connect to displacement channel add rs noise node and connect to the new displacement node
or
add img or comp network and add noise there then add a texture node before displacement node use a texture from IMG/COMP context with: op:/img/img1/vopcop2gen1
normal maps or bump maps
go to shop context and create rs network (vopnet) add RS Material Node and connect to surface input add RS normal map or RS bump map node connect to bump input add normal texture here or link to IMG network: op:/img/comp1/noise_out for bump maps add a RS texture node before
bump maps
in MAT context, add RS Material Builder before, add RS Material and connect outputColor with Surface add RS BUMP MAP node add RS noise node (or RS Texture node) temporarely connect to surface of last node to see changes coordinates tab -> Overall scale: 400 play with scale to get lines, brushmarks combine 2 noise nodes with RS color composite node
create wood
in MAT context, add RS Material builder add RS Material node at beginning add RS texture node, plug into RS_material diffuse channel add RS normal map node, plug into bump channel of output node for bump, add another RS texture node and feed into roughness for previewing simply connect to surface of OUTNODE! add RS color correct nodes for adjusting EVERYTHING! goes in between rstexture nodes and rsmaterial nodes!!
texture with alpha, combining materials
add 2 rs material nodes, gold (font) and plastic (bg) add rs material blender node connect gold mat to BaseColor input connect plastic to layerColor1 then add ts texture node, set alpha texture here! connect it to blendColor1 in Materialblender node
or
add RS material node add 2 rs texture nodes in front add rs material blender node and connect them to get alpha, add RS color splitter after rstexturenode select OutA for the Alpha
create rosty metal
add rsmaterial builder node add 2 rsmaterial nodes then add rsmaterial blender node blend both with noise node
src
MIX training, shading with redshift
scene setups
add materials in MAT context MAT -> Material -> Reflections: Samples 256 to add redshift tab to camera, just select camera and click CamParams from shelf environment light = RSLightDome RSlight -> Light tab -> Samples: 256
render settings
ROPredshift node
IPR tab -> uncheck IPR progressiv rendering (to get same preview in viewport as rendering to disc) Redshift tab -> settings tab -> sampling options Max Samples: 128 (this removes DOF blur) Redshift tab -> Motion blur -> enable
install redshift for houdini in windows10
download and install redshift then open C:\Users\USERNAME\Documents\houdini17.5\houdini.env go to C:\ProgramData\Redshift\Plugins\Houdini then find right version add this:
HOUDINI_DSO_ERROR = 2
PATH = "C:\ProgramData\Redshift\bin;$PATH" HOUDINI_PATH = "C:\ProgramData\Redshift\Plugins\Houdini\17.5.360;&" [then connect to internet so license can be automatically installed] then open houdini -> top right click -> shelves -> redshift add box, click renderview/IPR to test
render multiple versions/takes
in ROP render node: Render Frame Range Only (Strict) ... add several ROP render nodes ... with different takes for lights after each, add batch node connect batch nodes with merge node (in redshift maybe uncheck Non-blocking Current Rendering)
NVIDIA Denoiser
Render -> Download NVIDIA OptiX Denoiser mantra node -> Images tab -> output tab pixel filter: NVIDIA OptiX Denoiser Rendering tab -> Sampling Noise Level: 0.1 Start Render and click white sphere icon Attention: this is NOT stable across frames, so it doesn't work for animation, each frame will denoise differently and create a flickering!!
set houdini TEMP path for cache, scratch volume
MacOS
/Users/USERNAME/Library/Preferences/houdini/17.5/houdini.env
HOUDINI_TEMP_DIR = '/SOME_TEMP_PATH_HERE/;&'
Windows 10 rightclick on ThisPC -> properties -> advanced system settings Environment variables
HOUDINI_TEMP_DIR E:\HOUDINI_TEMP_PATH
sculpt tool
add grid node add sculpt node shift + drag to INCREASE/DECREASE radius the use LMB und middle mouse button to sculpt add smooth node at the end
fluids
adjust boundaries of FLIP
AutoDopnetwork -> click on flipsolver then adjust box
falling fluid
add box click particle fluids tab -> FLIP fluid from object go into autodopNetwork add popwind node and add it to second input of flipsolver wind velocity: 0 2 0 amplitude: 1 add pop axis node and add it to second input of flipsolver speed tab orbit: 3 lift: 3 suction: 1 add merge node before the flipsolver to use wind AND axis tool
initial speed, flowing/pouring fluids
add box click particle fluids tab -> FLIP fluid from object go into autodopNetwork flipfluidobject -> check initialize velocity: 4 5 0
change initial shape
create box/torus usw autodopnetwork -> flipfluidobject -> SOP path
change bouding box size
DOPnetwork -> flipsolver -> volume motion tab -> box size
make bouding box fill up like container
DOPnetwork -> flipfluidobject -> check Closed Boundaries
emit fluid from object
add box select box (with black select arrow icon) particle fluids -> Emit particle fluid
RUN water over square or fill CUP object
add tube and extrude it for cup add sphere over the box, select it particle fluid tab -> Emit Particle Fluid then select collision object (=cup) Collisions tab -> surface collider DOPnetwork -> StaticObject Collisions tab -> RDB Solver tab -> Surface tab check Show Collision Radius Collision Radius: 0.005 DOPnetwork -> fluidObject check closed Boundaries Particle Separation: 0.05 Particle Radius Scale: 1
add wind
after flipsolver, add multisolver connect flipfluidObject to multisolver input1 connect popwind to multisolver input2
src
https://forums.odforce.net/topic/21976-basic-glass-fill/
fluid container
add FLIP tank object add popwind node inside AutoDopNetwork feed it into 2nd input of flipsolver Amplitude: 2 Swirl size: 2 add sphere, select it rigid body tab -> RBD object (this turns sphere into an dynamic object) collisions tab -> ground plane
float box in this fluid setup:
add box and select it container tab -> embed in fluid go into box geo network -> add pack node before dopimport (so points don't get distorted)
super fast fill of lake in landscape
landscape: add grid add sculpt node add smooth node make sure nothing is selected watch normal direction!!!!! also for surface level grid particle fluid shelf -> sculpted particle fluid then first select the water level plane, after that the landscape plane
riverbed flow
riverbed geo: add grid add sculpt node add smooth node add sphere, name it emitter, select it particle fluids tab -> emit particles just hit ENTER (outside of riverbed) select riverbed -> rigid body tab -> terrain object
thick viscosity fluid
(viscousity needs to be adjusted globally!) same initial setup as riverbed particle fluids tab -> make viscous then select fluid flipsolver -> viscosity tab -> viscosity scale: 10'000 then just move the emitter back and forth to create cream
toothpaste cutter
add groundplane (collisions tab) add cutter object collisions tab -> static add tube, select it particle fluids tab -> flip fluid from object particle fluids tab -> make viscous then select fluid tube in viewport
to visualize in viewport
flipfluidObject -> guides tab -> visualization enable surface
or
go to [generated] fluidObject and enable RENDER node at the end (this switch from DOP visualization data to mesh)
fine tuning
DOPnetwork -> flipfluidobject Particle separation: 0.03
turn emitter on/off
Source Volume -> Activation: $FF<190
emit particles from an object
add particles
add torus shelf -> particles -> Source Particle Emitter
add forces
uncheck gravity, to make the fly sideways select particles source node then click -> particles shelf -> wind popwindnode -> Amplitute: 1 (add noise) wind velocity: set direction here
adjust numbers of particles
go into DOP network -> source node -> birth tab birth rate: 5000 (particles every second) life expectancy: 2 (seconds) life variance: 1 (+/- 1 second variance)
instancing objects
add another geo object (platonic solid) type: soccerball pop source -> birth rate: 100 select platonic object in network view then in particles tab click instance geometry in source particles add instance node (now it should show up...) add unpack node to create actual geo
change DEL/backspace key on mac, hotkeys
edit -> hotkey editor Contest -> houdini -> panes -> network editor Action -> Add operator remove backspace Action -> Delete doubleclick, then press delete key (backspaces doesn't work)
src
https://www.sidefx.com/forum/topic/35311/?page=1#post-172943
create a spiral, helix
add curve node, vertical with 2 points add resample node uncheck max. length segments: 100 add point(old!) node values: sin($PT/$NPT * 360 * 5) $PT/$NPT cos($PT/$NPT * 360 * 5) then add another resample node check max segm Treat Polygon As: Interpolating Curves
src
curves (without Edit SOPs)
draw curve
add curves node rightclick on curve -> stop building curve (when done)
move points
just click on points and move them (don't use edit SOP)
add points
holding shift and clicking on curve (maybe first rightclick on curve -> stop building curve)
add new points at beginning or end
just shift click outside of endpoint/startpoint to add new piece
join curves
add 2 curves add merge node then in viewport editor add join node
or
add fillet curve to join 2 curves with a new segment
limit curve with flexible end/start points
add carve node use first U and second U to define segment
src
animation and keyframing
get realtime playback
bottom button -> global animation options -> real time playback
set keyframe
alt + LeftMouseButton and click into parameter field
remove animation/all keyframes from parameter
rightclick on parameter -> delete channel
adjust keyframes for (cam) switcher
add switch node below two cameras rightclick on switch parameter -> channels -> select in channel list select all points top bar -> constant or straight
move object along curve
add toy object add curve, select nurbs in curve type (top bar) draw curve and hit ENTER select object, then Animation shelf -> follow path (first select object, ENTER) then select path, ENTER
move/translate pivot point
add transform node right click on handle -> Pivot Mode
cache geometry and animation
obj level -> add file cache node -> write add another file cache node -> read then disconnect first node and put output flag on file cache read node then just work with temporary objects while keyframes are still intakt
or
crtl + click to lock last node, so no changes propagate
render out frames to exr
in out: file path: motion-cam.$F4.exr
compositing
add file node read sequence add contrast/HSV nodes for color corrections add color node for background add font node, overlay frame number $I is frame number layout tab -> set bright color connect them all with layer nodes add convert node 16 bit integer add ROP File Output node Output: $HIPNAME.$F4.tif
create video with ffmpeg
macOS:
ffmpeg -framerate 30 -pattern_type glob -i '*.tif' -start_number 1 -vframes 190 -c:v libx264 -r 30 -pix_fmt yuv420p _out.mp4
ffmpeg -framerate 25 -pattern_type glob -i '*.tif' -c:v libx264 -r 25 -pix_fmt yuv420p -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" _out.mp4
parameters:
-start_number 1 -vframes 190 (define frame range 1-190) -pix_fmt yuv420p (better quality/more colour than RGB) -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" (divisible error) windows 10: just open CMD then type:
E:
cd /YOUR/PATH/HERE (just drag it into terminal window)
ffmpeg -framerate 25 -start_number 3001 -i %04d.tif -c:v libx264 -r 25 -pix_fmt yuv420p _out.mp4
(assuming animation starts with 3001.tif, 3002.tif etc, glob not supported)
src
https://www.youtube.com/watch?v=MFg3lB7PCRM https://www.youtube.com/watch?v=v9YyNeF2RxM https://www.youtube.com/watch?v=_KHwKVB0vOc
motion camera, tracking on path
add camera node press enter in viewport so the handles show up click small arrow icon on top of viewport -> split then set one on cam1 in viewport, right click on cam handles for more options check persistent, to make handles always visible check focus handle to get Depth of Field distance
look at object
in camera: constraints field -> look at constraint select in viewport the object, ENTER next select the null (also in the viewport), ENTER deselect, press ENTER a third time (maybe define UP) now just move null object
upvector
use this to bank/rotate camera to the side set it up inside camera constraint, similar to lookat
depth of field
in perspective view, rotate to see the cam click on camera node, press ENTER now there should be a line towards the object the first part is the focus, control here! set very low f/stop: 0.1 add null node and name it focusnode in focus field -> add this: vlength(vtorigin(".","../focusnode")) in out channel put down mantra node mantra1 -> rendering tab -> enable depth of field
src
https://vimeo.com/116178120 https://www.youtube.com/watch?v=9DTHE7QdORQ https://www.youtube.com/watch?v=MFg3lB7PCRM https://forums.odforce.net/topic/31259-controlling-focus-distance/
better texture quality
D -> texture tab -> limit resolution -> 4096 x 4096 view -> clipping -> neither clip, then increate values!
create volumetric
add geo/file add normal node add UV texture node add _cloud node (maybe add cloud noise node)
prepare file for 3d printing
import geo... add convert geometry node From Type: All types Convert to: Points Connectivity: Triangles add ROP geometry output node output file: $HIP/$HIPNAME.stl
check 3D model with cura
glow with emission of point color
add a color node and set a color add point wrangle node v@emitcolor = @Cd; add material node go to material network and find material: set Emission Illuminates Objects
src
https://forums.odforce.net/topic/32545-use-point-colour-for-emission/
stick object on a bended object (wriststrap)
choose a point, create group add attribute wrangler VEX: @up = set(0,0,1); add copy stamp and feed them
create mesh/grid/wriststrap
add grid node add group range node for alternation pattern group type: primitives range filter: 1 of 2 add blast node to delete rest (delete group) add attribute wrangle node (create point in center of primitives, set normal, remove rest) Group Type: Guess from group Run Over: primitives vex: //addpoint(0,@P); int newpoint = addpoint(0,@P); setpointattrib(0, “N”, newpoint, @N); @up = set(0,0,1); removeprim(0,@primnum,1); add copy stamp node and feed geometry and points
src
https://www.youtube.com/watch?time_continue=118&v=iyZ8dIqJ47U
importing vector from illustrator
importing into houdini
export SVG from sketch open SVG in illustrator save as illustrator 8 ai in houdini -> add file node add transform node -> click move centroid to origin add color node (if holes are filled, add hole node) enable point display add convert node U: 1 V: 1 (if it's just a illustrator line, add ends node)
splitting into groups
add polydoctor node in topology tab -> check create Manifold Number Attribute add partition node Rule: manifoldnumber_$manifoldnumber add assemble node group: manifoldnumber_ add lots of color nodes and assign them to the groups...
src
http://www.entagma.com/isocontours-importing-exporting-vectors-tofrom-houdini/ https://www.sidefx.com/forum/topic/57069/?page=1#post-255752
color variations in IMG/COP network
in IMG context create HSV node (before ROP output node) right click on hueshift channel -> copy paramter adjust ROP output node file name and include $WEDGENUM in out context, create wedge node output driver: /img/comp/rop_comp_wedges (select the ROP render node) add wedge parameter: name: farbe channel: ../../img/comp/hsv1/hueshift (paste relative ref. from hueshift channel here) range: 0 324 steps: 10 (creates 10 versions!) then click Render Wedges
random variations of mesh
add simple mesh
add circle node type: polygon divisions: 24 open arc arc angles 0 180 add copy and transform node number 40 rotate: 1.5 1.1 2 scale: 1.006 add skin node add subdivide depth 2 add normal node add transform node add copy to points feed above tree into it second input: add circle type: polygon orientation: zx divisions: 3 add out node
create 1000 variations
add top network add wedge node wedge count: 2 (subdivisions of start/end) click + atttribute name: rotx Start/End: -15 15 go into mesh node -> copy and transform node enter @rotx into x rotate field add another wedge node wedge count: 2 (subdivisions of start/end) click + atttribute name: roty Start/End: -15 15 go into mesh node -> copy and transform node enter @roty into y rotate field ... same for z .... and shear values too! right click on wedge node -> dirty and cook selected node (shift-v) now click on points to see permutations :D add ROP geometry output node SOP path: select the out node of the mesh output file: $HIP/geo/$HIPNAME.$OS.`@wedgeindex`.bgeo.sc (middle mouse click on outputfile and wedge points to see values!) (create geo folder, where the files should be saved!) right click -> dirty and cook selected node (shift -v)
cache them
copy parameter from ROP geometry output in mesh network -> add file node under out node (don't connect) paste relative reference
render them
add ROP mantra node after ROP geometry outout node in TOP network output pictures: $HIP/render/$HIPNAME.$OS.`@wedgeindex`.exr right click on mantra node -> shift-v then so get 1000, just change number 2 to 10 in wedge
create a montage/mosaic
first set up imagemagick (mac)
in terminal
(remove old installation and avoid paths errors ... dyld Library not loaded. Reason: image not found) brew install imagemagick which convert (to find new path)
change env file
vim ~/Library/Preferences/houdini/17.5/houdini.env
PDG_IMAGEMAGICK="/usr/local/bin/magick" PDG_FFMPEG="/usr/local/bin/ffmpeg"
create montage
add TOP network go inside add file pattern node (this loads all files in a DIR) glob pattern: $HIP/render/* shift-v (cook node) add image magick node operation: convert check width, height, 200 filename: $HIP/render/$HIPNAME/{inputfilename}.exr common -> check remove background black part of command add wait for all node (this collects all images together) add another image magick node operation: montage common -> enter this: /usr/local/bin/montage {inputimages} -mode concatenate {outputimage} (otherwise error no images found for operation -mode ) /usr/local/bin/montage {inputimages} -mode concatenate -tile 3 {outputimage} to get 3 columns
src
https://vimeo.com/323268918 https://vimeo.com/323270214 https://www.imagemagick.org/discourse-server/viewtopic.php?t=31386
wireframe render
(import fbx) add camera add openGL render node in out shading mode: wireframe ghost
wine bg/hdr setup
remove hdr bg shine through bottle
(this hides HDR with a plane, but keeps alpha mask of bottle) add new geo node add bg plane with white principled shader mat render tab (from geo node) render visibility: -primary add large bg light
wine material
add principled shader IOR: 1.333 transparency settings transparency: 1 transp. color: 1 1 0.825 surface prio: 2 opacity settings scale: 0.991 (if settings other transparency values, there will be bright color artifacts in center)
enable render settings, nested dielectrics
(intersection glass with water, for bottle) make stuff intersect enable nested dielectrics in render node mantra node -> rendering tab -> shading -> check enable Absorbtion and Nested Dielectrics set priority parameter in texture: principled shader -> surface tab -> transparency enter surface priority
src
help: glass water
close polygon hole
add poly cap node (use group to define edge)
Textures mit alpha
textures tab -> base color: select tex for base color tint intensity: 1 (= gamma) opacity: select alpha tex here tint intensity: 1
UV mapping
add UV texture node or autoUV (gamedev) node (space + 5, to go to UV window) turn on display flag texture type: cylindrical check fix boundary seam add UV layout node add UV transform node fix rotation here (to flip text just change: scale: -1 in UV texture node) add UV quickshade node (for preview)
set up UV viewport
desktop -> save current desktop as -> UV mapping viewport -> 2 views side by side select 1 perspective, 1 UVs D -> effects -> lighting -> high quali check Ambient Occlusion level: 4 check reflections texture tab -> set display/viewport resolution here
remove old UVs
(if baked into object/mesh) add attribute delete node vertex attr. -> uvs
adding UVs the fast way
(= very fast/cheap way to add UVs, use for bg/low res objects) add UV unwrap node press ENTER to see pyramid/square for projection sides or use UV project node click initialize button
adding UVs the High quality way
UV texture node
add UV texture node ... chose texture type mode ... uniform spline for complex objects check FIX boundary seams
changing texture size/rotation
UV texture node -> Scale: 3 3 3
creating seams
in edge mode select seams add group node to store the selection
cutting with pelt node
(cut it with custom seams) add seams and groups add pelt node from texture shelf
or cutting with flattening node
add UV flatten node select seams
UV layout node
organizing UV layout with UV layout node
editing of UVs
add UV edit node press S -> Change Select Dropdown to UV connected geo then select in map and rotate/transform
compositing
view -> composite view img network
nodes
add file node start with premultiply (to clean seams) ... color nodes .... add contrast node another premultiply node after color corrections add convert node 16bit add ROP_comp node at the end (for rendering img) ev. following nodes: comp nodes composite (like merge down) (ev add over node to combine with another image tree = merge node) inkludes over nodes, multiply usw convert node (to get into rgb colorspace) brightness contrast noise font color (for solid bg) layer transform
src
http://www.sidefx.com/docs/houdini/nodes/cop2/index.html https://lesterbanks.com/2012/06/introduction-to-houdinis-built-in-compositor/ https://lesterbanks.com/2012/06/introduction-to-houdinis-built-in-compositor/ https://www.sidefx.com/tutorials/category/compositing/
keyframes and animation
basic keyframing
change value, then LEFT ALT + click into field to set keyframe select node with animation in it, viewport -> animation editor
add some new animation data
go to other network -> CH viewport -> motionFX view add CHOP network node go inside, add wave node channel tab: use start/end, set end keyframes here name: r[xyz] waveform tab: period: 480 (or total frames) phase: $C*.33 add math node under wave node range: -1, 1 0, 480 then go to object, transform node -> rotation field right click -> expression -> edit expression chop("../SHOP/_out/rx") (network, node, channelname) chop("../../../ch/ch1/_out/rx") in CH network -> add noise node and set display flag name: r[xyz] (crates 3 channels) name channel -> seed: $C (to randomize each channel) underneath add math node -> multi-add tab multiply: 2 add limit node (to clip top/bottom) add filter node (to smooth it out again) (for many object add a pack node, makes it much faster....)
src
essential training 2017 (chop networks)
VOPs
(distort geo) add point VOP node go inside node add curl noise node wire p into pos add add node wire noise output into add input2 wire p into add input1 wire sum into last p noise -> reduce distance to surface and amplitude
custom shaders
in mat network, add fresnel node (next to pricicled shader mat) then connect it to emit color channel of principled shader
to get dots/stuff
use this nodes: fresnel ramps cellnoise splatter
rough plastic with dark parts
add mix layer node, feed in plastic and concrete shader change both colours to turquise
switching geo
add 3 trees of geo add switch node at the end select all nodes (exept first input node) -> add to subnet (shift-c) add transform node after switch node: $CEZ or $CEX to center rightclick on subnet -> parameters and channels -> edit parameter interface (click on subnet -> create digital asset) (save it on $JOB/hda usw.) parameters -> drag extrude thickness here, set range find ordered menu in left window label: bevel menu tab: 0 large 1 small 2 none channels tab: drag select input (from switch node) here
switch color VEX
switch node only has 11 inputs, so just use VEX: add attribute wrangle node // initialize variables R,G,B as float // divide by 255 to get houdini RGB values // example: // @Cd = set( 0.219608,0.65098,0.188235 ) ; // @Cd = set( (float) 56 / 255, (float) 166 / 255, (float) 48 / 255 ) if( ch("../newparameter2")=="001" ) { f@R = 228 ; f@G = 140 ; f@B = 197 ; @Cd = set( (float) @R / 255, (float) @G / 255, (float) @B / 255 ) ; } else if( ch("../newparameter2")=="002" ) { f@R = 56 ; f@G = 166 ; f@B = 48 ; @Cd = set( (float) @R / 255, (float) @G / 255, (float) @B / 255 ) ; }
material setups
play with roughness, to make it more shiny displacer map mat -> add fresnel node in first out create ramp node, define gradient here out from ramp -> in from principled shader surface color
improve textures in viewport
press D -> texture -> set resolution here
convert hipnc to hiplc
(non-commercial = apprentice to hiplc = indie) first sign in with orbolt acc, then: https://www.orbolt.com/upgrade-houdini-files
alembic export
export
add ROB alembic Output node then click Render to Disk button then just open it in C4d
import
add alembic node, select file
FBX export
add fbx output node
new project settings
set up recent project (if red render)
file -> set project -> select HoudiniProject
Usage with materials/hdrs usw
first set working project file -> set project -> select HoudiniProject this sets the $JOB variable to HOudiniProject when selecting materials, just click $JOB -> tex -> select here
check here
render -> preflight (to go up $JOB/../pic/mandril.pic)
setup new project
file -> new project uncheck simulation alembic flipbooks scripts composites desktops (then when opening files/assets click on $JOB to see current stuff) then just use $JOB variable for ALL things for example in lights: $JOB/tex/bathroom_4k.hdr
problem: red render
just point project to current: file -> set project -> select HoudiniProject
instances
add pack node it's packing geo, making reuse super fast but no more single points can be edited
edge loop
in perspective view (with a cube) -> tab -> edge loop
polysplit
select poly -> polysplit -> click -> ENTER
houdini dropship modeling course
hda usage
file -> import -> houdini digital asset material palette (tab) -> Utility -> drag Constant doubleclick on it, duplicate it 3 times name them: front, side, top click -> surface -> color map -> select ref img here
setting up the ortho_grids
add geo node, name it ortho-grid delete file node add grid node set rows 2 and columns 2 add uv project node initialize tab -> initialize (verify by adding temporarly quick shade node) | -----------------|-------------- | | transform node transform node x direction y direction | | add merge node, merge all 3 together add group node after sideview transform node group name: $OS, then rename node: sideview (this just sets the groupname to same as node name) toggle group icon (below lamp on right side of viewport) to verify add material node after merge node material palette (tab in node window) -> scroll to Utility -> drag Constant rename it sideviewMat material node -> Material: mat/sideview_mat material palette -> sideview_mat -> surface -> color map -> select IMG add transform node under each group to rotate it material palette, duplicate sideview_mat to topview and frontviewmat add another material node select top group adjust other views and materials, add transform nodes to rotate them
adjusting opacity of ortho grids
just after the merge, add a attribute wrangle node in code editor write: @Alpha = 0.5; (help-> type geometry attributes)
or
@Alpha = chf("Opacity"); then click slidericon next to it to active slider then slide a value :D
creating a HDA (Digital Asset) out of it
in nodes -> go to top level -> right click on ortho node -> create Digital Asset detroy spare paramters (then Operator type properties window will pop up) /files/3d_presets/hda go to parameters tab -> select all -> check invisible right side, click invisible to hide other stuff go back into asset -> find material path alt+middlemouse click auf Material (it will be then in UI) alt + middlemouse click auf Opacity (in attribute wrangle node)
update:
to make it work with front/side/top sliders just create the UI manually and reference the values -> copy parameters/paste ref usw to save it, right click -> save node type . -> match current definition to use the HDA, right click in node window -> Digital Assets -> ortho
blocking out the body part
add box node, space + g to zoom in hit ENTER key to get arrows/gizmo space + 4 to get into side view press S to get components menu 1 points (=vertices) 2 edges 3 faces (=primitives0 select a face, click C -> navigate to polyextrude
or
select a face, tab -> polyextrude (probably fastest/easiest...)
bevel with increaing size, controlled with gradient
select edges -> polybevel add attribute wrangle node vex code: vector min = getbbox_min(0); vector max = getbbox_max(0); // here the color to visualize it //@Cd = fit(@P.z, min.z, max.z, 0, 1); // putting it into a variable bevelsize //f@bevelsize = fit(@P.z, min.z, max.z, 0, 1); // create gradient options window to make changes, // click slider icon afterwards to update option!! //f@bevelsize = chramp("bevelsize",fit(@P.z, min.z, max.z, 0, 1)); polybevel node -> Offsetting -> point scale -> enter: bevelsize
subdividing mesh
add subdivide node, depth: 2 add edge loops in middle
mirroring
add clip node direction: 1 0 0 add mirror node add a fuse node (to make sure center points are merged together)
knifing tube and bevel
add tube node add knife node HIT ENTER then knife circles show up Direction: 1 0 0
select the cut procedurally
add group node under knife node group type: edges check Enable Keep in Bounding Regions (go to knife -> distance, copy parameter) Keep in Bounding Regions -> Center: centroid("../tube1", D_X) + ch("../knife1/dist") centroid("../tube1", D_Y) centroid("../tube1", D_Z) (so if there are changes to knife/height/segments!!) Keep in Bounding Regions -> Size: 1 1ch("../tube1/radscale") 1ch("../tube1/radscale") (relative ref from tube radius, if there are changes to radius!!) rename group: knife-edges (rename inside!) add polybevel node under group node select knife-edges group output groups: check edge faces add polyextrude node under bevel node select bevelprims group now extrude!!
hide/mask part of geometry
add a clip node
create boolean
add curve node draw cutout shape, click Close add polyextrude node to create large volume add boolean node
add procedural foot asset
add line node (move points, edit node gets created) add carve node First U: 0.5 (this create 2 segments procedurally!) check Keep outside add a circle node type: polygon then add a sweep node add skin node afterwards
dynamically move object on points
add group range to define start/end point add copytopoints node to get objects to appear there :D
adding wiring
in sideview add a curve node (press ENTER) add resample node (display points in viewport) (display normals in viewport) uncheck maximum length check maximum segments treat polygon as: subdivision curves add polyframe node (to fix normals) entity: points style: two edges uncheck normal name Tangent Name: N uncheck Bitangent uncheck Make Frame Orthogonal add circle node type: polygon add sweep node check angle fix (so it keeps its volume) output tab -> output: skin with auto closere add normal node (or just add it before last big merge node!)
to test UVs
add uvflatten node (under sweep) flattening constraints -> click white arrow, press ENTER then double click in viewport on a line (=edgeloop), to create a seam add UV quickshade node
add cuts with boolean
add box node (will be used as cutter) add boolean node operation: shatter Pieces of A check Output Edge Groups: A-B Seams add polybevel node select A-B Seams group then just merge this cube with other cubes for the cuts
hypernurbs weighting
add group node with selected edges (which need to stay sharp) add crease node and select group add subdivide and depth 3
smoothing und VDB
use instead of booleans, when geo too complex....
basic vdb
add vdbfrompolygons node under geo voxel size: 0.02 add vdbsmooth SDF node to get nicer surfaces (sdf is smoother than normal one...) at the end, add convertvdb (polygons) node convert to: polygons
super cool vdb
add subdivide node first then add vdbfrompolygons node voxel size: 0.01 add vdbsmoothSDF node to get nicer surfaces (sdf is smoother than normal one...) Operation: Gaussian FilterVoxelRadius: 1 Iterations: 10 add convertvdb (polygons) node convert to: polygons adaptivity: 0.005 (reduces polycount) check: compute vertex normals add normal node cusp angle: 20 weighting: each vertex equally add smooth node strength: 10 filter: 2
cache VDB
add primitive node under convertvdb add file cache node -> file mode: write then write out file (remove $OS $F usw.) add another file cache node -> file mode: read then just disable VDB nodes (and all others above)
cockpit cutouts
add curve node, close it add polybevel node group type points click white arrow (next to group) select the corner points (which should not be smoothed!), ENTER (points numbers should show up in group field: 0-1, 3 usw) shape: round set offset to something add resample node check resample by polygon edge uncheck maximum segment length check maximum segments Treat polygon as: Subdivision Curves add polyextrude node add boolean node
offset the original shape
add peak node (= shift normals) (to move the cockpit glass inwards)
try smoothing
in boolean -> output edge groupe -> check AB seams under the boolean node add polybevel node, select the group here uncheck allow vertex split add crease node select edge selection here (made in polybevel..) add subdivide node add vdb from polygons node 0.005 (it's rasterizing... too slow...) add vdb smooth node add convert vdb node to convert it back to polygons convert to: polygons adaptivity: .01
skylight
add skylight node enable high res light (2nd plus bulb icon)
add UVs
manual process with defining seams
select the original body shape (without bevels, cuts usw) add uvflatten node (under sweep) flattening constraints -> click white arrow, press ENTER then double click in viewport on a line (=edgeloop), to create a seam use shift + a to select long lines and distances between add UV quickshade node to test and see (when done remove quickshade node again) ... do this for all the elements and parts ... add a UV Layout node (at end of all nodes) check scale Islands to Match their surface areas search resolution: set texture size here!
automatic uvs
add UV unwrap node (on all last nodes..) add UV layout node (at the end one time, after normals node) check scale islands to match their surface areas (change iterations/Planes to pack it even better!)
src
https://www.udemy.com/vehicle-modeling-in-houdini-16-scifi-dropship/
add notes/labeling node networks
just rename last node (sticky nodes have bug when scrolling)
src
asteroid with sphere and mountain
add sphere node add mountain node
rembrandt low poly
add grid node row: ch("sizey")*100 (so it always has squares!) columns: ch("sizex")*100 add attribute from map node image settings tab -> check invert V coord texture map: select image (rightclick on light -> disable specular) (shading -> flat shading) add scatter node (press d -> geometry -> increase point size) add triangulate node add attribute promote node Original Name: Cd Original Class: Point New Class: Primitive copy grid and attribfrommap nodes grid2: copy relative width/height values from grid1 add add node check Delete geometry but keep the points add merge node merge scatter1 and add1 scatter node: check density attribute: Cd uncheck Relax iterations force total count: 409 (PLAY WITH THIS VALUE!!!!!) add spray paint node before scatter node disable scatter node select then handle (red/green arrows left edge menu) then paint!
src
polybridge
add 2 objects, connect them with a merge node select merge node, then select edges or faces of both objects add polybridge node maybe check reverse on/off to correct
background
d -> background tab -> grey or dark
store geo within file
on file node -> import geometry OBJ filenode -> crtl + click on LOCK (second/orange from left) the obj gets included in file
src
creating a new material
managers -> add material network node go into node -> shaders -> principled shader add material node after the box node path: (print icon) -> Matnet -> principledshader
to shade MAT inside AND outside
(for stuff inside a box setups usw) material -> surface tab -> check shade both sides as front
basic lights
finding lights angles
in viewport -> click No Cam icon -> select the light here -> click lock now we are viewing through the light in parameters -> light tab -> enable/disable
super fast GI setup
addd sky light skylight node -> sun tab -> change rotation
model a glass/goldring
(model inner AND out wall!) add curve node, close it add polybevel node group type points click white arrow (next to group) select the corner points (which should not be smoothed!), ENTER (points numbers should show up in group field: 0-1, 3 usw) shape: round set offset to something add resample node check resample by polygon edge uncheck maximum segment length check maximum segments Treat polygon as: Subdivision Curves add revolve node divisions: 24 add subdiv node depth 2
add glass and gold material
grab principal shader, there is a preset in there!! find the wheel icon on top!! same for gold
add lights
add envlight set HDR here add area light type grid intensity: 2 area light options tab area size: 3 3 add caustic light light mask: select area light here photon count: 500 000 filter samples 200
rendersettings for glass/gold
(maybe render without caustics light to save rendertime)
low settings
sampling tab min samples: 1 max samples: 15 noise level: 0.001 limits tab reflect limit: 4 refract limit: 4 diffuse limit: 1 sss limit: 1 in caustics light: photon count: 200000 filter samples: 100
high settings
sampling tab min samples: 15 max samples: 21 noise level: 0.001 limits tab reflect limit: 9 refract limit: 6 diffuse limit: 2 sss limit: 1 in caustics light: photon count: 500000 filter samples: 300
houdini basic lighting and rendering
add camera
add sample scene with some primitives add camera node (top level of geo) then in view, change to camera click lock icon (to stay in view and move it) (set resolution here in camera, not render settings)
area lights
shadows quality/sharpness -> area light options tab: uncheck Normalize Light Intensity to Area then adjust area size check edge falloff set some width and rolloff (this simulates nice studio lights seen in reflections)
geometry lights
add light node type: geometry (check render light geometry) area light options -> select geometry object check transform into this object add a new material (principal) apply it to torus (or the object...) add a UV texture node to the torus, before the mat then in the geolight -> area light options -> material: add the mat here too go into the material -> textures tab -> check emission dir: $HFS/houdini/pic/Mandril.pic surface tab -> emission color: 1 1 1 emission intensity: adjust here!! base color: 0.02
adding HDR / environment light
add environment light (from shelf) Environment Map: set HDR here check/uncheck render light geometry to show HDR use for HDR is just a giant sphere wrapped around the scene
adding a portal light
add env light -> render options -> check portal add a grid and select the gridgeo here
add a backdrop + studio lights
add box node delete all faces, except bottom and back add polybevel node for the edge to make it round add reverse node to get normals
add area light
check render light geometry uncheck normalize light intensity to area check self shadow texture map: /files/Soft Box A.exr sampling count: 2 (removes noisy shadows) then add one GI light (speeds up render!!) photon count: 200000 filter samples: 100
hollywood portrait lighting
place background image in nodes window as reference (node view port -> tools) shift + i add area light uncheck normalize light intentity to area add null object topshelf: constraints tab -> look at constraint then select in viewport the area light, ENTER next select the null (also in the viewport), ENTER deselect, press ENTER a third time (no up needed) now just move null object to get that look with sharp shadows: light type: disk area light options -> area size 0.02 0.02 enable spotlight, to get more control and place parts in the dark
light through fog
add box and boolean for window add another big bounding box around the scene add iso offset node mat -> shader -> pyro -> choose smoke preset here density: scale 0.15 in scene -> create material node -> apply material
add point light
control sharpness with cone delta
shadows exclude object
in mask field: * ^/obj/grid1 (all except grid1)
focus and f/stop
camera -> view tab -> focal length sampling tab -> f-Stop ACHTUNG: aperture = sensor size!! not f/stop set resolution too, not in render settings
motion blur
camera -> view tab -> shutter time
depth of field
in perspective view, rotate to see the cam click on camera node, press ENTER now there should be a blue line towards the object the first part is the focus, control here! also set very low f/stop: 0.1 in out channel put down mantra node mantra1 -> rendering tab -> enable depth of field
render snapshots
just click on photo icon below render to create 1
Render settings
in out channel put down mantra node mantra1 -> rendering tab engine: Physically based rendering sampling tab -> min samples 1 max samples 24 noise level: 0.001 limits tab -> diffuse limit: 4 (reduce for testing!!)
Global Illumination
(don't use for animation, flickering!) set diffuse=1, place a GI light: add a GI light from shelf this will make area lights emitt photons! photon count: 500000 filter: 300
disable grainy preview renderings
click green/yellow little icon on top this makes sure only sharp rendered parts are shown
render region
shift drag in render (to enable) (shift drag outside the image to disable)
see reflections/diffuse channels separated
mantra -> images -> extra images planes check combined lighting (per component) check direct lighting (per component)
alpha channel
mantra -> images -> extra images planes add extra image plane VEX variable Af
custom shadow catcher
add mainobject add grid/bg apply shadowmatte (from utilities) add 2 mantra render nodes (name it main, AO) in first node, OBJECTS TAB -> exclude GRID (or bg object) (this renders the main object with alpha) in second node, OBJECtS TAB -> force phantom -> select MAINOBJECT here (this renders only the gridobject/bg with the shadow of main object to avoid the cropped renders: rightclick on mantra node -> parameters and channels -> edit parameter interface -> (left) render properties tab find exr data window drag this into META tab on right side now it should be in META settings in the mantra node uncheck it to get full width renders
src
http://yoong-cut-and.blogspot.com/2015/12/houdini-rop-not-crop-exr.html
v2
use a plane (grid) add white bg materials place it underneath object then go one node up (to geo node) check matte shading (this will hide it in render!) use this to toggle the shadow plane and object!!!! super fast easy shadow!!!!!!!!!!!!!! force phantom: add ring/geo here, it excludes it and just renders shadow!!
shadow catcher
mantra -> objects -> force/matte select "kreisding" objects here (it will be excluded from rendering then, so shadow is visible) materials -> utilities -> shadow matte apply this to the ground grid then set grey BG in render view (to see shadow!!!)
src
http://www.helloluxx.com http://www.makehumancommunity.org
render queue
out -> after mantra node add hqrender node select node and click submit job open browser: http://localhost:5000/
src
http://www.madguru.com/learn/working-with-houdini-hqueue-windows
exclude objects in render (but still have it's shadows)
in render settings -> objects -> forced matte -> select here!
change render background
click on long vertical bar on right side of render view this opens up -> click EYE icon for options shortcut D also toggle transparency shift cmd d
basic rendering settings
change right dropdown to out render -> add mantra node select mantra1 node images tab (for srgb PNG) output picture: $HIP/$HIPNAME.$OS.$F4.png output device: infer from filename images tab (for multipasses) output picture: ip (so it opens ins viewer) output device: Open EXR extra images planes tab: check direct lighting check indirect lighting (will output multichannel render) Renderings tab -> Engine: Physically based rendering Pixel Samples: 3 3 is low, better 6 6 (fields must always be same! adjust noise level Limits tab -> Reflect: reduce to 3 (to make it faster...) Refract: reduce to 3 Click Render to Disk or Render to MPlay (open new tab: Render Scheduler to see list mit progress, if rendering to disk) (to view passes from EXR, Render -> Mplay -> load from disk) then export TIFF, 32bit in PS convert 32bis to 16bit, method Exposure and Gamma
export obj
last node (maybe create NULL node) -> right click save -> export as IGES/OBJ/DXF usw
sphere distributed on a grid
add a sphere in a geo node make it smaller add grid and click on points tool add copytopoints node feed sphere and grid check stamp inputs variable: scale Value: rand($PT) turn on numbers (next to point display) add transform node under the sphere uniform scale: stamp("../copy1", scale, 1) (copy1 node is name of copy stamp node) add sort node under grid node point sort: random then play with seed
give them each a different colour
add ADD_node (after grid node) check Delete Geometry but keep the points add points node (old!) use Add Color, right click on "Color" -> delete the channel in the color fields: rand($PT) rand($PT5) rand($PT2) to get b/w greyscale just use: rand($PT) rand($PT) rand($PT) click on copy node -> attribute tab -> check Use template points attributes
add variety with mountain node
add mountain node in roughness channel write: stamp("../copy2", fit(newroughvar,1,1000,0.01,0.99),1) (copy2 is name of copy stamp node, fit is range mapper, to map numbers 1-1000 to 0-1)
to get 1000 new shapes for the spheres
(it's slow, better use only 1 shape and rotate it) in copy stamp: newroughvar fit($PT,1,1000,0,1) in mountain node: stamp("../objects",newroughvar,10)
to rotate shapes for the spheres
(it's slow, better use only 1 shape and rotate it) in copy stamp: rot1 fit((rand($PT)),0,1,1,360) rot2 fit((rand($PT)*0.1),0,1,1,360) rot3 fit((rand($PT)*0.01),0,1,1,360) in transform node: stamp("../copy2",rot1,1) stamp("../copy2",rot2,1) stamp("../copy2",rot3,1)
hide the popup node stuff
view -> display options -> never show node ring
extrude operation
polygon tab edge loop -> make a cut then S for select, 4 for faces and select them polyextrude tool bevel tool
center axis
transform node -> pivot transform Pivot translate: $CEX $CEY $CEZ rightclick -> click on wheel icon -> save as preset!
switch axis/handle between world/object mode
right click on handle -> align handle -> world/component or just press M to toggle between the modes
create digital assets
edit asset
type properties
save asset
save node type match current definition, locks it again and propagates
fix shading issues (like repair phong!)
add normal node weighting method: by face area
extrude and bevel asset
add geo node (remove file node) space 4 to go into right view enable snapping to grid select curve tool and draw shape tool options icon (top of viewport): create in context add polyextrude node check output back (to close the hole) add polybevel check ignore flat edges turn up angle threshold (ca. 40) offset: fiexed distance make offset 0.30 shape: chamfer copy the polybevel node make offset 0.15 add switchnode to center it, add transform node Translate: -$CEX then select all nodes (not curve) -> put into subnetwork (yellow little icon) name it: chunk right click -> create digital asset input/output tab: write "curve" or something parameters tab: drag distance field (from extrude) into Parameters window Label field: Thickness adjust minimum range to 0.001 create parameter, find Ordered Menu, move it over write "bevel type" for label menu tab -> 0 Large 1 Small 2 None channel tab -> find Drop parameters field and drag "Select input" field from switch node here click Apply (field should become green) now it exists in TAB -> digital assets!!
bool and bevel asset
add bool node add box make a 'trapez' with top edges then feed box and other get into the bool output edge groups -> check A-B seams in bool tool add bevel tool press enter to see edges, that will be bevelled group: ABSEAMS check ignore flat edges add second bevel and set intersect add transform node merge bevel + transform node to package it, hold down y and cut the lines to first squares add 2 NULL nodes, original shape and cutting shape remove merge node and transform node select nodes and click yellow create subnet icon create links for input (2) add 2 output nodes on bottom, link both bools to it in second output node, change output index to 1 (in parameters) go one up, right click -> click create digital asset input/output tab: input1: original shape input2: cutting shape output1: substraction output2: intersection then add transform node and merge node link up bool with merge and same bool with transform, feed transform to merge
cut lines asset
space 4 -> side view snap to grid draw line add transform node move curve out add mirror node add skin node (like a loft nurbs) in mirror node change reverse normals no add boolean set B: Surface Operation: Shatter check output edge groups: ABSEAMS feed skin node and orig geo add bevel
simple UVs
add cylinder go into cylinder with i add UV texture node or autoUV node (space + 5, to go to UV window) turn on display flag texture type: cylindrical check fix boundary seam add UV quickshade node (for preview) add UV transform node after UV texture node then fix distortion here (to flip text just change: scale: -1 in UV texture node)
PROBLEM: camera upside down inverted in render view
just press H, in render view also try in other views if it doesn't work... or just reset factory settings of camera! (or create new viewport)