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

Reply via email to