Hi everybody,
I'm messing around with deep data to see if I can produce a point cloud
of an object where it intersects the ground plane.
In my test setup, I offset the ground plane a little bit to be closer to
camera, then hold out the cylinder with it (leaving only the bits above
the offset ground). I then hold out the original cylinder with the
previous result to only get the bits underneath the offset ground.
Lastly I hold out the result with a second version of the ground plane
which is offset in the opposite direction, effectively sandwiching the
cylinder in a user defined thickness of the ground.
The problem I'm currently seeing is that the last hold out still lets
deep samples of the cylinder through even though it should be fully
covered by the ground. I have sent a support mail for this (not sure if
it's me or Nuke).
Aaaaanyway, I'm wondering if people have done something similar and
found a more elegant solution for this?
I'd also be happy to get an intersection map for the ground plane.
The general idea is to spawn particles from where one object intersects
another, be it from a point cloud or a textured ground.
Any thoughts?
Cheers,
frank
#!
/Applications/Nuke7.0v1b110/NukeX7.0v1b110.app/../Nuke7.0v1b110.app/Contents/MacOS/Nuke7.0v1b110
-nx
version 7.0 v1b110
define_window_layout_xml {<?xml version="1.0" encoding="UTF-8"?>
<layout version="1.0">
<window x="0" y="22" w="1862" h="1054" screen="0">
<splitter orientation="1">
<split size="1262"/>
<splitter orientation="1">
<split size="40"/>
<dock id="" hideTitles="1" activePageId="Toolbar.1">
<page id="Toolbar.1"/>
</dock>
<split size="1218"/>
<splitter orientation="2">
<split size="514"/>
<dock id="" activePageId="Viewer.1">
<page id="Viewer.1"/>
</dock>
<split size="514"/>
<dock id="" activePageId="DAG.1">
<page id="DAG.1"/>
<page id="Curve Editor.1"/>
<page id="DopeSheet.1"/>
</dock>
</splitter>
</splitter>
<split size="596"/>
<dock id="" activePageId="Properties.1">
<page id="Properties.1"/>
<page id="Script Editor.1"/>
</dock>
</splitter>
</window>
</layout>
}
Root {
inputs 0
name /Users/frank/.nuke/DeepTest.nk
project_directory "\[file dirname \[value name]]"
format "2048 1556 0 0 2048 1556 1 2K_Super_35(full-ap)"
proxy_type scale
proxy_format "1024 778 0 0 1024 778 1 1K_Super_35(full-ap)"
}
Camera2 {
inputs 0
translate {0 8 7.760000229}
rotate {-45 0 0}
name Camera1
xpos 41
ypos -426
}
set N189382e0 [stack 0]
push $N189382e0
Group {
name CG_render_ground
xpos 215
ypos -405
}
Input {
inputs 0
name Input1
selected true
xpos 187
ypos 39
}
CheckerBoard2 {
inputs 0
name CheckerBoard1
xpos 348
ypos -344
}
Card2 {
rotate {-90 0 0}
uniform_scale 5
control_points {3 3 3 6
1 {-0.5 -0.5 0} 0 {0.1666666865 0 0} 0 {0 0 0} 0 {0 0.1666666865 0} 0 {0 0 0} 0
{0 0 0}
1 {0 -0.5 0} 0 {0.1666666716 0 0} 0 {-0.1666666716 0 0} 0 {0 0.1666666865 0} 0
{0 0 0} 0 {0.5 0 0}
1 {0.5 -0.5 0} 0 {0 0 0} 0 {-0.1666666865 0 0} 0 {0 0.1666666865 0} 0 {0 0 0} 0
{1 0 0}
1 {-0.5 0 0} 0 {0.1666666865 0 0} 0 {0 0 0} 0 {0 0.1666666716 0} 0 {0
-0.1666666716 0} 0 {0 0.5 0}
1 {0 0 0} 0 {0.1666666716 0 0} 0 {-0.1666666716 0 0} 0 {0 0.1666666716 0} 0 {0
-0.1666666716 0} 0 {0.5 0.5 0}
1 {0.5 0 0} 0 {0 0 0} 0 {-0.1666666865 0 0} 0 {0 0.1666666716 0} 0 {0
-0.1666666716 0} 0 {1 0.5 0}
1 {-0.5 0.5 0} 0 {0.1666666865 0 0} 0 {0 0 0} 0 {0 0 0} 0 {0 -0.1666666865 0} 0
{0 1 0}
1 {0 0.5 0} 0 {0.1666666716 0 0} 0 {-0.1666666716 0 0} 0 {0 0 0} 0 {0
-0.1666666865 0} 0 {0.5 1 0}
1 {0.5 0.5 0} 0 {0 0 0} 0 {-0.1666666865 0 0} 0 {0 0 0} 0 {0 -0.1666666865 0} 0
{1 1 0} }
name Card1
xpos 348
ypos -254
}
ProcGeo {
orient Y
x_size 1
y_size {{x_size}}
Octaves 1
Lacunarity 1
Gain 0
Speed 0
name ProcGeo1
xpos 348
ypos -230
}
push 0
ScanlineRender {
inputs 3
motion_vectors_type distance
name ScanlineRender2
xpos 348
ypos 39
}
Crop {
box {0 0 2048 1556}
name Crop2
xpos 348
ypos 63
}
DeepFromImage {
name DeepFromImage2
xpos 347
ypos 87
}
Output {
name Output1
xpos 347
ypos 187
}
end_group
NoOp {
name NoOp1
label "dial thickness"
xpos 215
ypos -266
addUserKnob {20 User}
addUserKnob {7 thickness}
thickness 0.1
}
set N189a8a60 [stack 0]
Dot {
name Dot2
xpos 349
ypos -258
}
DeepExpression {
temp_name0 offset
temp_expr0 "\[value NoOp1.thickness]"
chans1 deep
deep.front deep.front+offset
name DeepExpression1
label lowered
xpos 315
ypos -92
}
set N189b0050 [stack 0]
push $N189a8a60
DeepExpression {
temp_name0 offset
temp_expr0 "\[value NoOp1.thickness]"
chans1 deep
deep.front deep.front-offset
name DeepExpression2
label raised
xpos 216
ypos -191
}
push $N189382e0
Group {
name CG_render_creature
xpos -244
ypos -405
}
Input {
inputs 0
name Input1
selected true
xpos 18
ypos -162
}
ColorBars {
inputs 0
name ColorBars1
xpos -128
ypos -429
}
Grade {
add 0.2
name Grade1
xpos -128
ypos -357
}
Cylinder {
radius 0.2
close_top true
translate {{sin(frame/5)} 0.8399999738 {cos(frame/5)}}
name Cylinder1
xpos -128
ypos -282
}
push 0
ScanlineRender {
inputs 3
motion_vectors_type distance
name ScanlineRender1
xpos -128
ypos -162
}
Crop {
box {0 0 2048 1556}
name Crop1
xpos -128
ypos -138
}
DeepFromImage {
name DeepFromImage1
xpos -128
ypos -66
}
Output {
name Output1
xpos -128
ypos 34
}
end_group
Dot {
name Dot3
xpos -210
ypos -306
}
set N1a606a90 [stack 0]
Dot {
name Dot1
xpos -35
ypos -306
}
DeepMerge {
inputs 2
operation holdout
name DeepMerge1
xpos -69
ypos -186
}
push $N1a606a90
DeepMerge {
inputs 2
operation holdout
name DeepMerge2
xpos -244
ypos -186
}
DeepMerge {
inputs 2
operation holdout
name DeepMerge4
label "this seems to not hold out some deep samples properly"
xpos -244
ypos -87
}
DeepSample {
pos {1116 380}
name DeepSample1
label "this shows one of the deep samples that shouldn't be there"
xpos -244
ypos -12
}
DeepToPoints {
inputs 2
detail 1
name DeepToPoints1
label "see the deep samples that shoulnd't be there"
xpos 31
ypos 198
}
push $N189b0050
Viewer {
inputs 2
channels rgb
input_process false
name Viewer1
xpos 198
ypos 401
}
_______________________________________________
Nuke-users mailing list
Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users