Required Elements This is a diagram of the most simple possible scene that will render an object. These are the plugins and parameters you will need to create and connect:
You need a camera to shot rays through. Every scene should have a RenderView plugin. You need a light source or everything will be black. We used one type of light plugin here, but it can be any other type of light. You usually have at least one geometric object in the frame. This is the Node plugin with the attached GeomStaticMesh. The object won't be rendered unless a material is applied to it. Here we used MtlSingleBRDF, but there are many more material and BRDF types. Code Here's the complete code which constructs the minimal scene in different languages. It uses LightRectangle to get more directional lighting than the dome light would provide:
Python <code data-v-c2b1f83f=""><span data-v-c2b1f83f="" class="line"># Compatibility with Python 2.7.</span><span data-v-c2b1f83f="" class="line">from __future__ import print_function</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"># The directory containing the vray shared object should be present in the PYTHONPATH environment variable.</span><span data-v-c2b1f83f="" class="line"># Try to import the vray module from VRAY_SDK/python, if it is not in PYTHONPATH</span><span data-v-c2b1f83f="" class="line">import sys, os</span><span data-v-c2b1f83f="" class="line">VRAY_SDK = os.environ.get('VRAY_SDK')</span><span data-v-c2b1f83f="" class="line">if VRAY_SDK:</span><span data-v-c2b1f83f="" class="line"> sys.path.append(os.path.join(VRAY_SDK, 'python'))</span><span data-v-c2b1f83f="" class="line">import vray</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"># When VRAY_SDK is set, the App SDK binding will search for the VRaySDKLibrary binary and its dependencies inside VRAY_SDK/bin. </span><span data-v-c2b1f83f="" class="line"># If the directory structure of a product that uses App SDK doesn't include the binaries inside a /bin folder, VRAY_App SDK_BIN can be used instead of VRAY_SDK.</span><span data-v-c2b1f83f="" class="line"># In that case, the App SDK binding will try to load the binaries directly from the folder that VRAY_APPSDK_BIN points at.</span><span data-v-c2b1f83f="" class="line"># If no environment variables are set, the search path could be passed as the parameter of the function vray.setSDKLibraryPath(path) </span><span data-v-c2b1f83f="" class="line">with vray.VRayRenderer() as renderer:</span><span data-v-c2b1f83f="" class="line"> </span><span data-v-c2b1f83f="" class="line"> # Create a new static geometry</span><span data-v-c2b1f83f="" class="line"> mesh = renderer.classes.GeomStaticMesh()</span><span data-v-c2b1f83f="" class="line"> # Assign a box geometry</span><span data-v-c2b1f83f="" class="line"> mesh.vertices=vray.VectorList(</span><span data-v-c2b1f83f="" class="line"> vray.Vector(-26.7598, -30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(26.7598, -30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(-26.7598, 30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(26.7598, 30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(-26.7598, -30.5826, 125.389),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(26.7598, -30.5826, 125.389),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(-26.7598, 30.5826, 125.389),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(26.7598, 30.5826, 125.389)</span><span data-v-c2b1f83f="" class="line"> )</span><span data-v-c2b1f83f="" class="line"> mesh.faces=vray.IntList(</span><span data-v-c2b1f83f="" class="line"> 0, 2, 3,</span><span data-v-c2b1f83f="" class="line"> 3, 1, 0,</span><span data-v-c2b1f83f="" class="line"> 4, 5, 7,</span><span data-v-c2b1f83f="" class="line"> 7, 6, 4,</span><span data-v-c2b1f83f="" class="line"> 0, 1, 5,</span><span data-v-c2b1f83f="" class="line"> 5, 4, 0,</span><span data-v-c2b1f83f="" class="line"> 1, 3, 7,</span><span data-v-c2b1f83f="" class="line"> 7, 5, 1,</span><span data-v-c2b1f83f="" class="line"> 3, 2, 6,</span><span data-v-c2b1f83f="" class="line"> 6, 7, 3,</span><span data-v-c2b1f83f="" class="line"> 2, 0, 4,</span><span data-v-c2b1f83f="" class="line"> 4, 6, 2</span><span data-v-c2b1f83f="" class="line"> )</span><span data-v-c2b1f83f="" class="line"> mesh.normals=vray.VectorList(</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 0.0, -1.0), vray.Vector(0.0, 0.0, -1.0), vray.Vector(0.0, 0.0, -1.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 0.0, -1.0), vray.Vector(0.0, 0.0, -1.0), vray.Vector(0.0, 0.0, -1.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 0.0, 1.0), vray.Vector(0.0, 0.0, 1.0), vray.Vector(0.0, 0.0, 1.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 0.0, 1.0), vray.Vector(0.0, 0.0, 1.0), vray.Vector(0.0, 0.0, 1.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, -1.0, 0.0), vray.Vector(0.0, -1.0, 0.0), vray.Vector(0.0, -1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, -1.0, 0.0), vray.Vector(0.0, -1.0, 0.0), vray.Vector(0.0, -1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(1.0, 0.0, 0.0), vray.Vector(1.0, 0.0, 0.0), vray.Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(1.0, 0.0, 0.0), vray.Vector(1.0, 0.0, 0.0), vray.Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 1.0, 0.0), vray.Vector(0.0, 1.0, 0.0), vray.Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 1.0, 0.0), vray.Vector(0.0, 1.0, 0.0), vray.Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(-1.0, 0.0, 0.0), vray.Vector(-1.0, 0.0, 0.0), vray.Vector(-1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(-1.0, 0.0, 0.0), vray.Vector(-1.0, 0.0, 0.0), vray.Vector(-1.0, 0.0, 0.0)</span><span data-v-c2b1f83f="" class="line"> )</span><span data-v-c2b1f83f="" class="line"> mesh.faceNormals=vray.IntList(</span><span data-v-c2b1f83f="" class="line"> 0, 1, 2,</span><span data-v-c2b1f83f="" class="line"> 3, 4, 5,</span><span data-v-c2b1f83f="" class="line"> 6, 7, 8,</span><span data-v-c2b1f83f="" class="line"> 9, 10, 11,</span><span data-v-c2b1f83f="" class="line"> 12, 13, 14,</span><span data-v-c2b1f83f="" class="line"> 15, 16, 17,</span><span data-v-c2b1f83f="" class="line"> 18, 19, 20,</span><span data-v-c2b1f83f="" class="line"> 21, 22, 23,</span><span data-v-c2b1f83f="" class="line"> 24, 25, 26,</span><span data-v-c2b1f83f="" class="line"> 27, 28, 29,</span><span data-v-c2b1f83f="" class="line"> 30, 31, 32,</span><span data-v-c2b1f83f="" class="line"> 33, 34, 35</span><span data-v-c2b1f83f="" class="line"> )</span><span data-v-c2b1f83f="" class="line"> </span><span data-v-c2b1f83f="" class="line"> # Create a BRDF with diffuse color</span><span data-v-c2b1f83f="" class="line"> newBRDF = renderer.classes.BRDFDiffuse()</span><span data-v-c2b1f83f="" class="line"> # We specify solid green color</span><span data-v-c2b1f83f="" class="line"> newBRDF.color = vray.Color(0.0, 1.0, 0.0)</span><span data-v-c2b1f83f="" class="line"> </span><span data-v-c2b1f83f="" class="line"> # Create a new material with single BRDF</span><span data-v-c2b1f83f="" class="line"> newMaterial = renderer.classes.MtlSingleBRDF()</span><span data-v-c2b1f83f="" class="line"> # Assign the BRDF to the material</span><span data-v-c2b1f83f="" class="line"> newMaterial.brdf = newBRDF</span><span data-v-c2b1f83f="" class="line"> </span><span data-v-c2b1f83f="" class="line"> # Create a new node for the box</span><span data-v-c2b1f83f="" class="line"> newNode = renderer.classes.Node()</span><span data-v-c2b1f83f="" class="line"> newNode.material = newMaterial # Assign the new material to the new node</span><span data-v-c2b1f83f="" class="line"> newNode.geometry = mesh # Assign the mesh</span><span data-v-c2b1f83f="" class="line"> # We must specify transform in order to position the box in the world</span><span data-v-c2b1f83f="" class="line"> newNode.transform = vray.Transform(vray.Matrix(vray.Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 0.0, 1.0)), vray.Vector(-20.6777, 131.6402, 0))</span><span data-v-c2b1f83f="" class="line"> </span><span data-v-c2b1f83f="" class="line"> # Create the light</span><span data-v-c2b1f83f="" class="line"> light = renderer.classes.LightRectangle()</span><span data-v-c2b1f83f="" class="line"> # We must specify transform in order to position the light in the world</span><span data-v-c2b1f83f="" class="line"> light.transform = vray.Transform(vray.Matrix(vray.Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 0.0, 1.0)), vray.Vector(-20.6777, 131.6402, 150))</span><span data-v-c2b1f83f="" class="line"> # Set white color</span><span data-v-c2b1f83f="" class="line"> light.color = vray.AColor(1.0, 1.0, 1.0)</span><span data-v-c2b1f83f="" class="line"> # Increase the light's size (by default it's 1x1)</span><span data-v-c2b1f83f="" class="line"> light.u_size = 50</span><span data-v-c2b1f83f="" class="line"> light.v_size = 50</span><span data-v-c2b1f83f="" class="line"> # Increase the default intensity</span><span data-v-c2b1f83f="" class="line"> light.intensity = 100</span><span data-v-c2b1f83f="" class="line"> </span><span data-v-c2b1f83f="" class="line"> # Create the camera</span><span data-v-c2b1f83f="" class="line"> renderView = renderer.classes.RenderView()</span><span data-v-c2b1f83f="" class="line"> # Position the camera towards the box</span><span data-v-c2b1f83f="" class="line"> renderView.transform=vray.Transform(vray.Matrix(vray.Vector(0.92, 0.37, 0.0), vray.Vector(0.12, -0.3, 0.94), vray.Vector(0.35, -0.87, -0.32)), vray.Vector(59, -140, 44))</span><span data-v-c2b1f83f="" class="line"> # Set Field of view (horizontal) in radians</span><span data-v-c2b1f83f="" class="line"> renderView.fov=1.65806</span><span data-v-c2b1f83f="" class="line"> </span><span data-v-c2b1f83f="" class="line"> renderer.start()</span><span data-v-c2b1f83f="" class="line"> renderer.waitForRenderEnd(60000)</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"></span></code>
C++ <code data-v-c2b1f83f=""><span data-v-c2b1f83f="" class="line">#define VRAY_RUNTIME_LOAD_PRIMARY</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line">#include "vraysdk.hpp"</span><span data-v-c2b1f83f="" class="line">#include "vrayplugins.hpp"</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line">using namespace VRay;</span><span data-v-c2b1f83f="" class="line">using namespace VRay::Plugins;</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line">int main(int argc, char* argv[]) {</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // The first parameter is the VRaySDKLibrary DLL/SO/DYLIB name (full path optional). Here the default name is used.</span><span data-v-c2b1f83f="" class="line"> // When VRAY_SDK is set, the App SDK binding will search for the VRaySDKLibrary binary and its dependencies inside VRAY_SDK/bin. </span><span data-v-c2b1f83f="" class="line"> // If the directory structure of a product that uses App SDK doesn't include the binaries inside a /bin folder, VRAY_APPSDK_BIN can be used instead of VRAY_SDK.</span><span data-v-c2b1f83f="" class="line"> // In that case, the App SDK binding will try to load the binaries directly from the folder that VRAY_APPSDK_BIN points at.</span><span data-v-c2b1f83f="" class="line"> // If no environment variables are set, the full path containing the VRaySDKLibrary filename could be passed as the first parameter.</span><span data-v-c2b1f83f="" class="line"> // The second parameter is enable or disable the V-Ray Frame Buffer (VFB)</span><span data-v-c2b1f83f="" class="line"> VRayInit init(NULL, true);</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Create an instance of VRayRenderer with default options</span><span data-v-c2b1f83f="" class="line"> VRayRenderer renderer;</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Create a new static geometry</span><span data-v-c2b1f83f="" class="line"> GeomStaticMesh mesh = renderer.newPlugin<GeomStaticMesh>();</span><span data-v-c2b1f83f="" class="line"> // Assign a box geometry</span><span data-v-c2b1f83f="" class="line"> Vector vertices[] = {</span><span data-v-c2b1f83f="" class="line"> Vector(-26.7598, -30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(26.7598, -30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(-26.7598, 30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(26.7598, 30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(-26.7598, -30.5826, 125.389),</span><span data-v-c2b1f83f="" class="line"> Vector(26.7598, -30.5826, 125.389),</span><span data-v-c2b1f83f="" class="line"> Vector(-26.7598, 30.5826, 125.389),</span><span data-v-c2b1f83f="" class="line"> Vector(26.7598, 30.5826, 125.389)</span><span data-v-c2b1f83f="" class="line"> };</span><span data-v-c2b1f83f="" class="line"> mesh.set_vertices(VectorList(vertices, vertices + 8));</span><span data-v-c2b1f83f="" class="line"> int faces[] = {</span><span data-v-c2b1f83f="" class="line"> 0, 2, 3,</span><span data-v-c2b1f83f="" class="line"> 3, 1, 0,</span><span data-v-c2b1f83f="" class="line"> 4, 5, 7,</span><span data-v-c2b1f83f="" class="line"> 7, 6, 4,</span><span data-v-c2b1f83f="" class="line"> 0, 1, 5,</span><span data-v-c2b1f83f="" class="line"> 5, 4, 0,</span><span data-v-c2b1f83f="" class="line"> 1, 3, 7,</span><span data-v-c2b1f83f="" class="line"> 7, 5, 1,</span><span data-v-c2b1f83f="" class="line"> 3, 2, 6,</span><span data-v-c2b1f83f="" class="line"> 6, 7, 3,</span><span data-v-c2b1f83f="" class="line"> 2, 0, 4,</span><span data-v-c2b1f83f="" class="line"> 4, 6, 2</span><span data-v-c2b1f83f="" class="line"> };</span><span data-v-c2b1f83f="" class="line"> mesh.set_faces(IntList(faces, faces + 36));</span><span data-v-c2b1f83f="" class="line"> Vector normals[] = {</span><span data-v-c2b1f83f="" class="line"> Vector(0.0, 0.0, -1.0), Vector(0.0, 0.0, -1.0), Vector(0.0, 0.0, -1.0),</span><span data-v-c2b1f83f="" class="line"> Vector(0.0, 0.0, -1.0), Vector(0.0, 0.0, -1.0), Vector(0.0, 0.0, -1.0),</span><span data-v-c2b1f83f="" class="line"> Vector(0.0, 0.0, 1.0), Vector(0.0, 0.0, 1.0), Vector(0.0, 0.0, 1.0),</span><span data-v-c2b1f83f="" class="line"> Vector(0.0, 0.0, 1.0), Vector(0.0, 0.0, 1.0), Vector(0.0, 0.0, 1.0),</span><span data-v-c2b1f83f="" class="line"> Vector(0.0, -1.0, 0.0), Vector(0.0, -1.0, 0.0), Vector(0.0, -1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(0.0, -1.0, 0.0), Vector(0.0, -1.0, 0.0), Vector(0.0, -1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(1.0, 0.0, 0.0), Vector(1.0, 0.0, 0.0), Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(1.0, 0.0, 0.0), Vector(1.0, 0.0, 0.0), Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(0.0, 1.0, 0.0), Vector(0.0, 1.0, 0.0), Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(0.0, 1.0, 0.0), Vector(0.0, 1.0, 0.0), Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(-1.0, 0.0, 0.0), Vector(-1.0, 0.0, 0.0), Vector(-1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(-1.0, 0.0, 0.0), Vector(-1.0, 0.0, 0.0), Vector(-1.0, 0.0, 0.0)</span><span data-v-c2b1f83f="" class="line"> };</span><span data-v-c2b1f83f="" class="line"> mesh.set_normals(VectorList(normals, normals + 36));</span><span data-v-c2b1f83f="" class="line"> int faceNormals[] = {</span><span data-v-c2b1f83f="" class="line"> 0, 1, 2,</span><span data-v-c2b1f83f="" class="line"> 3, 4, 5,</span><span data-v-c2b1f83f="" class="line"> 6, 7, 8,</span><span data-v-c2b1f83f="" class="line"> 9, 10, 11,</span><span data-v-c2b1f83f="" class="line"> 12, 13, 14,</span><span data-v-c2b1f83f="" class="line"> 15, 16, 17,</span><span data-v-c2b1f83f="" class="line"> 18, 19, 20,</span><span data-v-c2b1f83f="" class="line"> 21, 22, 23,</span><span data-v-c2b1f83f="" class="line"> 24, 25, 26,</span><span data-v-c2b1f83f="" class="line"> 27, 28, 29,</span><span data-v-c2b1f83f="" class="line"> 30, 31, 32,</span><span data-v-c2b1f83f="" class="line"> 33, 34, 35</span><span data-v-c2b1f83f="" class="line"> };</span><span data-v-c2b1f83f="" class="line"> mesh.set_faceNormals(IntList(faceNormals, faceNormals + 36));</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Create a BRDF with diffuse color</span><span data-v-c2b1f83f="" class="line"> BRDFDiffuse newBRDF = renderer.newPlugin<BRDFDiffuse>();</span><span data-v-c2b1f83f="" class="line"> // We specify solid green color</span><span data-v-c2b1f83f="" class="line"> newBRDF.set_color(Color(0.0, 1.0, 0.0));</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Create a new material with single BRDF</span><span data-v-c2b1f83f="" class="line"> MtlSingleBRDF newMaterial = renderer.newPlugin<MtlSingleBRDF>();</span><span data-v-c2b1f83f="" class="line"> // Assign the BRDF to the material</span><span data-v-c2b1f83f="" class="line"> newMaterial.set_brdf(newBRDF);</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Create a new node for the box</span><span data-v-c2b1f83f="" class="line"> Node newNode = renderer.newPlugin<Node>();</span><span data-v-c2b1f83f="" class="line"> newNode.set_material(newMaterial); // Assign the new material to the new node</span><span data-v-c2b1f83f="" class="line"> newNode.set_geometry(mesh); // Assign the mesh</span><span data-v-c2b1f83f="" class="line"> // We must specify transform in order to position the box in the world</span><span data-v-c2b1f83f="" class="line"> newNode.set_transform(Transform(Matrix(Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(0.0, 0.0, 1.0)), Vector(-20.6777, 131.6402, 0)));</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Create the light</span><span data-v-c2b1f83f="" class="line"> LightRectangle light = renderer.newPlugin<LightRectangle>();</span><span data-v-c2b1f83f="" class="line"> // We must specify transform in order to position the light in the world</span><span data-v-c2b1f83f="" class="line"> light.set_transform(Transform(Matrix(Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(0.0, 0.0, 1.0)), Vector(-20.6777, 131.6402, 150)));</span><span data-v-c2b1f83f="" class="line"> // Set white color</span><span data-v-c2b1f83f="" class="line"> light.set_color(AColor(1.0, 1.0, 1.0));</span><span data-v-c2b1f83f="" class="line"> // Increase the light's size (by default it's 1x1)</span><span data-v-c2b1f83f="" class="line"> light.set_u_size(50);</span><span data-v-c2b1f83f="" class="line"> light.set_v_size(50);</span><span data-v-c2b1f83f="" class="line"> // Increase the default intensity</span><span data-v-c2b1f83f="" class="line"> light.set_intensity(100);</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Create the camera</span><span data-v-c2b1f83f="" class="line"> RenderView renderView = renderer.newPlugin<RenderView>();</span><span data-v-c2b1f83f="" class="line"> // Position the camera towards the box</span><span data-v-c2b1f83f="" class="line"> renderView.set_transform(Transform(Matrix(Vector(0.92, 0.37, 0.0),</span><span data-v-c2b1f83f="" class="line"> Vector(0.12, -0.3, 0.94),</span><span data-v-c2b1f83f="" class="line"> Vector(0.35, -0.87, -0.32)), Vector(59.0, -140, 44)));</span><span data-v-c2b1f83f="" class="line"> // Set Field of view(horizontal) in radians</span><span data-v-c2b1f83f="" class="line"> renderView.set_fov(1.65806f);</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Start rendering</span><span data-v-c2b1f83f="" class="line"> renderer.startSync();</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Wait until rendering has finished or 60000ms have elapsed</span><span data-v-c2b1f83f="" class="line"> renderer.waitForRenderEnd(60000);</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> return 0;</span><span data-v-c2b1f83f="" class="line">}</span></code>
C#.NET <code data-v-c2b1f83f=""><span data-v-c2b1f83f="" class="line">using System;</span><span data-v-c2b1f83f="" class="line">using System.IO;</span><span data-v-c2b1f83f="" class="line">using VRay;</span><span data-v-c2b1f83f="" class="line">using VRay.Plugins;</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line">namespace ConsoleApplication1</span><span data-v-c2b1f83f="" class="line">{</span><span data-v-c2b1f83f="" class="line"> class Program</span><span data-v-c2b1f83f="" class="line"> {</span><span data-v-c2b1f83f="" class="line"> // When VRAY_SDK is set, the App SDK binding will search for the VRaySDKLibrary binary and its dependencies inside VRAY_SDK/bin. </span><span data-v-c2b1f83f="" class="line"> // If the directory structure of a product that uses App SDK doesn't include the binaries inside a /bin folder, VRAY_APPSDK_BIN can be used instead of VRAY_SDK.</span><span data-v-c2b1f83f="" class="line"> // In that case, the App SDK binding will try to load the binaries directly from the folder that VRAY_APPSDK_BIN points at.</span><span data-v-c2b1f83f="" class="line"> // If no environment variables are set, the search path could be passed as the parameter of the function Globals.SetSDKLibraryPath(path);</span><span data-v-c2b1f83f="" class="line"> static string SCENE_PATH = Path.Combine(Environment.GetEnvironmentVariable("VRAY_SDK"), "scenes");</span><span data-v-c2b1f83f="" class="line"> static void HandleStartEvent(object source, System.EventArgs e)</span><span data-v-c2b1f83f="" class="line"> {</span><span data-v-c2b1f83f="" class="line"> Console.WriteLine("The V-Ray render process has started!");</span><span data-v-c2b1f83f="" class="line"> }</span><span data-v-c2b1f83f="" class="line"> static void Main(string[] args)</span><span data-v-c2b1f83f="" class="line"> {</span><span data-v-c2b1f83f="" class="line"> try</span><span data-v-c2b1f83f="" class="line"> {</span><span data-v-c2b1f83f="" class="line"> using (VRayRenderer renderer = new VRayRenderer())</span><span data-v-c2b1f83f="" class="line"> {</span><span data-v-c2b1f83f="" class="line"> // Create a new static geometry</span><span data-v-c2b1f83f="" class="line"> GeomStaticMesh mesh = renderer.NewPlugin<GeomStaticMesh>();</span><span data-v-c2b1f83f="" class="line"> // Assign a box geometry</span><span data-v-c2b1f83f="" class="line"> Vector[] vertices = new Vector[] {</span><span data-v-c2b1f83f="" class="line"> new Vector(-26.7598, -30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(26.7598, -30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(-26.7598, 30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(26.7598, 30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(-26.7598, -30.5826, 125.389),</span><span data-v-c2b1f83f="" class="line"> new Vector(26.7598, -30.5826, 125.389),</span><span data-v-c2b1f83f="" class="line"> new Vector(-26.7598, 30.5826, 125.389),</span><span data-v-c2b1f83f="" class="line"> new Vector(26.7598, 30.5826, 125.389)</span><span data-v-c2b1f83f="" class="line"> };</span><span data-v-c2b1f83f="" class="line"> mesh.Vertices = vertices;</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> int[] faces = new int[]{</span><span data-v-c2b1f83f="" class="line"> 0, 2, 3,</span><span data-v-c2b1f83f="" class="line"> 3, 1, 0,</span><span data-v-c2b1f83f="" class="line"> 4, 5, 7,</span><span data-v-c2b1f83f="" class="line"> 7, 6, 4,</span><span data-v-c2b1f83f="" class="line"> 0, 1, 5,</span><span data-v-c2b1f83f="" class="line"> 5, 4, 0,</span><span data-v-c2b1f83f="" class="line"> 1, 3, 7,</span><span data-v-c2b1f83f="" class="line"> 7, 5, 1,</span><span data-v-c2b1f83f="" class="line"> 3, 2, 6,</span><span data-v-c2b1f83f="" class="line"> 6, 7, 3,</span><span data-v-c2b1f83f="" class="line"> 2, 0, 4,</span><span data-v-c2b1f83f="" class="line"> 4, 6, 2</span><span data-v-c2b1f83f="" class="line"> };</span><span data-v-c2b1f83f="" class="line"> mesh.Faces = faces;</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> Vector[] normals = new Vector[] {</span><span data-v-c2b1f83f="" class="line"> new Vector(0.0, 0.0, -1.0), new Vector(0.0, 0.0, -1.0), new Vector(0.0, 0.0, -1.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.0, 0.0, -1.0), new Vector(0.0, 0.0, -1.0), new Vector(0.0, 0.0, -1.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.0, 0.0, 1.0), new Vector(0.0, 0.0, 1.0), new Vector(0.0, 0.0, 1.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.0, 0.0, 1.0), new Vector(0.0, 0.0, 1.0), new Vector(0.0, 0.0, 1.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.0, -1.0, 0.0), new Vector(0.0, -1.0, 0.0), new Vector(0.0, -1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.0, -1.0, 0.0), new Vector(0.0, -1.0, 0.0), new Vector(0.0, -1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(1.0, 0.0, 0.0), new Vector(1.0, 0.0, 0.0), new Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(1.0, 0.0, 0.0), new Vector(1.0, 0.0, 0.0), new Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.0, 1.0, 0.0), new Vector(0.0, 1.0, 0.0), new Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.0, 1.0, 0.0), new Vector(0.0, 1.0, 0.0), new Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(-1.0, 0.0, 0.0), new Vector(-1.0, 0.0, 0.0), new Vector(-1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(-1.0, 0.0, 0.0), new Vector(-1.0, 0.0, 0.0), new Vector(-1.0, 0.0, 0.0)</span><span data-v-c2b1f83f="" class="line"> };</span><span data-v-c2b1f83f="" class="line"> mesh.Normals = normals;</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> int[] faceNormals = new int[]{</span><span data-v-c2b1f83f="" class="line"> 0, 1, 2,</span><span data-v-c2b1f83f="" class="line"> 3, 4, 5,</span><span data-v-c2b1f83f="" class="line"> 6, 7, 8,</span><span data-v-c2b1f83f="" class="line"> 9, 10, 11,</span><span data-v-c2b1f83f="" class="line"> 12, 13, 14,</span><span data-v-c2b1f83f="" class="line"> 15, 16, 17,</span><span data-v-c2b1f83f="" class="line"> 18, 19, 20,</span><span data-v-c2b1f83f="" class="line"> 21, 22, 23,</span><span data-v-c2b1f83f="" class="line"> 24, 25, 26,</span><span data-v-c2b1f83f="" class="line"> 27, 28, 29,</span><span data-v-c2b1f83f="" class="line"> 30, 31, 32,</span><span data-v-c2b1f83f="" class="line"> 33, 34, 35</span><span data-v-c2b1f83f="" class="line"> };</span><span data-v-c2b1f83f="" class="line"> mesh.FaceNormals = faceNormals;</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Create a BRDF with diffuse color</span><span data-v-c2b1f83f="" class="line"> BRDFDiffuse newBRDF = renderer.NewPlugin<BRDFDiffuse>();</span><span data-v-c2b1f83f="" class="line"> // We specify solid green color</span><span data-v-c2b1f83f="" class="line"> newBRDF.Color = new Color(0.0f, 1.0f, 0.0f);</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Create a new material with single BRDF</span><span data-v-c2b1f83f="" class="line"> MtlSingleBRDF newMaterial = renderer.NewPlugin<MtlSingleBRDF>();</span><span data-v-c2b1f83f="" class="line"> // Assign the BRDF to the material</span><span data-v-c2b1f83f="" class="line"> newMaterial.Brdf = newBRDF;</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Create a new node for the box</span><span data-v-c2b1f83f="" class="line"> Node newNode = renderer.NewPlugin<Node>();</span><span data-v-c2b1f83f="" class="line"> newNode.Material = newMaterial; // Assign the new material to the new node</span><span data-v-c2b1f83f="" class="line"> newNode.Geometry = mesh; // Assign the mesh</span><span data-v-c2b1f83f="" class="line"> // We must specify transform in order to position the box in the world</span><span data-v-c2b1f83f="" class="line"> newNode.Transform = new Transform(new Matrix(new Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.0, 0.0, 1.0)), new Vector(-20.6777, 131.6402, 0));</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Create the light</span><span data-v-c2b1f83f="" class="line"> LightRectangle light = renderer.NewPlugin<LightRectangle>();</span><span data-v-c2b1f83f="" class="line"> // We must specify transform in order to position the light in the world</span><span data-v-c2b1f83f="" class="line"> light.Transform = new Transform(new Matrix(new Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.0, 0.0, 1.0)), new Vector(-20.6777, 131.6402, 150));</span><span data-v-c2b1f83f="" class="line"> // Set white color</span><span data-v-c2b1f83f="" class="line"> light.Color = new AColor(1.0f, 1.0f, 1.0f);</span><span data-v-c2b1f83f="" class="line"> // Increase the light's size (by default it's 1x1)</span><span data-v-c2b1f83f="" class="line"> light.USize = 50;</span><span data-v-c2b1f83f="" class="line"> light.VSize = 50;</span><span data-v-c2b1f83f="" class="line"> // Increase the default intensity</span><span data-v-c2b1f83f="" class="line"> light.Intensity = 100;</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> // Create the camera</span><span data-v-c2b1f83f="" class="line"> RenderView renderView = renderer.NewPlugin<RenderView>();</span><span data-v-c2b1f83f="" class="line"> // Position the camera towards the box</span><span data-v-c2b1f83f="" class="line"> renderView.Transform = new Transform(new Matrix(new Vector(0.92, 0.37, 0.0),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.12, -0.3, 0.94),</span><span data-v-c2b1f83f="" class="line"> new Vector(0.35, -0.87, -0.32)), new Vector(59, -140, 44));</span><span data-v-c2b1f83f="" class="line"> // Set Field of view (horizontal) in radians</span><span data-v-c2b1f83f="" class="line"> renderView.Fov = 1.65806f;</span><span data-v-c2b1f83f="" class="line"> renderer.Start();</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line"> renderer.WaitForRenderEnd(60000);</span><span data-v-c2b1f83f="" class="line"> }</span><span data-v-c2b1f83f="" class="line"> }</span><span data-v-c2b1f83f="" class="line"> catch (Exception ex)</span><span data-v-c2b1f83f="" class="line"> {</span><span data-v-c2b1f83f="" class="line"> Console.WriteLine(ex.ToString());</span><span data-v-c2b1f83f="" class="line"> }</span><span data-v-c2b1f83f="" class="line"> }</span><span data-v-c2b1f83f="" class="line"> }</span><span data-v-c2b1f83f="" class="line">}</span></code>
Node.js <code data-v-c2b1f83f=""><span data-v-c2b1f83f="" class="line">var path = require('path');</span><span data-v-c2b1f83f="" class="line">var vray = require(path.join(process.env.VRAY_SDK, 'node', 'vray'));</span><span data-v-c2b1f83f="" class="line">// When VRAY_SDK is set, the App SDK binding will search for the VRaySDKLibrary binary and its dependencies inside VRAY_SDK/bin. </span><span data-v-c2b1f83f="" class="line">// If the directory structure of a product that uses App SDK doesn't include the binaries inside a /bin folder, VRAY_APPSDK_BIN can be used instead of VRAY_SDK.</span><span data-v-c2b1f83f="" class="line">// In that case, the App SDK binding will try to load the binaries directly from the folder that VRAY_APPSDK_BIN points at.</span><span data-v-c2b1f83f="" class="line">// If no environment variables are set, the search path could be passed as the parameter of the function vray.setSDKLibraryPath(path);</span><span data-v-c2b1f83f="" class="line">var renderer = vray.VRayRenderer();</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line">// Create a new static geometry</span><span data-v-c2b1f83f="" class="line">var mesh = renderer.classes.GeomStaticMesh();</span><span data-v-c2b1f83f="" class="line">// Assign a box geometry</span><span data-v-c2b1f83f="" class="line">mesh.vertices = vray.VectorList(</span><span data-v-c2b1f83f="" class="line"> vray.Vector(-26.7598, -30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(26.7598, -30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(-26.7598, 30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(26.7598, 30.5826, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(-26.7598, -30.5826, 125.389),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(26.7598, -30.5826, 125.389),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(-26.7598, 30.5826, 125.389),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(26.7598, 30.5826, 125.389)</span><span data-v-c2b1f83f="" class="line">);</span><span data-v-c2b1f83f="" class="line">mesh.faces = vray.IntList(</span><span data-v-c2b1f83f="" class="line"> 0, 2, 3,</span><span data-v-c2b1f83f="" class="line"> 3, 1, 0,</span><span data-v-c2b1f83f="" class="line"> 4, 5, 7,</span><span data-v-c2b1f83f="" class="line"> 7, 6, 4,</span><span data-v-c2b1f83f="" class="line"> 0, 1, 5,</span><span data-v-c2b1f83f="" class="line"> 5, 4, 0,</span><span data-v-c2b1f83f="" class="line"> 1, 3, 7,</span><span data-v-c2b1f83f="" class="line"> 7, 5, 1,</span><span data-v-c2b1f83f="" class="line"> 3, 2, 6,</span><span data-v-c2b1f83f="" class="line"> 6, 7, 3,</span><span data-v-c2b1f83f="" class="line"> 2, 0, 4,</span><span data-v-c2b1f83f="" class="line"> 4, 6, 2</span><span data-v-c2b1f83f="" class="line">);</span><span data-v-c2b1f83f="" class="line">mesh.normals = vray.VectorList(</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 0.0, -1.0), vray.Vector(0.0, 0.0, -1.0), vray.Vector(0.0, 0.0, -1.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 0.0, -1.0), vray.Vector(0.0, 0.0, -1.0), vray.Vector(0.0, 0.0, -1.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 0.0, 1.0), vray.Vector(0.0, 0.0, 1.0), vray.Vector(0.0, 0.0, 1.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 0.0, 1.0), vray.Vector(0.0, 0.0, 1.0), vray.Vector(0.0, 0.0, 1.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, -1.0, 0.0), vray.Vector(0.0, -1.0, 0.0), vray.Vector(0.0, -1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, -1.0, 0.0), vray.Vector(0.0, -1.0, 0.0), vray.Vector(0.0, -1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(1.0, 0.0, 0.0), vray.Vector(1.0, 0.0, 0.0), vray.Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(1.0, 0.0, 0.0), vray.Vector(1.0, 0.0, 0.0), vray.Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 1.0, 0.0), vray.Vector(0.0, 1.0, 0.0), vray.Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 1.0, 0.0), vray.Vector(0.0, 1.0, 0.0), vray.Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(-1.0, 0.0, 0.0), vray.Vector(-1.0, 0.0, 0.0), vray.Vector(-1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(-1.0, 0.0, 0.0), vray.Vector(-1.0, 0.0, 0.0), vray.Vector(-1.0, 0.0, 0.0)</span><span data-v-c2b1f83f="" class="line">);</span><span data-v-c2b1f83f="" class="line">mesh.faceNormals = vray.IntList(</span><span data-v-c2b1f83f="" class="line"> 0, 1, 2,</span><span data-v-c2b1f83f="" class="line"> 3, 4, 5,</span><span data-v-c2b1f83f="" class="line"> 6, 7, 8,</span><span data-v-c2b1f83f="" class="line"> 9, 10, 11,</span><span data-v-c2b1f83f="" class="line"> 12, 13, 14,</span><span data-v-c2b1f83f="" class="line"> 15, 16, 17,</span><span data-v-c2b1f83f="" class="line"> 18, 19, 20,</span><span data-v-c2b1f83f="" class="line"> 21, 22, 23,</span><span data-v-c2b1f83f="" class="line"> 24, 25, 26,</span><span data-v-c2b1f83f="" class="line"> 27, 28, 29,</span><span data-v-c2b1f83f="" class="line"> 30, 31, 32,</span><span data-v-c2b1f83f="" class="line"> 33, 34, 35</span><span data-v-c2b1f83f="" class="line">);</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line">// Create a BRDF with diffuse color</span><span data-v-c2b1f83f="" class="line">var newBRDF = new renderer.classes.BRDFDiffuse();</span><span data-v-c2b1f83f="" class="line">// We specify solid green color</span><span data-v-c2b1f83f="" class="line">newBRDF.color = new vray.Color(0.0, 1.0, 0.0);</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line">// Create a new material with single BRDF</span><span data-v-c2b1f83f="" class="line">var newMaterial = new renderer.classes.MtlSingleBRDF();</span><span data-v-c2b1f83f="" class="line">// Assign the BRDF to the material</span><span data-v-c2b1f83f="" class="line">newMaterial.brdf = newBRDF;</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line">// Create a new node for the box</span><span data-v-c2b1f83f="" class="line">var newNode = renderer.classes.Node();</span><span data-v-c2b1f83f="" class="line">newNode.material = newMaterial; // Assign the new material to the new node</span><span data-v-c2b1f83f="" class="line">newNode.geometry = mesh; // Assign the mesh</span><span data-v-c2b1f83f="" class="line">// We must specify transform in order to position the box in the world</span><span data-v-c2b1f83f="" class="line">newNode.transform = vray.Transform(vray.Matrix(vray.Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 0.0, 1.0)), vray.Vector(-20.6777, 131.6402, 0));</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line">// Create the light</span><span data-v-c2b1f83f="" class="line">var light = renderer.classes.LightRectangle();</span><span data-v-c2b1f83f="" class="line">// We must specify transform in order to position the light in the world</span><span data-v-c2b1f83f="" class="line">light.transform = vray.Transform(vray.Matrix(vray.Vector(1.0, 0.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 1.0, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.0, 0.0, 1.0)), vray.Vector(-20.6777, 131.6402, 150));</span><span data-v-c2b1f83f="" class="line">// Set white color</span><span data-v-c2b1f83f="" class="line">light.color = new vray.AColor(1.0, 1.0, 1.0);</span><span data-v-c2b1f83f="" class="line">// Increase the light's size (by default it's 1x1)</span><span data-v-c2b1f83f="" class="line">light.u_size = 50;</span><span data-v-c2b1f83f="" class="line">light.v_size = 50;</span><span data-v-c2b1f83f="" class="line">// Increase the default intensity</span><span data-v-c2b1f83f="" class="line">light.intensity = 100;</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line">// Create the camera</span><span data-v-c2b1f83f="" class="line">var renderView = renderer.classes.RenderView();</span><span data-v-c2b1f83f="" class="line">// Position the camera towards the box</span><span data-v-c2b1f83f="" class="line">renderView.transform = vray.Transform(vray.Matrix(vray.Vector(0.92, 0.37, 0.0),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.12, -0.3, 0.94),</span><span data-v-c2b1f83f="" class="line"> vray.Vector(0.35, -0.87, -0.32)), vray.Vector(59, -140, 44));</span><span data-v-c2b1f83f="" class="line">// Set Field of view (horizontal) in radians</span><span data-v-c2b1f83f="" class="line">renderView.fov = 1.65806;</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line">// Start rendering</span><span data-v-c2b1f83f="" class="line">renderer.start();</span><span data-v-c2b1f83f="" class="line"></span><span data-v-c2b1f83f="" class="line">renderer.waitForRenderEnd(60000, function () {</span><span data-v-c2b1f83f="" class="line"> renderer.close();</span><span data-v-c2b1f83f="" class="line">});</span></code>