From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

Texture Lookup

The script

For early texture lookup tests, the OSL script below has been used to call the texture3d callback method in OSLServices.

#include "stdosl.h"
#include "node_color.h"
 
color image_texture_lookup(string filename, string color_space, 
float x, float y, float z, output float Alpha)
{ 
	point P = point (x, y, z);
	color rgb = color ("rgb", 0, 0, 0);
 
	float result = 0;
	result = (float)texture3d(filename, P, "wrap", "periodic", "alpha", Alpha);
 
	if (result != 0)
		rgb = rgb + result;
	else
		rgb = color ("rgb", 1, 1, 1);
 
	return rgb;
}
 
shader volume_texture_shader(
	point Vector = P,
	string filename = "",
	string color_space = "sRGB",
	float projection_blend = 0.0,
	output color Color = 0.0,
	output float Alpha = 1.0)
{
	point p = Vector;
 
	Color = image_texture_lookup(filename, color_space, p[0], p[1], p[2], Alpha);
}