# Compatibility with Python 2.7.
from __future__ import print_function
# The directory containing the vray shared object should be present in the PYTHONPATH environment variable.
# Try to import the vray module from VRAY_SDK/python, if it is not in PYTHONPATH
import sys, os
VRAY_SDK = os.environ.get('VRAY_SDK')
if VRAY_SDK:
sys.path.append(os.path.join(VRAY_SDK, 'python'))
import vray
SCENE_PATH = os.path.join(os.environ.get('VRAY_SDK'), 'scenes')
# Change process working directory to SCENE_PATH in order to be able to load relative scene resources.
os.chdir(SCENE_PATH)
# The renderer is automatically closed after the `with` block.
with vray.VRayRenderer() as renderer:
# Register a simple log callback. Always useful for debugging.
def dumpMsg(renderer, message, level, instant):
if level == vray.LOGLEVEL_ERROR:
print("[ERROR]", message)
elif level == vray.LOGLEVEL_WARNING:
print("[Warning]", message)
elif level == vray.LOGLEVEL_INFO:
print("[info]", message)
# Uncomment for testing, but you might want to ignore these in real code
#else: print("[debug]", message)
renderer.setOnLogMessage(dumpMsg)
# Load scene from a file.
renderer.load(os.path.join(SCENE_PATH, 'lighting.vrscene'))
# Remove original light source from the scene.
del renderer.plugins["VRayLightDomeShape1"]
# LightIES is a light source plugin that can be used to create physically accurate area lights
# from .IES files produced by metering real life light fixtures.
# It also allows specifying a simple custom shape like a cylinder or box.
light = renderer.classes.LightIES()
# Specify the light position, rotation and scale.
light.transform = vray.Transform(
vray.Matrix(
vray.Vector(0.9745879, 0.2240055, 0),
vray.Vector(1.110223e-016, -4.440892e-016, -1),
vray.Vector(-0.2240055, 0.9745879, -4.440892e-016)),
vray.Vector(227.955764705938, 112.5306789507133, 112.2503672299417))
# Specify the color of the light in RGB float values and alpha(1.0f)
light.color = vray.AColor(0.712, 0.9335393, 1)
# Specify the path to the .IES file to use for the light.
light.ies_file = os.path.join(SCENE_PATH, 'assets', 'IES_Example_3.IES')
# Multiplies the light color and intensity. (Can be used as an intensity control).
light.filter_color = vray.Color(4, 4, 4)
# Override the shape of the light.
# Depending on the shape of the light some of the following properties have to be specified:
# ies_light_width - Light shape width in metres.
# ies_light_height - Light shape height in metres.
# ies_light_length - Light shape length in metres.
# ies_light_diameter - Light shape diameter in metres.
# Possible values are:
# -1 (default shape from IES file) - default
# 0 (Point)
# 1 (Rectangular)
# 2 (Circular)
# 3 (Sphere)
# 4 (Vertical Cylinder)
# 5 (Horizontal cylinder oriented along lum.lenght)
# 6 (Horizontal cylinder oriented along lum.width)
# 7 (Ellipse oriented along lum.lenght)
# 8 (Ellipse oriented along lum.width)
light.ies_light_shape = 0
# Specify shadow offset from the surface. Helps to prevent polygonal shadow artifacts on low-poly surfaces.
light.shadowBias = 0.02
# Specify that the bumped normal should be used to check if the light direction is below the surface.
light.bumped_below_surface_check = True
# Start rendering.
renderer.startSync()
# Wait for rendering to end.
renderer.waitForRenderEnd() |
|
#define VRAY_RUNTIME_LOAD_PRIMARY
#include "vraysdk.hpp"
#include "vrayplugins.hpp"
#include "utils.h"
using namespace VRay;
using namespace VRay::Plugins;
using namespace std;
const char *BASE_PATH = getenv("VRAY_SDK");
string SCENE_PATH = (BASE_PATH ? string(BASE_PATH) : string(".")) + PATH_DELIMITER + "scenes";
int main() {
// Change process working directory to SCENE_PATH in order to be able to load relative scene resources.
changeCurrentDir(SCENE_PATH.c_str());
// Load V-Ray SDK library.
VRayInit init(NULL, true);
// Create an instance of VRayRenderer with default options.
// The renderer is automatically closed at the end of the current scope.
VRayRenderer renderer;
// It's recommended to always have a console log
renderer.setOnLogMessage(logMessage);
// Load scene from a file.
renderer.load("lighting.vrscene");
// Remove original light source from the scene.
renderer.deletePlugin("VRayLightDomeShape1");
// LightIES is a light source plugin that can be used to create physically accurate area lights
// from .IES files produced by metering real life light fixtures.
// It also allows specifying a simple custom shape like a cylinder or box.
LightIES light = renderer.newPlugin<LightIES>();
// Specify the light position, rotation and scale.
light.set_transform(Transform(
Matrix(
Vector(0.9745879, 0.2240055, 0.0),
Vector(1.110223e-016, -4.440892e-016, -1.0),
Vector(-0.2240055, 0.9745879, -4.440892e-016)),
Vector(227.955764705938, 112.5306789507133, 112.2503672299417)));
// Specify the color of the light in RGB float values and alpha(1.0f)
light.set_color(AColor(0.712, 0.9335393, 1.0));
// Specify the path to the .IES file to use for the light.
light.set_ies_file("assets/IES_Example_3.IES");
// Multiplies the light color and intensity. (Can be used as an intensity control).
light.set_filter_color(Color(4.0, 4.0, 4.0));
// Override the shape of the light.
// Depending on the shape of the light some of the following properties have to be specified :
// ies_light_width - Light shape width in metres.
// ies_light_height - Light shape height in metres.
// ies_light_length - Light shape length in metres.
// ies_light_diameter - Light shape diameter in metres.
// Possible values are :
// -1 (default shape from .IES file) - default
// 0 (Point)
// 1 (Rectangular)
// 2 (Circular)
// 3 (Sphere)
// 4 (Vertical Cylinder)
// 5 (Horizontal cylinder oriented along lum.lenght)
// 6 (Horizontal cylinder oriented along lum.width)
// 7 (Ellipse oriented along lum.lenght)
// 8 (Ellipse oriented along lum.width)
light.set_ies_light_shape(0);
// Specify shadow offset from the surface. Helps to prevent polygonal shadow artifacts on low-poly surfaces.
light.set_shadowBias(0.02f);
// Specify that the bumped normal should be used to check if the light direction is below the surface.
light.set_bumped_below_surface_check(true);
// Start rendering.
renderer.startSync();
// Wait for rendering to end.
renderer.waitForRenderEnd();
return 0;
} |
|
using System;
using System.IO;
using VRay;
using VRay.Plugins;
namespace _05_ies
{
class Program
{
static void Main(string[] args)
{
string SCENE_PATH = Path.Combine(Environment.GetEnvironmentVariable("VRAY_SDK"), "scenes");
// Change process working directory to SCENE_PATH in order to be able to load relative scene resources.
Directory.SetCurrentDirectory(SCENE_PATH);
// Create an instance of VRayRenderer with default options. The renderer is automatically closed after the `using` block.
using (VRayRenderer renderer = new VRayRenderer())
{
// Add a listener for any type of log message.
renderer.LogMessage += new EventHandler<MessageEventArgs>((source, e) =>
{
// You can remove the if for testing, but you might want to ignore Debug in real code
if (e.LogLevel != LogLevelType.Debug)
{
Console.WriteLine(String.Format("[{0}] {1}", e.LogLevel.ToString(), e.Message));
}
});
// Load scene from a file.
renderer.Load("lighting.vrscene");
// Remove original light source from the scene.
renderer.DeletePlugin("VRayLightDomeShape1");
// LightIES is a light source plugin that can be used to create physically accurate area lights
// from .IES files produced by metering real life light fixtures.
// It also allows specifying a simple custom shape like a cylinder or box.
LightIES light = renderer.NewPlugin<LightIES>();
// Specify the light position, rotation and scale.
light.Transform = new Transform(
new Matrix(
new Vector(0.9745879, 0.2240055, 0),
new Vector(1.110223e-016, -4.440892e-016, -1),
new Vector(-0.2240055, 0.9745879, -4.440892e-016)),
new Vector(227.955764705938, 112.5306789507133, 112.2503672299417));
// Specify the color of the light in RGB float values and alpha = 1.
light.Color = new AColor(0.712, 0.9335393, 1);
// Specify the path to the .IES file to use for the light.
light.IesFile = Path.Combine("assets", "IES_Example_3.IES");
// Multiplies the light color and intensity. (Can be used as an intensity control).
light.FilterColor = new Color(4, 4, 4);
// Override the shape of the light.
// Depending on the shape of the light some of the following properties have to be specified:
// ies_light_width - Light shape width in metres.
// ies_light_height - Light shape height in metres.
// ies_light_length - Light shape length in metres.
// ies_light_diameter - Light shape diameter in metres.
// Possible values are:
// -1 (default shape from IES file) - default
// 0 (Point)
// 1 (Rectangular)
// 2 (Circular)
// 3 (Sphere)
// 4 (Vertical Cylinder)
// 5 (Horizontal cylinder oriented along lum.lenght)
// 6 (Horizontal cylinder oriented along lum.width)
// 7 (Ellipse oriented along lum.lenght)
// 8 (Ellipse oriented along lum.width)
light.IesLightShape = 0;
// Specify shadow offset from the surface. Helps to prevent polygonal shadow artifacts on low-poly surfaces.
light.ShadowBias = 0.02F;
// Specify that the bumped normal should be used to check if the light direction is below the surface.
light.BumpedBelowSurfaceCheck = true;
// Specify the number of parameter samples for motion blur.
light.Nsamples = 1;
// Start rendering.
renderer.StartSync();
// Wait for rendering to end.
renderer.WaitForRenderEnd();
}
}
}
} |
|
var path = require('path');
var vray = require(path.join(process.env.VRAY_SDK, 'node', 'vray'));
var SCENE_PATH = path.join(process.env.VRAY_SDK, 'scenes');
// Change process working directory to SCENE_PATH in order to be able to load relative scene resources.
process.chdir(SCENE_PATH);
// Create an instance of VRayRenderer with default options.
var renderer = vray.VRayRenderer();
// It's recommended to always have a console log callback
renderer.on("logMessage", function(message, level, instant) {
if (level == vray.LOGLEVEL_ERROR)
console.log("[ERROR] ", message);
else if (level == vray.LOGLEVEL_WARNING)
console.log("[Warning] ", message);
else if (level == vray.LOGLEVEL_INFO)
console.log("[info] ", message);
// Uncomment for testing, but you might want to ignore these in real code
//else console.log("[debug] ", message);
});
// Load scene from a file asynchronously.
renderer.load("lighting.vrscene", function(err) {
if (err) throw err;
// Remove original light source from the scene.
delete renderer.plugins["VRayLightDomeShape1"];
// LightIES is a light source plugin that can be used to create physically accurate area lights
// from .IES files produced by metering real life light fixtures.
// It also allows specifying a simple custom shape like a cylinder or box.
var light = renderer.classes.LightIES();
// Specify the light position, rotation and scale.
light.transform = vray.Transform(
vray.Matrix(
vray.Vector(0.9745879, 0.2240055, 0),
vray.Vector(1.110223e-016, -4.440892e-016, -1),
vray.Vector(-0.2240055, 0.9745879, -4.440892e-016)),
vray.Vector(227.955764705938, 112.5306789507133, 112.2503672299417));
// Specify the color of the light in RGB float values and alpha(1.0f)
light.color = vray.AColor(0.712, 0.9335393, 1);
// Specify the path to the .IES file to use for the light.
light.ies_file = path.join(SCENE_PATH, 'assets', 'IES_Example_3.IES');
// Multiplies the light color and intensity. (Can be used as an intensity control).
light.filter_color = vray.Color(4, 4, 4);
// Override the shape of the light.
// Depending on the shape of the light some of the following properties have to be specified:
// ies_light_width - Light shape width in metres.
// ies_light_height - Light shape height in metres.
// ies_light_length - Light shape length in metres.
// ies_light_diameter - Light shape diameter in metres.
// Possible values are:
// -1 (default shape from IES file) - default
// 0 (Point)
// 1 (Rectangular)
// 2 (Circular)
// 3 (Sphere)
// 4 (Vertical Cylinder)
// 5 (Horizontal cylinder oriented along lum.lenght)
// 6 (Horizontal cylinder oriented along lum.width)
// 7 (Ellipse oriented along lum.lenght)
// 8 (Ellipse oriented along lum.width)
light.ies_light_shape = 0;
// Specify shadow offset from the surface. Helps to prevent polygonal shadow artifacts on low-poly surfaces.
light.shadowBias = 0.02;
// Specify that the bumped normal should be used to check if the light direction is below the surface.
light.bumped_below_surface_check = true;
// Start rendering.
renderer.start(function(err) {
if (err) throw err;
// Wait for rendering to end.
renderer.waitForRenderEnd(function() {
renderer.close();
});
});
}); |
|
|