0024587: Separate TCL samples for ray tracing and creation of bottle
authorabv <abv@opencascade.com>
Mon, 3 Feb 2014 06:21:23 +0000 (10:21 +0400)
committerapn <apn@opencascade.com>
Thu, 6 Feb 2014 06:56:16 +0000 (10:56 +0400)
New sample created for ray tracing in DRAW: samples/tcl/raytrace.tcl, rendering OCCT bottle with glass on a rectangular table, with shadows and reflections (if OpenCL is available). Sample bottle.tcl retains only modeling part.

samples/tcl/bottle.tcl
samples/tcl/raytrace.tcl [new file with mode: 0644]

index 5dbbb24..86cf9e3 100755 (executable)
@@ -112,12 +112,3 @@ puts "Showing result..."
 vdisplay bottle
 vfit
 vsetdispmode 1
-
-# set ray tracing
-if { [regexp {HAVE_OPENCL} [dversion]] } {
-    puts "Trying raytrace mode..."
-    if { ! [catch {vraytrace 1}] } {
-        vtextureenv on 1
-        vfit
-    }
-}
diff --git a/samples/tcl/raytrace.tcl b/samples/tcl/raytrace.tcl
new file mode 100644 (file)
index 0000000..b07e238
--- /dev/null
@@ -0,0 +1,39 @@
+# Script reproducing creation of bottle model as described in OCCT Tutorial
+
+# make bottle by calling another script
+source [file join [file dirname [info script]] bottle.tcl]
+
+# make table and a glass
+box table -50 -50 -10 100 100 10
+pcone glass_out 7 9 25
+pcone glass_in 7 9 25
+ttranslate glass_in 0 0 0.2
+bcut glass glass_out glass_in
+ttranslate glass -30 -30 0
+
+# show table and glass
+vsetmaterial bottle aluminium
+vdisplay table
+vsetmaterial table bronze
+vsetmaterial table plastic
+vsetcolor table coral2
+vdisplay glass
+vsetmaterial glass plastic
+vsetcolor glass brown
+vsettransparency glass 0.6
+
+# add light source for shadows
+vlight new spot pos -100 -100 300
+
+# set white background and fit view
+vsetcolorbg 255 255 255
+vfit
+
+# set ray tracing
+if { [regexp {HAVE_OPENCL} [dversion]] } {
+    puts "Trying raytrace mode..."
+    if { ! [catch {vraytrace 1}] } {
+        vtextureenv on 1
+        vsetraytracemode shad=1 refl=1 aa=1
+    }
+}