Occlusion function inconsistencies

Discussion created by GeoAnas on Aug 24, 2017
Latest reply on Sep 29, 2017 by CLau-esristaff

Hi! I am trying to use the Occlusion function to detect if the edges of two procedurally created objects touch.

A simple example I made for a cube worked flawlessly, then I moved to my actual objects.

The query I am using for the cylinder-like object is just an extrusion and for the developing upside-down cone is this:


   comp(f) {bottom : Root}

   case( > 0.5):
   s('0.97, '0.97, 0)
   comp(f){top : Root}
   else: NIL

   comp(f){side:OcclusionDetection | bottom:OcclusionDetection | top:OcclusionDetection}

OcclusionDetection -->
   case overlaps (inter):
   else: color("#c3ff00")


The result is on the image:

Image assessment:

1. there is a "ghost" touch, 2. this is my aim accomplished and 3. that interaction is not registered this time (although earlier it was registering). I move around the yellow-green object to make it re-render and register the overlaps.



Inconsistent behaviour of the occlusion function. The script worked fine the first time I compiled it and after a minute it stopped working. By not working I mean, registering all the time that there is no overlap or having a problem to display the OcclusionDetection colours on-top of the Root colour. It took a lot of time fiddling around with it, although practically staying the same, to make it work again.All these in addition to the issues 1 and 3 from the picture.


Is there a way to improve my script and make it work consistently? 


(The City Engine version used is 2015.2, on a Win 10 system, with Intel Core i5 M520, 6GB RAM, GT320M, SSD)