NewThreeDTest.cm
Last Edited by: Crow, June 3, 1986 7:21:05 pm PDT
&sgf[ThreeDDemoImpl]
Render Modes and Viewports
ChangeRenderMode[$Dithered]
ChangeRenderMode[$PseudoClr]
ChangeRenderMode[$Grey]
Reset[]
SetDepthBuffer[]
NoDepthBuffer[]
SetAntiAliased[]
SetAliased[]
ThreeDMisc.StartLog[context3d]
SetViewPort[ [0.0, 0.0, 640.0, 453.0] ]         -- defaults
ThreeDScenes.SetWindow[ context3d, [-1.0, -.7078125, 2.0, 1.415625] ]
SetViewPort[ [120.0, 90.0, 400.0, 300.0] ]        -- 400 x 300 for 640 x 480
SetViewPort[ [220.0, 165.0, 200.0, 150.0] ]        -- 200 x 150 for 640 x 480
SetViewPort[ [311.0, 228.0, 400.0, 300.0] ]        -- 400 x 300 for 1024 x 768
ThreeDScenes.SetView[context3d, [2.0, -10.0, 3.0], [0.0, 0.0, 0.0] ]  -- default
ThreeDScenes.SetView[context3d, [0.0, 0.2, 0.93], [0.0, 0.0, 0.0] ]  -- scene1 closeup
ThreeDScenes.SetView[context3d, [4.733, -1.93, -0.6], [0.0, 0.5, 0.0] ] -- scene2 view closeup
ThreeDScenes.SetView[context3d, [10.0, -2.0, 1.0], [0.0, 0.0, 0.0] ]  -- scene2, glass in front
ThreeDScenes.FillViewPort[context3d, [0.1, 0.1, 0.6] ]   -- clear viewport to dark blue
ThreeDScenes.FillInBackGround[context3d]      -- clear viewport to background
GetOffScreenCtx[context3d, 2000, 1500]   -- get large context to work in
GetOnScreenCtx[context3d, 200, 150]    -- get additional on-screen context to work in
MakeFrame[]
ThreeDMisc.MakeHiResFrame[context3d, 1024, 768, "HiResTest.ais" ]
ShowShapes[]
Scene Storage and Retrieval
ThreeDMisc.SaveOnFile[context3d, "Temp.scene"]
ThreeDMisc.RestoreFromFile[context3d, "Temp.scene"]
ThreeDMisc.MakeFrameFromFile[context3d, "Test1.scene"]
Lighting and Background
ThreeDMisc.SetBackground[ context3d, "Light Blue" ]
context3d.props ← Atom.PutPropOnList[context3d.props, $BackGround, NIL] -- kill background
ThreeDMisc.SetAmbientLight[ context3d, "Dark Grey" ]
ThreeDScenes.SetLight[context3d, "Initial", [500.0, -200.0, 10.0], [1.0, 1.0, 0.7] ]
ThreeDScenes.SetLight[context: context3d, name: "Initial", position: [500.0, -200.0, 10.0], color: [1.0, 1.0, 0.7] ]
ColorMap Fiddling -- set color display to 8-bits
ThreeDMisc.Show8BitClrMap[context3d]
ThreeDMisc.Rotate8BitClrMap[Terminal.Current[], 0, 255, 10]
ThreeDMisc.LoadStd8BitMap[Terminal.Current[]]
ThreeDMisc.LoadColorRamp[Terminal.Current[], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0], [.43, .43, .43]]
ThreeDMisc.AdjustValueRamp[context3d, [.43, .43, .43]]  -- apply TRC
ThreeDMisc.LoadMultiRamps[Terminal.Current[], LIST[ [.0, .0, .0], [.1, .1, .8], [.8, .4, .2], [.9, .6, .6], [.8, .9, .9], [1.0, 1.0, 1.0] ] ]  -- blue, brown, red, blue-white
ThreeDMisc.LoadMultiRamps[Terminal.Current[], LIST[ [.0, .0, .0], [.3, .1, .1], [.2, .1, .0], [.3, .2, .2], [.4, .3, .3], [.4, .2, .1], [.6, .4, .2], [.7, .5, .4], [.8, .6, .5], [.5, .8, .6], [.5, .8, .6], [.3, .1, .1], [.2, .1, .0], [.3, .2, .2], [.3, .1, .1], [.2, .1, .0], [.3, .2, .2], [.4, .3, .3], [.4, .2, .1], [.8, .5, .3], [.0, .0, .0], [.4, .2, .1], [.0, .0, .0], [.1, .1, .8], [1.0, 1.0, 1.0], [.8, .5, .3], [.5, .8, .6], [.8, .9, .9], [.3, .1, .1], [.2, .1, .0], [1.0, 1.0, 1.0] ] ]
ThreeDMisc.LoadMultiRamps[Terminal.Current[], LIST[ [1.0, .0, .0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0], [1.0, .0, .0] ] ]  -- red, green, blue, red
ThreeDScenes.FillViewPort[context3d, [1.0,0.0,1.0] ]
Image Enhancement and Scaling
ThreeDMisc.AdjustValueRamp[context3d, [.7, .5, .7]]  -- gamma curves for each separation
ThreeDMisc.AdjustSaturation[context3d, 0.5 ]    -- makes more saturated (0 -1)
SetViewPort[ [0.0, 0.0, 640.0, 453.0] ]
GetOnScreenCtx[context3d, 228, 171]
SetViewPort[ [230.0, 150.0, 400.0, 300.0] ]
AISAnimation.GetAIS[context3d, "///Users/Crow.pa/AIS/SphereWithIACRAdj.ais" ]
AISAnimation.GetAIS[onScreenCtx, "///Users/Crow.pa/AIS/SphereWithIACRAdj.ais" ]
ThreeDMisc.ScaleDownImage[onScreenCtx, context3d]
ThreeDMisc.ScaleDownImage[context3d, offScreenCtx]
AISAnimation.PutAIS[context3d, "///Users/Crow.pa/AIS/ViolinScene.ais" ]
Text
ThreeDMisc.SetNamedColor[context3d, "vivid green"]
ThreeDMisc.ShowRope[context3d, 60.0, 160.0, "Look at the pretty picture!!.", "Xerox/Pressfonts/TimesRoman-MRR", 20.0]
Use Your Own Objects
Reset[]
ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "YourShape", fileName: "/User/You/Shapes/YourShape.shape", position: [0.0, 0.0, 0.0], type: $ConvexPolygon]
ThreeDMisc.SetFacetedColor[ context3d, "YourShape", [.4, .8, .4] ]   -- pea green
MakeFrame[]
Reset[]
ThreeDMisc.AddShapeAt[ context3d, "Tree", "Tree.shape", [0.0, 0.0, 0.0]]
ThreeDMisc.SetSmoothColor[ context3d, "Tree", [.8, .8, .0] ]
ThreeDMisc.GetNormals[ context3d, "Tree", "Tree.normals" ]
MakeFrame[]
TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "Tree" ], TextureMaps.TextureFromAIS[context3d, "Texture.ais", NIL] ]
ThreeDMisc.GetTextureCoords[ context3d, "Tree", "Tree.texture" ]
MakeFrame[]
AIS Files: Writing and Reading
AISAnimation.GetAIS[context: context3d, fileRoot: "Temp.ais", xOffset: 20, yOffset: 100, center: FALSE ]
AISAnimation.PutAIS[context3d, "Temp.ais" ]
AISAnimation.GetAIS[context3d, "Temp.ais" ]
For Comparisons
SetViewPort[ [0.0, 0.0, 320.0, 453.0] ]        -- for 640 x 480
AISAnimation.GetAIS[context3d, "ZebraBurlTeaPot.ais" ]
SetViewPort[ [320.0, 0.0, 320.0, 453.0] ]
AISAnimation.GetAIS[context3d, "ZebraBurlTeaPotHiRes.ais" ]
SetViewPort[ [0.0, 0.0, 640.0, 453.0] ]
Gallery - Interesting images 24-bit
AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/Eggs.ais" ]
AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/Glasses.ais" ]
AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/TwistedEgg.ais" ]
AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/WurlitzerEgg.ais" ]
AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/ComparisonEggs.ais" ]
AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/Spoon.ais" ]
AISAnimation.GetAIS[context3d, "/Pixel/Crow/PlasticWare.ais" ]
AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/ZebraBurlTeaPot.ais" ]
AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/TestScene2.ais" ]
AISAnimation.GetAIS[context3d, "/Pixel/Lamming/breakfast.ais" ]
AISAnimation.GetAIS[context3d, "breakfast.ais" ]
AISAnimation.GetAIS[context3d, "violin.ais" ]
Gallery - Interesting images 8-bit
AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/MarbleTeaPot.ais" ]
ThreeDMisc.SetUpTerrainColors[Terminal.Current[]]
AISAnimation.GetAIS[context3d, "/Cyan/AIS/Crow/LakeScene-HiRes.ais" ]
AISAnimation.GetAIS[context3d, "/Pixel/Crow/LakeScene-BigRocks.ais" ]
AISAnimation.GetAIS[context3d, "Temp.ais" ]
Animations -- set color display to 8-bits
Reset[]
SetUpMovie[ fileRoot: "/Cyan/AIS/Animation/LakeSceneTest.ais", viewPort: [196.0, 144.0, 256.0, 192.0], numFiles: 64, start: 0];
ThreeDMisc.SetUpTerrainColors[Terminal.Current[]]
Reset[]
SetUpMovie[ fileRoot: "Cyan/AIS/Animation/StillLife.ais", viewPort: [120.0, 90.0, 400.0, 300.0], numFiles: 30, start: 1]
ChangeRenderMode[$PseudoClr]
SetViewPort[ [311.0, 228.0, 400.0, 300.0] ]    -- for 1024 x 768
Bezier Patch Objects
Reset[]
Sphere
ThreeDMisc.AddShapeAt[ context3d, "Sphere", "Sphere.bezier", [0.0, 0.0, 0.0], $Bezier]
ThreeDMisc.AddShapeAt[ context3d, "Sphere2", "Sphere.bezier", [0.3, 0.0, 0.0], $Bezier]
ThreeDMisc.SetSmoothColor[ context3d, "Sphere", [.3, 1.0, .3] ]
ThreeDMisc.SetSmoothColor[ context3d, "Sphere2", [1.0, .3, .3] ]
context3d.shapes ← ThreeDScenes.AddShape[ context3d.shapes, CopyShape[ "PolySphere", "Sphere"] ]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "PolySphere" ], NIL, 16.0 ]
DeleteShape[ "Sphere" ]
AddShape[ "PolySphere" ]
CleanUp[ name: "PolySphere", deSeam: TRUE, tolerance: 0.00001 ]
ThreeDSurfaces.GetVtxNormals[ ThreeDScenes.FindShape[context3d.shapes, "PolySphere"] ]
WriteOutShape["PolySphere"]
ExpungeShape["PolySphere"]
DoughNut
ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "DoughNut", fileName: "DoughNut.bezier", position: [0.0, 0.0, 0.0], type: $Bezier]
ThreeDMisc.SetSmoothColor[ context3d, "DoughNut", [.5, .5, .8] ]
ThreeDScenes.OrientShape[ ThreeDScenes.FindShape[ context3d.shapes, "DoughNut" ], [0.0, -1.0, 0.0] ]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "DoughNut" ], NIL, 5.0 ]
ThreeDSurfaces.ShapeSubdivide[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "DoughNut" ], NIL, 0.0 ]
TeaPot modifications
ThreeDMisc.AddShapeAt[ context3d, "TeaPot", "TeaPot.bezier", [0.0, 0.0, 0.0], $Bezier]
ThreeDScenes.OrientShape[ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], [0.0, -1.0, 0.0]]
ThreeDMisc.AddShapeAt[ context3d, "TeaPotBot", "TeaPotBot.bezier", position: [0.0, 0.0, 0.0], type: $Bezier]
ThreeDScenes.AddShape[ context3d.shapes, ShapeTwiddle.Combine[ context3d, "TeaPotWithBot", "TeaPot", "TeaPotBot"] ]
ShapeTwiddle.Bounds[context3d, "TeaPotWithBot" ]
ThreeDScenes.PlaceShape[ThreeDScenes.FindShape[ context3d.shapes, "TeaPotWithBot"], [0.0, 0.0, 0.15 ] ]
ShapeTwiddle.WriteOutShape[context3d, "TeaPotWithBot", "bezier"]
context3d.shapes ← ThreeDScenes.AddShape[ context3d.shapes, ShapeTwiddle.DeletePatches[context3d, "TeaPotLid", "TeaPot", LIST[ [0, 19], [28, 31] ] ] ]
ShapeTwiddle.ScaleShape[ context3d, "TeaPotLid", 1.0, 1.07, 1.07, .9 ]
ShapeTwiddle.CleanUp[ context3d, "TeaPotLid" ]
ShapeTwiddle.WriteOutShape[context3d, "TeaPotLid", "bezier"]
context3d.shapes ← ThreeDScenes.AddShape[ context3d.shapes, ShapeTwiddle.DeletePatches[context3d, "TeaPotNoLid", "TeaPot", LIST[ [20, 27] ] ] ]
ShapeTwiddle.CleanUp[ context3d, "TeaPotNoLid" ]
ShapeTwiddle.WriteOutShape[context3d, "TeaPotNoLid", "bezier"]
context3d.shapes ← ThreeDScenes.AddShape[ context3d.shapes, ShapeTwiddle.DeletePatches[context3d, "SugarBowl", "TeaPot", LIST[ [8, 27] ] ] ]
ShapeTwiddle.CleanUp[ context: context3d, name: "SugarBowl", deSeam: TRUE, tolerance: 0.00001 ]
ShapeTwiddle.WriteOutShape[context3d, "SugarBowl", "bezier"]
TeaPot displays
ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "TeaPot", fileName: "TeaPotWithBot.bezier", position: [0.0, 0.0, -1.25], type: $Bezier]
ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "TeaPot", fileName: "TeaPotNoLid.bezier", position: [0.0, 0.0, -1.25], type: $Bezier]
ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "Lid", fileName: "TeaPotLid.bezier", position: [0.0, 0.0, -1.025], type: $Bezier]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Lid"], [0.0, 0.0, 0.0], [0.0, 0.0, 1.0], 15.0 ]
ThreeDMisc.SetSmoothColor[ context3d, "TeaPot", [0.8, 0.8, 0.8] ]
ThreeDScenes.SetView[context3d, [-0.5, -10.0, 3.0], [0.0, 0.0, 0.0] ]  -- hides joins
ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "TeaPotBot", fileName: "TeaPotBot.bezier", position: [0.0, 0.0, -1.25], type: $Bezier]
ThreeDMisc.SetSmoothColor[ context3d, "TeaPotBot", [.5, .5, .8] ]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "TeaPotBot" ], NIL, 5.0 ]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], NIL, 5.0 ]
ThreeDSurfaces.ShapeSubdivide[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], NIL, 0.0 ]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], NIL, 16.0 ]
ShapeTwiddle.CleanUp[ context3d, "TeaPot", TRUE, .0025 ]
ThreeDMisc.SetSmoothColor[ context3d, "TeaPot", [0.8, 0.8, 0.8] ]
TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], TextureMaps.TextureFromAIS[context3d, "Page.ais", $Color] ]
TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], [0.0, 0.0], [0.0, 2.0], [6.0, 2.0], [6.0, 0.0] ]
TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ] ]
ThreeDMisc.SetShininess[ context3d, "TeaPot", 60.0 ]
MakeFrame[]        -- this will take a while
AISAnimation.PutAIS[context3d, "PagedTeaPot3.ais" ]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], NIL, 16.0 ]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "Lid" ], NIL, 16.0 ]
ShapeTwiddle.CleanUp[ context3d, "TeaPot", TRUE, .0025 ]
ShapeTwiddle.CleanUp[ context3d, "Lid", TRUE, .0025 ]
ThreeDMisc.SetSmoothColor[ context3d, "TeaPot", [1.0, 1.0, 1.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Lid", [1.0, 1.0, 1.0] ]
context3d.props ← Atom.PutPropOnList[context3d.props, $BackGround, NIL] -- kill background
ThreeDMisc.GetShadingProcs[context3d, "TeaPot", ShadingProcs.GetLerpedVals, ShadingProcs.ZebraBurl ]   -- for marble teapot
ThreeDMisc.GetShadingProcs[context3d, "Lid", ShadingProcs.GetLerpedVals, ShadingProcs.ZebraBurl ]   -- for marble teapot
ThreeDMisc.SetShininess[ context3d, "TeaPot", 50.0 ]
ThreeDMisc.SetShininess[ context3d, "Lid", 50.0 ]
ThreeDScenes.SetLight[context3d, "Initial", [-200.0, -200.0, 400.0], [1.0, 1.0, 1.0] ]
ThreeDMisc.StartLog[context3d]
context3d.lineDrawing ← FALSE
MakeFrame[]
AISAnimation.PutAIS[context3d, "ZebraBurlTeaPot.ais" ]
ThreeDMisc.MakeHiResFrame[context3d, 1024, 768, "ZebraBurlTeaPotHiRes.ais" ]
AISAnimation.GetAIS[context3d, "StillLife2.ais" ]
ThreeDMisc.AdjustValueRamp[context3d, [.7, .5, .7]]
ThreeDMisc.AdjustSaturation[context3d, 0.5 ]
AISAnimation.PutAIS[context3d, "StillLife2Prep.ais" ]
ColorAISToInterpress StillLife2Prep
InterpressToPD StillLife2Prep.interpress Color400 1.25 scale
PeachPrint MtFuji StillLife2Prep.pd
Jug
ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "Jug", fileName: "Jug.bezier", position: [0.0, 0.0, -1.25], type: $Bezier]
ThreeDMisc.SetSmoothColor[ context3d, "Jug", [.5, .5, .8] ]
ThreeDScenes.OrientShape[ThreeDScenes.FindShape[ context3d.shapes, "Jug" ], [0.0, -1.0, 0.0]]
Saucer
ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "Saucer", fileName: "Saucer.bezier", position: [0.0, 0.0, -1.25], type: $Bezier]
ThreeDMisc.SetSmoothColor[ context3d, "Saucer", [.5, .5, .8] ]
ThreeDScenes.OrientShape[ThreeDScenes.FindShape[ context3d.shapes, "Saucer" ], [0.0, -1.0, 0.0]]
Teacup
ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "Teacup", fileName: "Teacup.bezier", position: [0.0, 0.0, -1.25], type: $Bezier]
ThreeDMisc.SetSmoothColor[ context3d, "Teacup", [.5, .5, .8] ]
ThreeDScenes.OrientShape[ThreeDScenes.FindShape[ context3d.shapes, "Teacup" ], [0.0, -1.0, 0.0]]
Teaspoon
ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "Teaspoon", fileName: "Teaspoon.bezier", position: [0.0, 0.0, 0.0], type: $Bezier]
ThreeDMisc.SetSmoothColor[ context3d, "Teaspoon", [.5, .5, .8] ]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "Teaspoon" ], NIL, 12.0 ]
ThreeDMisc.SetFacetedColor[ context3d, "Teaspoon", [.5, .5, .8] ]
ThreeDScenes.SetView[context3d, [1.47, 2.6, 1.933], [ 0.1, -0.5, 0.0] ]  -- view over big end
Texture Generation -- set color display to 8-bits
Reset[]
ChangeRenderMode[$Grey]
SetViewPort[ [220.0, 140.0, 200.0, 200.0] ]
ThreeDMisc.MakeStripes[context: context3d, numStripes: 12, min: 0.2, max: 0.8, power: 1.0]
AISAnimation.PutAIS[context3d, "Texture.ais" ]
ThreeDMisc.MakeStretchedSpots[context: context3d, spotsAcross: 16, min: 0.0, max: 1.0, power: 1.0, stretched: FALSE]
AISAnimation.PutAIS[context3d, "Texture.ais" ]
Texture Mapped Sphere -- set color display to 24-bits
Reset[]
ThreeDMisc.AddShapeAt[ context3d, "Sphere", "PolySphere.shape"]
ThreeDMisc.SetSmoothColor[ context3d, "Sphere", [0.9, 0.9, 0.9] ]
SetAntiAliased[]     -- same as pushing the "NoJaggy" button
TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "Sphere" ], TextureMaps.TextureFromAIS[context3d, "IACR.ais", $Color] ]
TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "Sphere" ], [0.0, 0.0], [0.0, 0.6], [1.0, 0.6], [1.0, 0.0], -150.0, -30.0, -35.0, 90.0 ]
TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "Sphere" ] ]
ThreeDScenes.SetView[context3d, [0.0, -4.0, 2.0], [0.0, 0.0, 0.0] ]
MakeFrame[]        -- this will take a while
AISAnimation.PutAIS[context3d, "SphereWithIACR.ais" ]
SetViewPort[ [220.0, 165.0, 200.0, 150.0] ]   -- missing triangle case
ThreeDScenes.SetWindow[ context3d, [-.3, 0.5, 0.6, 0.375] ]
TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "Sphere" ], [0.0, 0.0], [0.0, 3.0], [6.0, 3.0], [6.0, 0.0] ]
MakeFrame[]        -- this will take a while
AISAnimation.PutAIS[context3d, "SphereWithPages.ais" ]
Textured SugarBowl -- set color display to 24-bits
Reset[]
ThreeDMisc.AddShapeAt[ context3d, "SugarBowl", "SugarBowl.bezier", [0.0, 0.0, 0.0], $Bezier]
ThreeDMisc.AddShapeAt[ context3d, "Lid", "TeaPotLid.bezier", [0.0, 0.0, 0.0], $Bezier]
ThreeDMisc.AddShapeAt[ context3d, "Spoon", "TeaSpoon.bezier", [0.0, 0.0, 0.0], $Bezier]
ThreeDScenes.PlaceShape[ThreeDScenes.FindShape[ context3d.shapes, "Spoon" ], [-1.0, 0.9, 2.5]]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Spoon" ], [-1.0, 0.0, 2.5], [-1.5, 0.0, 2.5], -10]
ThreeDScenes.PlaceShape[ThreeDScenes.FindShape[ context3d.shapes, "Lid" ], [0.1, 0.0, 0.0]]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Lid" ], [0.0, 0.0, 2.5], [0.0, 1.0, 2.5], 20]
context3d.ptOfInterest ← [0.0, 0.0, 1.4]
context3d.eyePoint ← [-8.133, 1.733, 4.8]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "Spoon" ], NIL, 10.0 ]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "Lid" ], NIL, 10.0 ]
ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "SugarBowl" ], NIL, 10.0 ]
ThreeDMisc.GetShadingProcs[context3d, "Lid", ShadingProcs.GetLerpedVals, ShadingProcs.AddColoredMarble ]
ThreeDMisc.GetShadingProcs[context3d, "SugarBowl", ShadingProcs.GetLerpedVals, ShadingProcs.AddColoredMarble ]
MakeFrame[]        -- this will take a while
AISAnimation.PutAIS[context3d, "BowlAndSpoon.ais" ]
Texture Mapped Glasses -- set color display to 24-bits
Reset[]
SetAntiAliased[]     -- same as pushing the "NoJaggy" button
ThreeDMisc.AddShapeAt[ context3d, "ChampagneGlass", "ChampagneGlass.shape", [-2.0, .0, .0], $ConvexPolygon, TRUE ]     -- TRUE means inside is visible
TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ], TextureMaps.TextureFromAIS[context3d, "/Cedar/CedarChest6.0/ThreeDWorld/Texture.ais", NIL] ]
ThreeDMisc.SetSmoothColor[ context3d, "ChampagneGlass", [0.0, 1.0, 0.2] ]
TextureMaps.MakeTxtrCoordsFromVtxNos[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ], 19, 20, [0.0, 0.0], [1.0, 3.0], [3.0, 3.0], [2.0, 0.0] ]
ThreeDScenes.SetLight[context3d, "Initial", [100.0, 0.0, 100.0], [1.0, 1.0, 0.7] ]
TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ] ]
ThreeDMisc.AddShapeAt[ context3d, "ChampagneGlass2", "ChampagneGlass.shape", [2.0, .0, .0], $ConvexPolygon, TRUE ]
TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass2" ], TextureMaps.TextureFromAIS[context3d, "/Cedar/CedarChest6.0/ThreeDWorld/Texture.ais", $Bump] ]
ThreeDMisc.SetSmoothColor[ context3d, "ChampagneGlass2", [0.0, 0.2, 1.0] ]
ThreeDMisc.SetShininess[ context3d, "ChampagneGlass2", 50.0 ]
TextureMaps.MakeTxtrCoordsFromVtxNos[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass2" ], 19, 20, [0.0, 0.0], [1.0, 3.0], [3.0, 3.0], [2.0, 0.0] ]
TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass2" ] ]
ThreeDScenes.SetView[context3d, [0.0, -12.0, 3.0], [0.0, 0.0, 0.0] ]
MakeFrame[]        -- this will take a while
Eggs with Space-Filling texture -- set color display to 24-bits
Reset[]
SetAntiAliased[]
ThreeDMisc.AddShapeAt[ context3d, "Egg", "UtahEgg.shape", [0.0, 0.0, 0.0]]
ThreeDMisc.SetSmoothColor[ context3d, "Egg", [0.8, 0.8, 0.8] ]
ThreeDMisc.SetShininess[ context3d, "Egg", 100.0 ]
ThreeDScenes.SetView[context3d, [0.0, -6.0, 0.0], [0.0, 0.0, 0.0] ]
SetViewPort[ [25.0, 140.0, 150.0, 200.0] ]
ThreeDMisc.ShadingProcName[context3d, "Egg", "TwistedStripes" ]
MakeFrame[]
AISAnimation.PutAIS[context3d, "TwistedEgg.ais" ]
ThreeDMisc.SetSmoothColor[ context3d, "Egg", [1.0, 1.0, 1.0] ]
ThreeDScenes.SetView[context: context3d, eyePoint: [6.0, -6.0, 3.0], ptOfInterest: [0.0, 0.0, 0.0], rollAngle: 90.0 ]
ThreeDMisc.GetShadingProcs[context3d, "Egg", ShadingProcs.GetLerpedVals, ShadingProcs.Wurlitzer ]
MakeFrame[]
AISAnimation.PutAIS[context3d, "WurlitzerEgg.ais" ]
ThreeDScenes.SetView[context: context3d, eyePoint: [4.0, -4.0, 2.0], ptOfInterest: [0.0, 0.0, 0.0] ]
SetViewPort[ [25.0, 140.0, 150.0, 200.0] ]
ThreeDMisc.GetShadingProcs[context3d, "Egg", ShadingProcs.GetLerpedVals, ShadingProcs.AddSwirl ]
MakeFrame[]
AISAnimation.PutAIS[context3d, "SwirlEgg.ais" ]
SetViewPort[ [175.0, 140.0, 150.0, 200.0] ]
ThreeDMisc.GetShadingProcs[context3d, "Egg", ShadingProcs.GetLerpedVals, ShadingProcs.AddSegue ]
MakeFrame[]
AISAnimation.PutAIS[context3d, "SegueEgg.ais" ]
SetViewPort[ [325.0, 140.0, 150.0, 200.0] ]
ThreeDMisc.GetShadingProcs[context3d, "Egg", ShadingProcs.GetLerpedVals, ShadingProcs.AddCrack ]
MakeFrame[]
AISAnimation.PutAIS[context3d, "CrackEgg.ais" ]
SetViewPort[ [475.0, 140.0, 150.0, 200.0] ]
ThreeDMisc.ShadingProcName[context3d, "Egg", "Marble" ]
MakeFrame[]
AISAnimation.PutAIS[context3d, "MarbleEgg.ais" ]
SetViewPort[ [475.0, 140.0, 150.0, 200.0] ]
ThreeDMisc.ShadingProcName[context3d, "Egg", "BurlWood" ]
MakeFrame[]
AISAnimation.PutAIS[context3d, "BurlWoodEgg.ais" ]
SetViewPort[ [175.0, 140.0, 150.0, 200.0] ]
ThreeDMisc.ShadingProcName[context3d, "Egg", "ZebraBurl" ]
MakeFrame[]
AISAnimation.PutAIS[context3d, "ZebraBurlEgg.ais" ]
Texture Mapped Eggs
Reset[]
ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [0.0, .0, .0] ]
TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], TextureMaps.TextureFromAIS[context3d, "/User/Crow/AIS/CheckerBoard.ais", NIL] ]
ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [1.0, 0.8, 0.5] ]
TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ]
ThreeDScenes.SetLight[context3d, "Initial", [100.0, 0.0, 100.0], [1.0, 1.0, 0.7] ]
ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ].orientation ← [-.2, -.2, 1.0]
ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ].rotation ← -20.0
MakeFrame[]
TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ] ]
MakeFrame[]
Comparitive egg shading
ThreeDMisc.StartLog[context3d]
Reset[]
ThreeDScenes.SetView[context3d, [0.0, -4.0, 0.0], [0.0, 0.0, 0.0] ]
ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [0.0, .0, .0] ]
ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [0.8, 0.8, 0.5] ]
SetViewPort[ [0.0, 225.0, 160.0, 225.0] ]
MakeFrame[]
SetAntiAliased[]
SetViewPort[ [160.0, 225.0, 160.0, 225.0] ]
MakeFrame[]
ThreeDMisc.SetShininess[ context3d, "UtahEgg", 50.0 ]
SetViewPort[ [320.0, 225.0, 160.0, 225.0] ]
MakeFrame[]
Reset[]
ThreeDScenes.SetView[context3d, [0.0, -4.0, 0.0], [0.0, 0.0, 0.0] ]
ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [0.0, .0, .0], $ConvexPolygon, TRUE ]
ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [0.8, 0.8, 0.5] ]
ThreeDMisc.SetTransmittance[context3d, "UtahEgg", .8 ]
ThreeDMisc.SetShininess[ context3d, "UtahEgg", 50.0 ]
SetViewPort[ [480.0, 225.0, 160.0, 225.0] ]
MakeFrame[]
Reset[]
ThreeDScenes.SetView[context3d, [0.0, -4.0, 0.0], [0.0, 0.0, 0.0] ]
ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [0.0, .0, .0] ]
ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [0.8, 0.8, 0.5] ]
ThreeDMisc.SetShininess[ context3d, "UtahEgg", 50.0 ]
TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], TextureMaps.TextureFromAIS[context3d, "/Cedar/CedarChest6.0/ThreeDWorld/Texture.ais", $Intensity] ]
TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ] ]
TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ]
SetViewPort[ [0.0, 3.0, 160.0, 225.0] ]
MakeFrame[]
TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], TextureMaps.TextureFromAIS[context3d, "/Cedar/CedarChest6.0/ThreeDWorld/Texture.ais", $Bump] ]
TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ] ]
SetViewPort[ [160.0, 3.0, 160.0, 225.0] ]
MakeFrame[]
Reset[]
ThreeDScenes.SetView[context3d, [0.0, -4.0, 0.0], [0.0, 0.0, 0.0] ]
ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [0.0, .0, .0] ]
ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [0.8, 0.8, 0.5] ]
ThreeDMisc.SetShininess[ context3d, "UtahEgg", 50.0 ]
ThreeDMisc.ShadingProcName[context3d, "UtahEgg", "TwistedStripes" ]
SetViewPort[ [320.0, 0.0, 160.0, 225.0] ]
MakeFrame[]
ThreeDMisc.ShadingProcName[context3d, "UtahEgg", "BurlWood" ]
SetViewPort[ [480.0, 0.0, 160.0, 225.0] ]
MakeFrame[]
SetViewPort[ [0.0, 0.0, 640.0, 450.0] ]
AISAnimation.PutAIS[ context3d, "ComparisonEggs.ais"]
ThreeDMisc.SetNamedColor[context3d, "vivid yellow"]
ThreeDMisc.ShowRope[context3d, 50.0, 230.0, "3 sec."]
ThreeDMisc.ShowRope[context3d, 210.0, 230.0, "70 sec."]
ThreeDMisc.ShowRope[context3d, 370.0, 230.0, "95 sec."]
ThreeDMisc.ShowRope[context3d, 530.0, 230.0, "190 sec."]
ThreeDMisc.ShowRope[context3d, 50.0, 8.0, "150 sec."]
ThreeDMisc.ShowRope[context3d, 210.0, 8.0, "300 sec."]
ThreeDMisc.ShowRope[context3d, 370.0, 8.0, "160 sec."]
ThreeDMisc.ShowRope[context3d, 530.0, 8.0, "540 sec."]
Anti-aliased checkerboards
Reset[]
SetAntiAliased[]
ThreeDMisc.AddShapeAt[ context3d, "CheckerBoard", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard", [1.0, 1.0, 0.0] ]
ThreeDMisc.SetAmbientLight[ context3d, [.7, .7, .7] ]
ThreeDScenes.SetLight[ context3d, "Initial", [0.0, 0.0, 100.0], [1.0, 1.0, 1.0] ]
ThreeDScenes.SetView[ context3d, [10, -30.0, 100.0], [0.0,-20.0, 0.0] ]
MakeFrame[]
ThreeDScenes.SetView[ context3d, [10, -30.0, 500.0], [0.0,-50.0, 0.0] ]
ShowShapes[]
ThreeDScenes.SetView[ context3d, [10, -30.0, 1000.0], [0.0, 100.0, 0.0] ]
ShowShapes[]
ThreeDScenes.SetView[ context3d, [10, -30.0, 1400.0], [0.0, 200.0, 0.0] ]
ShowShapes[]
ThreeDScenes.SetView[ context3d, [10, -30.0, 3000.0], [0.0, 500.0, 0.0] ]
ShowShapes[]
Three object animation
ThreeDMisc.AddShapeAt[ context3d, "CheckerBoard", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard", [.8, .4, .2] ]
ThreeDMisc.AddShapeAt[ context3d, "Icosahedron", "Icosahedron.shape", [2.0, 0.0, 0.0] ]
ThreeDMisc.GetPolygonColors[ context3d, "Icosahedron", "IcosahedronPolyColors.vtces" ]
ThreeDMisc.AddShapeAt[ context3d, "SoccerBall", "SoccerBall.shape", [-2.0, 0.0, 0.0] ]
ThreeDMisc.GetPolygonColors[context3d, "SoccerBall", "SoccerBallPolyColors.vtces" ]
Performance: 8-bit - 0.35s
ThreeDMisc.Hide[context3d, "CheckerBoard"]
ThreeDMisc.Hide[context3d, "SoccerBall"]
ThreeDMisc.Hide[context3d, "CutCube"]
ThreeDMisc.Hide[context3d, "Icosahedron"]
ThreeDMisc.Reveal[context3d, "CheckerBoard"]
ThreeDMisc.Reveal[context3d, "Icosahedron"]
ThreeDMisc.Reveal[context3d, "CutCube"]
context3d.shapes ← ThreeDScenes.DeleteShape[context3d.shapes, "CheckerBoard"]
context3d.shapes ← ThreeDScenes.DeleteShape[context3d.shapes, "CutCube"]
context3d.shapes ← ThreeDScenes.DeleteShape[context3d.shapes, "SoccerBall"]
context3d.shapes ← ThreeDScenes.DeleteShape[context3d.shapes, "Icosahedron"]
Glass, Banana, and Egg
Reset[]
ThreeDMisc.AddShapeAt[ context3d, "ChampagneGlass", "ChampagneGlass.shape", [1.0, 0.0, 0.0], $ConvexPolygon, TRUE ]
ThreeDMisc.SetSmoothColor[ context3d, "ChampagneGlass", [1.0, .0, 1.0] ]
ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [-1.5, .0, .0] ]
ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [1.0, .8, .5] ]
ThreeDMisc.AddShapeAt[ context3d, "Banana", "Banana.shape", [0.0, .0, .0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana", [1.0, .9, .1] ]
ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ].orientation ← [-1.0, 1.0, 0.0]
ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ].rotation ← 90.0
ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ].orientation ← [0.0, 0.0, 1.0]
ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ].rotation ← 45.0
ThreeDScenes.SetView[ context3d, [2.0, -10.0, 3.0], [0.0, 0.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [1.0, .8, .5] ]
TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], TextureMaps.TextureFromAIS[context3d, "/Cedar/CedarChest6.0/ThreeDWorld/Texture.ais", $Intensity] ]
TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ] ]
TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ]
ThreeDMisc.SetTransmittance[context3d, "ChampagneGlass", .8 ]
ThreeDMisc.ShadingProcName[context3d, "ChampagneGlass", "TwistedStripes" ]
SetAntiAliased[]
SetViewPort[ [120.0, 90.0, 400.0, 300.0] ]
ThreeDScenes.SetView[ context3d, [6.066667, -2.2, 3.266667], [0.0, 0.0, 0.0] ]
ThreeDMisc.SetShininess[ context3d, "ChampagneGlass", 50.0 ]
ThreeDMisc.SetShininess[ context3d, "UtahEgg", 50.0 ]
ThreeDMisc.AddShapeAt[ context3d, "CheckerBoard", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard", [.8, .4, .2] ]
ThreeDScenes.FindShape[ context3d.shapes, "CheckerBoard" ].centroid.z ← -5.0
ThreeDMisc.AddShapeAt[ context3d, "CheckerBoard2", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "CheckerBoard2" ], [8.0, 8.0, 0.0], [8.0, 8.0, 1.0], 90]
ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard2", [.1, .1, .1] ]
ThreeDScenes.FindShape[ context3d.shapes, "CheckerBoard2" ].centroid.z ← -5.0
ThreeDMisc.RemoteMakeFrame[context3d]
SummonerClientRequests
SummonerInfo
ThreeDMisc.GetShadingProcs[context3d, "ChampagneGlass", NIL, NIL ]
ThreeDMisc.OrbitEye[context3d, [0.0, -7.0, 2.0], [0.0, 0.0, 0.0], [-0.1, 0.0, 1.0], 40, "///Users/Crow.pa/AIS/StillCloser.ais", 40]
Performance: 24-bit - 8.4s, 8-bit - 1.0s, 4-bit - 1.0s
Performance: 24-bit - 8.4s, 8-bit - 3.3s, 8-bit dithered- 7.6s, 4-bit dithered - 7.0s
context3d.shapes ← ThreeDScenes.DeleteShape[context3d.shapes, "ChampagneGlass"]
context3d.shapes ← ThreeDScenes.DeleteShape[context3d.shapes, "UtahEgg"]
context3d.shapes ← ThreeDScenes.DeleteShape[context3d.shapes, "Banana"]
Glass alone
context3d.shapes ← ThreeDScenes.DeleteShape[context3d.shapes, "UtahEgg"]
context3d.shapes ← ThreeDScenes.DeleteShape[context3d.shapes, "Banana"]
ThreeDScenes.PlaceShape[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ], [0.0, 0.0, 0.0] ];
ThreeDMisc.SetSmoothColor[ context3d, "ChampagneGlass", [0.0, .9, .5] ]
context3d.props ← Atom.PutPropOnList[context3d.props, $BackGround, NIL] -- kill background
MakeFrame[]
ThreeDMisc.Hide[context3d, "ChampagneGlass"]
ThreeDMisc.Hide[context3d, "UtahEgg"]
ThreeDMisc.Hide[context3d, "Banana"]
ThreeDMisc.Reveal[context3d, "Banana"]
ThreeDMisc.Reveal[context3d, "ChampagneGlass"]
Single Square
ThreeDMisc.AddShapeAt[ context3d, "Square.obj", "/User/Crow/Shapes/Square.obj"]
ThreeDMisc.GetVertexColors[ context3d, "Square.obj", "/User/Crow/Shapes/SquareVtxColors.obj"]
ThreeDScenes.SetLight[context3d, "Initial", [0.0, 0.0, 100.0], [1.0, 1.0, 1.0] ]
ThreeDMisc.SetAmbientLight[ context3d, "light grey" ]
SetView[ [2, -3.0, 2], [0.0, 0.0, 0.0] ]
MakeFrame[]
A Single Anti-Aliased Colored Icosahedron -- set color display to 24-bits
Reset[]
SetAntiAliased[]
ThreeDMisc.AddShapeAt[ context3d, "Icosahedron", "Icosahedron.shape", [0.0, 0.0, 0.0] ]
ThreeDMisc.GetPolygonColors[ context3d, "Icosahedron", "IcosahedronPolyColors.vtces" ]
SetView[ [7.0, 7.0, 4.0], [0.0, 0.0, 0.0] ]
MakeFrame[]
Tiler Test Pattern
AddObject["/Cyan/Imaging/6.0/Imager3D/Shapes/TilerTest.obj", [0.0, 0.0, 0.0] ]
ColorSmoothObject["/Cyan/Imaging/6.0/Imager3D/Shapes/TilerTest.obj", [0.8, 0.8, 0.8] ]
SetView[ [0.0, -10.0, 0.0], [0.0, 0.0, 0.0] ]
MakeFrame[]
DeleteObject["/Cyan/Imaging/6.0/Imager3D/Shapes/TilerTest.obj"]
MultiProcess Rendering
Field of Bananas
Reset[]
ThreeDMisc.AddShapeAt[ context3d, "Banana00", "Banana.shape", [-4.0, -4.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana00", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana00" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana00" ], [.0, .0, .0], [.0, 1.0, .0], 0.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana01", "Banana.shape", [-2.0, -4.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana01", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana01" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana01" ], [.0, .0, .0], [.0, 1.0, .0], 50.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana02", "Banana.shape", [0.0, -4.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana02", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana02" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana02" ], [.0, .0, .0], [.0, 1.0, .0], 100.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana03", "Banana.shape", [2.0, -4.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana03", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana03" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana03" ], [.0, .0, .0], [.0, 1.0, .0], 150.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana04", "Banana.shape", [4.0, -4.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana04", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana04" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana04" ], [.0, .0, .0], [.0, 1.0, .0], 200.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana10", "Banana.shape", [-4.0, -2.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana10", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana10" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana10" ], [.0, .0, .0], [.0, 1.0, .0], 250.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana11", "Banana.shape", [-2.0, -2.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana11", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana11" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana11" ], [.0, .0, .0], [.0, 1.0, .0], 300.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana12", "Banana.shape", [0.0, -2.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana12", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana12" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana12" ], [.0, .0, .0], [.0, 1.0, .0], 350.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana13", "Banana.shape", [2.0, -2.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana13", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana13" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana13" ], [.0, .0, .0], [.0, 1.0, .0], 20.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana14", "Banana.shape", [4.0, -2.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana14", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana14" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana14" ], [.0, .0, .0], [.0, 1.0, .0], 37.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana20", "Banana.shape", [-4.0, 0.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana20", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana20" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana20" ], [.0, .0, .0], [.0, 1.0, .0], 140.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana21", "Banana.shape", [-2.0, 0.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana21", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana21" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana21" ], [.0, .0, .0], [.0, 1.0, .0], 120.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana22", "Banana.shape", [0.0, 0.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana22", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana22" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana22" ], [.0, .0, .0], [.0, 1.0, .0], 260.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana23", "Banana.shape", [2.0, 0.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana23", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana23" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana23" ], [.0, .0, .0], [.0, 1.0, .0], 340.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana24", "Banana.shape", [4.0, 0.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana24", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana24" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana24" ], [.0, .0, .0], [.0, 1.0, .0], 270.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana30", "Banana.shape", [-4.0, 2.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana30", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana30" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana30" ], [.0, .0, .0], [.0, 1.0, .0], 130.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana31", "Banana.shape", [-2.0, 2.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana31", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana31" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana31" ], [.0, .0, .0], [.0, 1.0, .0], 110.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana32", "Banana.shape", [0.0, 2.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana32", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana32" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana32" ], [.0, .0, .0], [.0, 1.0, .0], 25.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana33", "Banana.shape", [2.0, 2.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana33", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana33" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana33" ], [.0, .0, .0], [.0, 1.0, .0], 70.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana34", "Banana.shape", [4.0, 2.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana34", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana34" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana34" ], [.0, .0, .0], [.0, 1.0, .0], 60.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana40", "Banana.shape", [-4.0, 4.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana40", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana40" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana40" ], [.0, .0, .0], [.0, 1.0, .0], 20.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana41", "Banana.shape", [-2.0, 4.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana41", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana41" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana41" ], [.0, .0, .0], [.0, 1.0, .0], 180.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana42", "Banana.shape", [0.0, 4.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana42", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana42" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana42" ], [.0, .0, .0], [.0, 1.0, .0], 210.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana43", "Banana.shape", [2.0, 4.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana43", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana43" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana43" ], [.0, .0, .0], [.0, 1.0, .0], 37.0]
ThreeDMisc.AddShapeAt[ context3d, "Banana44", "Banana.shape", [4.0, 4.0, 0.0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana44", [1.0, 1.0, 0.1] ]
ThreeDScenes.FindShape[ context3d.shapes, "Banana44" ].orientation ← [0.0, 1.0, 0.0]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana44" ], [.0, .0, .0], [.0, 1.0, .0], 45.0]
ThreeDScenes.SetView[context3d, [-6.5, -13.8, 6.1], [0.6, 0.0, -1.0] ]
SetAntiAliased[]
ThreeDMisc.RemoteMakeFrame[context3d]
Five Object Image and CheckerBoard
Reset[]
ThreeDMisc.AddShapeAt[ context3d, "ChampagneGlass", "ChampagneGlass.shape", [1.0, 0.0, 0.0], $ConvexPolygon, TRUE ]
ThreeDMisc.SetSmoothColor[ context3d, "ChampagneGlass", [1.0, .0, 1.0] ]
ThreeDMisc.SetShininess[ context3d, "ChampagneGlass", 50.0 ]
ThreeDMisc.SetTransmittance[context3d, "ChampagneGlass", .8 ]
ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ].orientation ← [0.0, 0.0, 1.0]
ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ].rotation ← 45.0
ThreeDMisc.ShadingProcName[context3d, "ChampagneGlass", "TwistedStripes" ]
ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [-1.5, .0, .0] ]
ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [1.0, .8, .5] ]
ThreeDMisc.SetShininess[ context3d, "UtahEgg", 50.0 ]
TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], TextureMaps.TextureFromAIS[context3d, "/Cedar/CedarChest6.0/ThreeDWorld/Texture.ais", $Intensity] ]
TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ] ]
TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ]
ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ].orientation ← [-1.0, 1.0, 0.0]
ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ].rotation ← 90.0
ThreeDMisc.AddShapeAt[ context3d, "Banana", "Banana.shape", [0.0, .0, .0] ]
ThreeDMisc.SetSmoothColor[ context3d, "Banana", [1.0, .9, .1] ]
ThreeDMisc.AddShapeAt[ context3d, "Doughnut", "Doughnut.bezier", [0.0, 2.0, .0], $Bezier ]
ThreeDMisc.SetSmoothColor[ context3d, "Doughnut", [0.7, .4, .2] ]
ThreeDMisc.AddShapeAt[ context3d, "Teaspoon", "Teaspoon.bezier", [0.0, -2.0, .0], $Bezier ]
ThreeDScenes.FindShape[ context3d.shapes, "Teaspoon" ].orientation ← [0.0, 0.0, -1.0]
ThreeDMisc.SetSmoothColor[ context3d, "Teaspoon", [0.8, 0.8, 0.8] ]
ThreeDMisc.SetShininess[ context3d, "Teaspoon", 50.0 ]
ThreeDMisc.AddShapeAt[ context3d, "CheckerBoard", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ]
ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard", [.8, .4, .2] ]
ThreeDScenes.FindShape[ context3d.shapes, "CheckerBoard" ].centroid.z ← -5.0
ThreeDMisc.AddShapeAt[ context3d, "CheckerBoard2", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ]
ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "CheckerBoard2" ], [8.0, 8.0, 0.0], [8.0, 8.0, 1.0], 90]
ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard2", [.1, .1, .1] ]
ThreeDScenes.FindShape[ context3d.shapes, "CheckerBoard2" ].centroid.z ← -5.0
ThreeDScenes.SetView[ context3d, [6.066667, -2.2, 3.266667], [0.0, 0.0, 0.0] ]
SetAntiAliased[]
MakeFrame[]
AISAnimation.PutAIS[ context3d, "TestScene2.ais" ]
ThreeDMisc.RemoteMakeFrame[context3d]
AISAnimation.PutAIS[ context3d, "TestScene2Dist.ais" ]
SummonerClientRequests
SummonerInfo
ThreeDMisc.GetShadingProcs[context3d, "ChampagneGlass", NIL, NIL ]
&sgf[RenderOneShapeImpl]
" Shape: ///Users/crow.pa/threedworld/CheckerBoard.shape ConvexPolygon FALSE FacetedColor: 0.8 0.4 0.2 Light: Initial -100.0 -200.0 50.0 1.0 1.0 1.0 ShapeXfm: 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 -8.0 -8.0 -2.0 1.0 View: 6.066667 -2.2 3.266667 0.0 0.0 0.0 0.0 0.0 1.0 0.0 40.0 0.01 1000.0 Window: -1.0 -0.75 1.005 1.235 ViewPort: -1.0 0.0 202.0 247.0 ResultFile: ///Users/crow.pa/threedworld/CheckerBoard0.ais"
" Shape: ///Users/crow.pa/threedworld/CheckerBoard.shape ConvexPolygon FALSE FacetedColor: 0.8 0.4 0.2 Light: Initial -100.0 -200.0 50.0 1.0 1.0 1.0 ShapeXfm: 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 -8.0 -8.0 -2.0 1.0 View: 6.066667 -2.2 3.266667 0.0 0.0 0.0 0.0 0.0 1.0 0.0 40.0 0.01 1000.0 Window: 0.0 -0.75 1.005 1.235 ViewPort: 199.0 0.0 202.0 247.0 ResultFile: ///Users/crow.pa/threedworld/CheckerBoard1.ais"
" Shape: ///Users/crow.pa/threedworld/ChampagneGlass.shape ConvexPolygon TRUE SmoothColor: 1.0 0.0 1.0 Transmittance: 0.8 Shininess: 50.0 SolidTexture: TwistedStripes Light: Initial -100.0 -200.0 50.0 1.0 1.0 1.0 ShapeXfm: 0.7071069 -0.7071069 0.0 0.0 0.7071069 0.7071069 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 View: 6.066667 -2.2 3.266667 0.0 0.0 0.0 0.0 0.0 1.0 0.0 40.0 0.01 1000.0 Window: -0.33 -0.74 0.25375 1.095 ViewPort: 133.0 2.0 51.75 219.0 ResultFile: ///Users/crow.pa/threedworld/ChampagneGlass0.ais"
" Shape: ///Users/crow.pa/threedworld/ChampagneGlass.shape ConvexPolygon TRUE SmoothColor: 1.0 0.0 1.0 Transmittance: 0.8 Shininess: 50.0 SolidTexture: TwistedStripes Light: Initial -100.0 -200.0 50.0 1.0 1.0 1.0 ShapeXfm: 0.7071069 -0.7071069 0.0 0.0 0.7071069 0.7071069 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 View: 6.066667 -2.2 3.266667 0.0 0.0 0.0 0.0 0.0 1.0 0.0 40.0 0.01 1000.0 Window: -8.125001e-2 -0.74 0.25375 1.095 ViewPort: 182.75 2.0 51.75 219.0 ResultFile: ///Users/crow.pa/threedworld/ChampagneGlass1.ais"
" Shape: ///Users/crow.pa/threedworld/ChampagneGlass.shape ConvexPolygon TRUE SmoothColor: 1.0 0.0 1.0 Transmittance: 0.8 Shininess: 50.0 SolidTexture: TwistedStripes Light: Initial -100.0 -200.0 50.0 1.0 1.0 1.0 ShapeXfm: 0.7071069 -0.7071069 0.0 0.0 0.7071069 0.7071069 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 View: 6.066667 -2.2 3.266667 0.0 0.0 0.0 0.0 0.0 1.0 0.0 40.0 0.01 1000.0 Window: 0.1675 -0.74 0.25375 1.095 ViewPort: 232.5 2.0 51.75 219.0 ResultFile: ///Users/crow.pa/threedworld/ChampagneGlass2.ais"
" Shape: ///Users/crow.pa/threedworld/ChampagneGlass.shape ConvexPolygon TRUE SmoothColor: 1.0 0.0 1.0 Transmittance: 0.8 Shininess: 50.0 SolidTexture: TwistedStripes Light: Initial -100.0 -200.0 50.0 1.0 1.0 1.0 ShapeXfm: 0.7071069 -0.7071069 0.0 0.0 0.7071069 0.7071069 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 View: 6.066667 -2.2 3.266667 0.0 0.0 0.0 0.0 0.0 1.0 0.0 40.0 0.01 1000.0 Window: 0.41625 -0.74 0.25375 1.095 ViewPort: 282.25 2.0 51.75 219.0 ResultFile: ///Users/crow.pa/threedworld/ChampagneGlass3.ais"
ThreeDScenes.SetWindow[ context3d, [x: -1.0, y: -0.75, w: 1.0, h: 1.235] ]
SetViewPort[ [x: 0.0, y: 0.0, w: 200.0, h: 247.0] ]
MakeFrame[]
ThreeDScenes.SetWindow[ context3d, [x: 0.0, y: -0.75, w: 1.0, h: 1.235] ]
SetViewPort[ [x: 200.0, y: 0.0, w: 200.0, h: 247.0] ]
MakeFrame[]
ThreeDScenes.SetWindow[ context3d, [x: -0.33, y: -0.74, w: 0.24875, h: 1.095] ]
SetViewPort[ [x: 134.0, y: 2.0, w: 49.75, h: 219.0] ]
MakeFrame[]

ThreeDScenes.SetViewPort[ context3d, [0.0, 0.0, 640.0, 453.0], TRUE ] -- clears to black
ThreeDScenes.SetWindow[ context3d, [-0.5, -0.7, .5, .75] ]
SetViewPort[ [220.0, 90.0, 100.0, 150.0] ]
ShowShapes[]
ThreeDScenes.SetWindow[ context3d, [0.0, -0.45, .75, .5] ]
SetViewPort[ [320.0, 140.0, 150.0, 100.0] ]
ShowShapes[]
ThreeDScenes.SetWindow[ context3d, [-0.75, 0.05, .75, .5] ]
SetViewPort[ [170.0, 240.0, 150.0, 100.0] ]
ShowShapes[]
ThreeDScenes.SetWindow[ context3d, [0.0, 0.05, .5, .75] ]
SetViewPort[ [320.0, 240.0, 100.0, 150.0] ]
ShowShapes[]
SetViewPort[ [0.0, 0.0, 640.0, 453.0] ]
context3d.extentCovered ← [170, 471, 90, 391]
ThreeDScenes.FillInBackGround[context3d]
SetViewPort[ [0.0, 0.0, 640.0, 453.0] ]         -- defaults
ThreeDScenes.SetWindow[ context3d, [-1.0, -.7078125, 2.0, 1.415625] ]
EtherVoice Examples
Rock-a-by baby, in the tree top.
When the wind blows, the cradle will rock.
When the bough breaks, the cradle will fall.
and down will come baby, cradle and all.



Go in and out the window.
Go in and out the window.
Go in and out the window.
As we have done before.

 Hello, Ailey. How many daynosaurs do you have?
Different voices:
P;z:nb\ Beautiful Betty.
P;z:nd\ Doctor Dennis.
P;z:nf\ Frail Frank.
P;z:nh\ Huge Harry.
P;z:nk\ Kit the Kid.
P;z:np\ Perfect Paul. (default)
P;z:nr\ Rough Rita.
P;z:nu\ Uppity Ursula.
P;z:nw\ Whispery Wendy.
Speech rate:
P;z:ra 280\ speaks fast. rate in [120..350] words per minute; default 180 wpm.
P;z:ra 130\ speaks slowly.
P;z:ra 180\ normal.