Raytracing in 6.7.0

Hi All,

I am trying to see what the new Raytracing feature looks like but I am unable to get it to work. As suggested on the forum I am running the bottle.tcl script in draw.
I did not rebuild OCC but am using the pre-compiled binaries that came with the installer. Running Windows 7 x64 with a Quadro 1000m

Hint: use "pload ALL" command to load standard commands
Draw[1]> pload ALL
1
Draw[2]> source samples/tcl/bottle.tcl
Constructing bottle body...
Constructing threading...
Putting together and writing "Open CASCADE"...
Showing result...
Trying raytrace mode...
TKOpenGl | Type: Error | ID: 0 | Severity: High | Message:

:59:20: error: call to 'dot' is ambiguous
float aDdotD = dot (theRay->Direct.xyz, theRay->Direct.xyz);
^~~
:6829:25: note: candidate function
double __OVERLOADABLE__ dot(double4 p0, double4 p1);
^
:6825:25: note: candidate function
double __OVERLOADABLE__ dot(double2 p0, double2 p1);
^
:6824:25: note: candidate function
double __OVERLOADABLE__ dot(double p0, double p1);
^
:6823:24: note: candidate function
float __OVERLOADABLE__ dot(float4 p0, float4 p1);
^
:6819:24: note: candidate function
float __OVERLOADABLE__ dot(float2 p0, float2 p1);
^
:6818:24: note: candidate function
float __OVERLOADABLE__ dot(float p0, float p1);
^ :60:20: error: call to 'dot' is ambiguous
float aDdotO = dot (theRay->Direct.xyz, theRay->Origin.xyz);
^~~
:6829:25: note: candidate function
double __OVERLOADABLE__ dot(double4 p0, double4 p1);
^
:6825:25: note: candidate function
double __OVERLOADABLE__ dot(double2 p0, double2 p1);
^
:6824:25: note: candidate function
double __OVERLOADABLE__ dot(double p0, double p1);
^
:6823:24: note: candidate function
float __OVERLOADABLE__ dot(float4 p0, float4 p1);
^
:6819:24: note: candidate function
float __OVERLOADABLE__ dot(float2 p0, float2 p1);
^
:6818:24: note: candidate function
float __OVERLOADABLE__ dot(float p0, float p1);
^ :61:20: error: call to 'dot' is ambiguous
float aOdotO = dot (theRay->Origin.xyz, theRay->Origin.xyz);
^~~
:6829:25: note: candidate function
double __OVERLOADABLE__ dot(double4 p0, double4 p1);
^
:6825:25: note: candidate function
double __OVERLOADABLE__ dot(double2 p0, double2 p1);
^
:6824:25: note: candidate function
double __OVERLOADABLE__ dot(double p0, double p1);
^
:6823:24: note: candidate function
float __OVERLOADABLE__ dot(float4 p0, float4 p1);
^
:6819:24: note: candidate function
float __OVERLOADABLE__ dot(float2 p0, float2 p1);
^
:6818:24: note: candidate function
float __OVERLOADABLE__ dot(float p0, float p1);
^ :207:41: error: call to 'dot' is ambiguous
const float aSpecular = pow (max (dot (aReflect.xyz, theView.xyz), 0.f), a
MatSpec.w);
^~~
:6829:25: note: candidate function
double __OVERLOADABLE__ dot(double4 p0, double4 p1);
^
:6825:25: note: candidate function
double __OVERLOADABLE__ dot(double2 p0, double2 p1);
^
:6824:25: note: candidate function
double __OVERLOADABLE__ dot(double p0, double p1);
^
:6823:24: note: candidate function
float __OVERLOADABLE__ dot(float4 p0, float4 p1);
^
:6819:24: note: candidate function
float __OVERLOADABLE__ dot(float2 p0, float2 p1);
^
:6818:24: note: candidate function
float __OVERLOADABLE__ dot(float p0, float p1);
^ :280:7: error: use of undeclared identifier 'int3'
int3 aData = theNodeDataRecords[aNode].xyz;
^ :283:11: error: use of undeclared identifier 'aData'
if (aData.x != 1)
^ :285:40: error: use of undeclared identifier 'aData'
aNodeMinLft = theNodeMinPoints[aData.y];
^ :286:40: error: use of undeclared identifier 'aData'
aNodeMinRgh = theNodeMinPoints[aData.z];
^ :287:40: error: use of undeclared identifier 'aData'
aNodeMaxLft = theNodeMaxPoints[aData.y];
^ :288:40: error: use of undeclared identifier 'aData'
aNodeMaxRgh = theNodeMaxPoints[aData.z];
^ :304:45: error: use of undeclared identifier 'aData'
aNode = (aTimeMin1 ^ :306:59: error: use of undeclared identifier 'aData'
push (aStack, &aHead, (aTimeMin1 ^ :320:31: error: use of undeclared identifier 'aData'
aNode = aHitLft ? aData.y : aData.z;
^ :345:25: error: use of undeclared identifier 'aData'
for (int nTri = aData.y; nTri ^ :345:42: error: use of undeclared identifier 'aData'
for (int nTri = aData.y; nTri ^ :404:7: error: use of undeclared identifier 'int3'
int3 aData = theNodeDataRecords[aNode].xyz;
^ :406:11: error: use of undeclared identifier 'aData'
if (aData.x != 1)
^ :409:42: error: use of undeclared identifier 'aData'
theNodeMinPoints[aData.y],
^ :422:45: error: use of undeclared identifier 'aData'
aNode = (aTimeMin1 ^ :424:59: error: use of undeclared identifier 'aData'
push (aStack, &aHead, (aTimeMin1 ^ :430:31: error: use of undeclared identifier 'aData'
aNode = aHitLft ? aData.y : aData.z;
^ :443:25: error: use of undeclared identifier 'aData'
for (int nTri = aData.y; nTri ^ :443:42: error: use of undeclared identifier 'aData'
for (int nTri = aData.y; nTri ^

Draw[3]>

Forum supervisor's picture

Dear Arjan,

Ray tracing in OCCT requires OpenCL 1.1 compliant implementation.
There are two possible reasons of listed errors:
- Installed drivers are outdated and provide OpenCL 1.0 implementation only (or contain bugs). Try to update the drivers.
- Quadro 1000M hardware may not support particular features of OpenCL 1.1 (to be checked).
Best regards

Arjan Schouten's picture

Thanks,

Updating the driver fixed the problem.

Kind regards,

Arjan