Difference between revisions of "OSL"
Jump to navigation
Jump to search
(Created page with "===Octane Cubemap=== Using octane + houdini. Wip this is just shit I stole from the octane forums to give me a start because OSL is a little confusing, and Houdini implementation even worse. <pre> shader OslCamera( float roomWidth = 1 float min = 0.0, float max = 100.0 , float roomHeight = 1.0 float min = 0.0, float max = 100.0 , float roomDepth = 1.0 float min = 0.0, float max = 100.0 , float ceilingOffset = 0, float...") |
|||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
https://oiolli.gumroad.com/ | |||
=== Inferno Depth Map === | |||
Spaghetti AI code to get inferno (scientific/matplotlib) gradient camera depth map. Works in arnold/maya need to try it in octane. 3ds has a better 'scientific colors' osl but I can't find it. | |||
https://i.imgur.com/X9M2drk.png | |||
<pre> | |||
shader camera_depth_inferno_gradient( | |||
float dmax=10[[float min=0, float max=1000]], | |||
output color ResultColor = color(1.0, 0.0, 0.0), | |||
color Color0 = color(0.0, 0.0, 0.01568627450980392), | |||
color Color1 = color(0.00784313725490196, 0.00392156862745098, 0.0392156862745098), | |||
color Color2 = color(0.01568627450980392, 0.011764705882352941, 0.07450980392156863), | |||
color Color3 = color(0.027450980392156862, 0.0196078431372549, 0.10588235294117647), | |||
color Color4 = color(0.043137254901960784, 0.027450980392156862, 0.1411764705882353), | |||
color Color5 = color(0.06274509803921569, 0.03529411764705882, 0.1803921568627451), | |||
color Color6 = color(0.08235294117647059, 0.043137254901960784, 0.2196078431372549), | |||
color Color7 = color(0.10588235294117647, 0.047058823529411764, 0.2549019607843137), | |||
color Color8 = color(0.13333333333333333, 0.047058823529411764, 0.29411764705882354), | |||
color Color9 = color(0.1568627450980392, 0.043137254901960784, 0.32941176470588235), | |||
color Color10 = color(0.18823529411764706, 0.0392156862745098, 0.3568627450980392), | |||
color Color11 = color(0.21568627450980392, 0.03529411764705882, 0.3803921568627451), | |||
color Color12 = color(0.24313725490196078, 0.03529411764705882, 0.4), | |||
color Color13 = color(0.27058823529411763, 0.0392156862745098, 0.4117647058823529), | |||
color Color14 = color(0.29411764705882354, 0.047058823529411764, 0.4196078431372549), | |||
color Color15 = color(0.3215686274509804, 0.054901960784313725, 0.42745098039215684), | |||
color Color16 = color(0.34509803921568627, 0.06274509803921569, 0.43137254901960786), | |||
color Color17 = color(0.37254901960784315, 0.07450980392156863, 0.43137254901960786), | |||
color Color18 = color(0.396078431372549, 0.08235294117647059, 0.43137254901960786), | |||
color Color19 = color(0.4235294117647059, 0.09411764705882353, 0.43137254901960786), | |||
color Color20 = color(0.4470588235294118, 0.10196078431372549, 0.43137254901960786), | |||
color Color21 = color(0.47058823529411764, 0.10980392156862745, 0.42745098039215684), | |||
color Color22 = color(0.4980392156862745, 0.11764705882352941, 0.4235294117647059), | |||
color Color23 = color(0.5215686274509804, 0.12941176470588237, 0.4196078431372549), | |||
color Color24 = color(0.5490196078431373, 0.13725490196078433, 0.4117647058823529), | |||
color Color25 = color(0.5725490196078431, 0.1450980392156863, 0.40784313725490196), | |||
color Color26 = color(0.6, 0.1568627450980392, 0.396078431372549), | |||
color Color27 = color(0.6235294117647059, 0.16470588235294117, 0.38823529411764705), | |||
color Color28 = color(0.6470588235294118, 0.17647058823529413, 0.3764705882352941), | |||
color Color29 = color(0.6745098039215687, 0.18431372549019607, 0.36470588235294116), | |||
color Color30 = color(0.6980392156862745, 0.19607843137254902, 0.35294117647058826), | |||
color Color31 = color(0.7215686274509804, 0.20784313725490197, 0.3411764705882353), | |||
color Color32 = color(0.7450980392156863, 0.2196078431372549, 0.32549019607843135), | |||
color Color33 = color(0.7686274509803922, 0.23529411764705882, 0.30980392156862746), | |||
color Color34 = color(0.788235294117647, 0.25098039215686274, 0.29411764705882354), | |||
color Color35 = color(0.8117647058823529, 0.26666666666666666, 0.27450980392156865), | |||
color Color36 = color(0.8313725490196079, 0.2823529411764706, 0.25882352941176473), | |||
color Color37 = color(0.8509803921568627, 0.30196078431372547, 0.23921568627450981), | |||
color Color38 = color(0.8666666666666667, 0.3215686274509804, 0.2235294117647059), | |||
color Color39 = color(0.8862745098039215, 0.3411764705882353, 0.20392156862745098), | |||
color Color40 = color(0.9019607843137255, 0.36470588235294116, 0.18431372549019607), | |||
color Color41 = color(0.9176470588235294, 0.38823529411764705, 0.16470588235294117), | |||
color Color42 = color(0.9294117647058824, 0.4117647058823529, 0.1450980392156863), | |||
color Color43 = color(0.9411764705882353, 0.43529411764705883, 0.12549019607843137), | |||
color Color44 = color(0.9529411764705882, 0.4627450980392157, 0.10588235294117647), | |||
color Color45 = color(0.9607843137254902, 0.49019607843137253, 0.08235294117647059), | |||
color Color46 = color(0.9686274509803922, 0.5176470588235295, 0.06274509803921569), | |||
color Color47 = color(0.9764705882352941, 0.5450980392156862, 0.043137254901960784), | |||
color Color48 = color(0.9803921568627451, 0.5725490196078431, 0.027450980392156862), | |||
color Color49 = color(0.984313725490196, 0.6039215686274509, 0.023529411764705882), | |||
color Color50 = color(0.988235294117647, 0.6313725490196078, 0.03137254901960784), | |||
color Color51 = color(0.988235294117647, 0.6627450980392157, 0.054901960784313725), | |||
color Color52 = color(0.988235294117647, 0.6941176470588235, 0.08235294117647059), | |||
color Color53 = color(0.984313725490196, 0.7254901960784313, 0.11764705882352941), | |||
color Color54 = color(0.9803921568627451, 0.7568627450980392, 0.15294117647058825), | |||
color Color55 = color(0.9764705882352941, 0.788235294117647, 0.19215686274509803), | |||
color Color56 = color(0.9686274509803922, 0.820392156862745, 0.23529411764705882), | |||
color Color57 = color(0.9647058823529412, 0.8509803921568627, 0.2823529411764706), | |||
color Color58 = color(0.9568627450980392, 0.8784313725490196, 0.3333333333333333), | |||
color Color59 = color(0.9490196078431372, 0.9058823529411765, 0.38823529411764705), | |||
color Color60 = color(0.9411764705882353, 0.9294117647058824, 0.4392156862745098), | |||
color Color61 = color(0.9450980392156862, 0.9607843137254902, 0.5215686274509804), | |||
color Color62 = color(0.9647058823529412, 0.9803921568627451, 0.5882352941176471), | |||
color Color63 = color(0.984313725490196, 1.0, 0.6431372549019608), | |||
color stop_colors[] = { | |||
Color0, | |||
Color1, | |||
Color2, | |||
Color3, | |||
Color4, | |||
Color5, | |||
Color6, | |||
Color7, | |||
Color8, | |||
Color9, | |||
Color10, | |||
Color11, | |||
Color12, | |||
Color13, | |||
Color14, | |||
Color15, | |||
Color16, | |||
Color17, | |||
Color18, | |||
Color19, | |||
Color20, | |||
Color21, | |||
Color22, | |||
Color23, | |||
Color24, | |||
Color25, | |||
Color26, | |||
Color27, | |||
Color28, | |||
Color29, | |||
Color30, | |||
Color31, | |||
Color32, | |||
Color33, | |||
Color34, | |||
Color35, | |||
Color36, | |||
Color37, | |||
Color38, | |||
Color39, | |||
Color40, | |||
Color41, | |||
Color42, | |||
Color43, | |||
Color44, | |||
Color45, | |||
Color46, | |||
Color47, | |||
Color48, | |||
Color49, | |||
Color50, | |||
Color51, | |||
Color52, | |||
Color53, | |||
Color54, | |||
Color55, | |||
Color56, | |||
Color57, | |||
Color58, | |||
Color59, | |||
Color60, | |||
Color61, | |||
Color62, | |||
Color63 | |||
}, | |||
float stop_depths[] = { | |||
0.0, | |||
0.015873015873015872, | |||
0.031746031746031744, | |||
0.047619047619047616, | |||
0.06349206349206349, | |||
0.07936507936507936, | |||
0.09523809523809523, | |||
0.1111111111111111, | |||
0.12698412698412698, | |||
0.14285714285714285, | |||
0.15873015873015872, | |||
0.1746031746031746, | |||
0.19047619047619047, | |||
0.20634920634920634, | |||
0.2222222222222222, | |||
0.23809523809523808, | |||
0.25396825396825395, | |||
0.2698412698412698, | |||
0.2857142857142857, | |||
0.30158730158730157, | |||
0.31746031746031744, | |||
0.3333333333333333, | |||
0.3492063492063492, | |||
0.36507936507936506, | |||
0.38095238095238093, | |||
0.3968253968253968, | |||
0.4126984126984127, | |||
0.42857142857142855, | |||
0.4444444444444444, | |||
0.4603174603174603, | |||
0.47619047619047616, | |||
0.49206349206349204, | |||
0.5079365079365079, | |||
0.5238095238095237, | |||
0.5396825396825397, | |||
0.5555555555555556, | |||
0.5714285714285714, | |||
0.5873015873015872, | |||
0.6031746031746031, | |||
0.6190476190476191, | |||
0.6349206349206349, | |||
0.6507936507936507, | |||
0.6666666666666666, | |||
0.6825396825396826, | |||
0.6984126984126984, | |||
0.7142857142857142, | |||
0.7301587301587301, | |||
0.746031746031746, | |||
0.7619047619047619, | |||
0.7777777777777777, | |||
0.7936507936507936, | |||
0.8095238095238095, | |||
0.8253968253968254, | |||
0.8412698412698412, | |||
0.8571428571428571, | |||
0.873015873015873, | |||
0.8888888888888888, | |||
0.9047619047619047, | |||
0.9206349206349206, | |||
0.9365079365079365, | |||
0.9523809523809523, | |||
0.9682539682539681, | |||
0.9841269841269841, | |||
1.0 } | |||
) | |||
{ | |||
point CamPos = point("camera", 0, 0, 0); | |||
float normalized_depth = 1-clamp(distance(CamPos,P)/dmax,0,1); | |||
// Find the two stop colors to interpolate between | |||
int i; | |||
for (i = 0; i < arraylength(stop_depths) - 1; ++i) { | |||
if (normalized_depth >= stop_depths[i] && normalized_depth <= stop_depths[i+1]) { | |||
break; // Found the segment | |||
} | |||
} | |||
// Interpolate between the two found colors | |||
float t = (normalized_depth - stop_depths[i]) / (stop_depths[i+1] - stop_depths[i]); | |||
ResultColor = mix(stop_colors[i], stop_colors[i+1], t); | |||
} | |||
</pre> | |||
===Octane Cubemap=== | ===Octane Cubemap=== | ||
Using octane + houdini. | Using octane + houdini. | ||
| Line 6: | Line 243: | ||
shader OslCamera( | shader OslCamera( | ||
float roomWidth = 1 [[ float min = 0.0, float max = 100.0 ]], | float roomWidth = 1 [[ float min = 0.0, float max = 100.0 ]], | ||
float roomHeight = 1.0 [[ float min = 0.0, float max = 100.0 ]], | |||
float roomDepth = 1.0 [[ float min = 0.0, float max = 100.0 ]], | |||
float ceilingOffset = 0, | |||
float leftOffset = 0.5, | |||
float frontOffset = 0.5, | |||
float rightOffset = 0.5, | |||
float floorOffset = 0, | |||
output point pos = P, | output point pos = P, | ||
output vector dir = 0, | output vector dir = 0, | ||
| Line 19: | Line 256: | ||
float pa; | float pa; | ||
int res[2]; | int res[2]; | ||
float r = 8.0; | float r = 8.0; | ||
float col = floor(u*3); | |||
float row = floor(v*3); | |||
float nu = (u*3) - floor(u*3)-0.5; | |||
float nv = (v*3) - floor(v*3)-0.5; | |||
vector forward = vector(0,0,1); | |||
vector up = vector(0,0,0); | |||
vector right = vector(0,0,0); | |||
float width = 1; | |||
float height = 1; | |||
vector pN = vector(0,0,0); | |||
if(col==1 && row==2) { | |||
//ceiling | |||
forward = vector(0,1,0); | forward = vector(0,1,0); | ||
right = vector(roomWidth,0,0); | |||
up = vector(0,0,roomDepth); | up = vector(0,0,roomDepth); | ||
pN = vector(0,roomHeight-ceilingOffset,0); | pN = vector(0,roomHeight-ceilingOffset,0); | ||
} | } | ||
if(col==0 && row==1) { | |||
//left | |||
forward = vector(-1,0,0); | forward = vector(-1,0,0); | ||
up = vector(0,roomHeight,0); | up = vector(0,roomHeight,0); | ||
| Line 51: | Line 282: | ||
pN = vector(leftOffset-roomWidth/2,roomHeight/2,0); | pN = vector(leftOffset-roomWidth/2,roomHeight/2,0); | ||
} | } | ||
if(col==1 && row==1) { | |||
//forward | |||
forward = vector(0,0,-1); | forward = vector(0,0,-1); | ||
up = vector(0,roomHeight,0); | up = vector(0,roomHeight,0); | ||
right = vector(roomWidth,0,0); | right = vector(roomWidth,0,0); | ||
pN = vector(0,roomHeight/2,-(frontOffset-(roomDepth/2.0))); | pN = vector(0,roomHeight/2,-(frontOffset-(roomDepth/2.0))); | ||
} | |||
if(col==2 && row==1) { | |||
//right | |||
forward = vector(1,0,0); | forward = vector(1,0,0); | ||
up = vector(0,roomHeight,0); | up = vector(0,roomHeight,0); | ||
right = vector(0,0,roomDepth); | right = vector(0,0,roomDepth); | ||
pN = vector(roomWidth/2-rightOffset,roomHeight/2,0); | pN = vector(roomWidth/2-rightOffset,roomHeight/2,0); | ||
} | |||
if(col==1 && row==0) { | |||
//floor | |||
forward = vector(0,-1,0); | forward = vector(0,-1,0); | ||
up = vector(0,0,-roomDepth); | up = vector(0,0,-roomDepth); | ||
right = vector(roomWidth,0,0); | right = vector(roomWidth,0,0); | ||
pN = vector(0,floorOffset,0); | pN = vector(0,floorOffset,0); | ||
} | |||
if(col==0 && row==2) { | |||
//curtains | |||
forward = vector(0,0,-1); | forward = vector(0,0,-1); | ||
up = vector(0,roomHeight,0); | up = vector(0,roomHeight,0); | ||
right = vector(roomWidth,0,0); | right = vector(roomWidth,0,0); | ||
pN = vector(roomWidth*2.0,0.5,roomDepth); | pN = vector(roomWidth*2.0,0.5,roomDepth); | ||
} | |||
if(col==0 && row==0) { | |||
//curtains | |||
forward = vector(0,0,-1); | forward = vector(0,0,-1); | ||
up = vector(0,roomHeight,0); | up = vector(0,roomHeight,0); | ||
right = vector(roomWidth,0,0); | right = vector(roomWidth,0,0); | ||
pN = vector(roomWidth,0.5,roomDepth); | pN = vector(roomWidth,0.5,roomDepth); | ||
} | |||
| Line 94: | Line 325: | ||
dir = forward; | dir = forward; | ||
pos = pN+(nu*right)+(nv*up); | |||
} | } | ||
</pre> | </pre> | ||
Latest revision as of 19:23, 22 July 2025
Inferno Depth Map
Spaghetti AI code to get inferno (scientific/matplotlib) gradient camera depth map. Works in arnold/maya need to try it in octane. 3ds has a better 'scientific colors' osl but I can't find it.
shader camera_depth_inferno_gradient(
float dmax=10[[float min=0, float max=1000]],
output color ResultColor = color(1.0, 0.0, 0.0),
color Color0 = color(0.0, 0.0, 0.01568627450980392),
color Color1 = color(0.00784313725490196, 0.00392156862745098, 0.0392156862745098),
color Color2 = color(0.01568627450980392, 0.011764705882352941, 0.07450980392156863),
color Color3 = color(0.027450980392156862, 0.0196078431372549, 0.10588235294117647),
color Color4 = color(0.043137254901960784, 0.027450980392156862, 0.1411764705882353),
color Color5 = color(0.06274509803921569, 0.03529411764705882, 0.1803921568627451),
color Color6 = color(0.08235294117647059, 0.043137254901960784, 0.2196078431372549),
color Color7 = color(0.10588235294117647, 0.047058823529411764, 0.2549019607843137),
color Color8 = color(0.13333333333333333, 0.047058823529411764, 0.29411764705882354),
color Color9 = color(0.1568627450980392, 0.043137254901960784, 0.32941176470588235),
color Color10 = color(0.18823529411764706, 0.0392156862745098, 0.3568627450980392),
color Color11 = color(0.21568627450980392, 0.03529411764705882, 0.3803921568627451),
color Color12 = color(0.24313725490196078, 0.03529411764705882, 0.4),
color Color13 = color(0.27058823529411763, 0.0392156862745098, 0.4117647058823529),
color Color14 = color(0.29411764705882354, 0.047058823529411764, 0.4196078431372549),
color Color15 = color(0.3215686274509804, 0.054901960784313725, 0.42745098039215684),
color Color16 = color(0.34509803921568627, 0.06274509803921569, 0.43137254901960786),
color Color17 = color(0.37254901960784315, 0.07450980392156863, 0.43137254901960786),
color Color18 = color(0.396078431372549, 0.08235294117647059, 0.43137254901960786),
color Color19 = color(0.4235294117647059, 0.09411764705882353, 0.43137254901960786),
color Color20 = color(0.4470588235294118, 0.10196078431372549, 0.43137254901960786),
color Color21 = color(0.47058823529411764, 0.10980392156862745, 0.42745098039215684),
color Color22 = color(0.4980392156862745, 0.11764705882352941, 0.4235294117647059),
color Color23 = color(0.5215686274509804, 0.12941176470588237, 0.4196078431372549),
color Color24 = color(0.5490196078431373, 0.13725490196078433, 0.4117647058823529),
color Color25 = color(0.5725490196078431, 0.1450980392156863, 0.40784313725490196),
color Color26 = color(0.6, 0.1568627450980392, 0.396078431372549),
color Color27 = color(0.6235294117647059, 0.16470588235294117, 0.38823529411764705),
color Color28 = color(0.6470588235294118, 0.17647058823529413, 0.3764705882352941),
color Color29 = color(0.6745098039215687, 0.18431372549019607, 0.36470588235294116),
color Color30 = color(0.6980392156862745, 0.19607843137254902, 0.35294117647058826),
color Color31 = color(0.7215686274509804, 0.20784313725490197, 0.3411764705882353),
color Color32 = color(0.7450980392156863, 0.2196078431372549, 0.32549019607843135),
color Color33 = color(0.7686274509803922, 0.23529411764705882, 0.30980392156862746),
color Color34 = color(0.788235294117647, 0.25098039215686274, 0.29411764705882354),
color Color35 = color(0.8117647058823529, 0.26666666666666666, 0.27450980392156865),
color Color36 = color(0.8313725490196079, 0.2823529411764706, 0.25882352941176473),
color Color37 = color(0.8509803921568627, 0.30196078431372547, 0.23921568627450981),
color Color38 = color(0.8666666666666667, 0.3215686274509804, 0.2235294117647059),
color Color39 = color(0.8862745098039215, 0.3411764705882353, 0.20392156862745098),
color Color40 = color(0.9019607843137255, 0.36470588235294116, 0.18431372549019607),
color Color41 = color(0.9176470588235294, 0.38823529411764705, 0.16470588235294117),
color Color42 = color(0.9294117647058824, 0.4117647058823529, 0.1450980392156863),
color Color43 = color(0.9411764705882353, 0.43529411764705883, 0.12549019607843137),
color Color44 = color(0.9529411764705882, 0.4627450980392157, 0.10588235294117647),
color Color45 = color(0.9607843137254902, 0.49019607843137253, 0.08235294117647059),
color Color46 = color(0.9686274509803922, 0.5176470588235295, 0.06274509803921569),
color Color47 = color(0.9764705882352941, 0.5450980392156862, 0.043137254901960784),
color Color48 = color(0.9803921568627451, 0.5725490196078431, 0.027450980392156862),
color Color49 = color(0.984313725490196, 0.6039215686274509, 0.023529411764705882),
color Color50 = color(0.988235294117647, 0.6313725490196078, 0.03137254901960784),
color Color51 = color(0.988235294117647, 0.6627450980392157, 0.054901960784313725),
color Color52 = color(0.988235294117647, 0.6941176470588235, 0.08235294117647059),
color Color53 = color(0.984313725490196, 0.7254901960784313, 0.11764705882352941),
color Color54 = color(0.9803921568627451, 0.7568627450980392, 0.15294117647058825),
color Color55 = color(0.9764705882352941, 0.788235294117647, 0.19215686274509803),
color Color56 = color(0.9686274509803922, 0.820392156862745, 0.23529411764705882),
color Color57 = color(0.9647058823529412, 0.8509803921568627, 0.2823529411764706),
color Color58 = color(0.9568627450980392, 0.8784313725490196, 0.3333333333333333),
color Color59 = color(0.9490196078431372, 0.9058823529411765, 0.38823529411764705),
color Color60 = color(0.9411764705882353, 0.9294117647058824, 0.4392156862745098),
color Color61 = color(0.9450980392156862, 0.9607843137254902, 0.5215686274509804),
color Color62 = color(0.9647058823529412, 0.9803921568627451, 0.5882352941176471),
color Color63 = color(0.984313725490196, 1.0, 0.6431372549019608),
color stop_colors[] = {
Color0,
Color1,
Color2,
Color3,
Color4,
Color5,
Color6,
Color7,
Color8,
Color9,
Color10,
Color11,
Color12,
Color13,
Color14,
Color15,
Color16,
Color17,
Color18,
Color19,
Color20,
Color21,
Color22,
Color23,
Color24,
Color25,
Color26,
Color27,
Color28,
Color29,
Color30,
Color31,
Color32,
Color33,
Color34,
Color35,
Color36,
Color37,
Color38,
Color39,
Color40,
Color41,
Color42,
Color43,
Color44,
Color45,
Color46,
Color47,
Color48,
Color49,
Color50,
Color51,
Color52,
Color53,
Color54,
Color55,
Color56,
Color57,
Color58,
Color59,
Color60,
Color61,
Color62,
Color63
},
float stop_depths[] = {
0.0,
0.015873015873015872,
0.031746031746031744,
0.047619047619047616,
0.06349206349206349,
0.07936507936507936,
0.09523809523809523,
0.1111111111111111,
0.12698412698412698,
0.14285714285714285,
0.15873015873015872,
0.1746031746031746,
0.19047619047619047,
0.20634920634920634,
0.2222222222222222,
0.23809523809523808,
0.25396825396825395,
0.2698412698412698,
0.2857142857142857,
0.30158730158730157,
0.31746031746031744,
0.3333333333333333,
0.3492063492063492,
0.36507936507936506,
0.38095238095238093,
0.3968253968253968,
0.4126984126984127,
0.42857142857142855,
0.4444444444444444,
0.4603174603174603,
0.47619047619047616,
0.49206349206349204,
0.5079365079365079,
0.5238095238095237,
0.5396825396825397,
0.5555555555555556,
0.5714285714285714,
0.5873015873015872,
0.6031746031746031,
0.6190476190476191,
0.6349206349206349,
0.6507936507936507,
0.6666666666666666,
0.6825396825396826,
0.6984126984126984,
0.7142857142857142,
0.7301587301587301,
0.746031746031746,
0.7619047619047619,
0.7777777777777777,
0.7936507936507936,
0.8095238095238095,
0.8253968253968254,
0.8412698412698412,
0.8571428571428571,
0.873015873015873,
0.8888888888888888,
0.9047619047619047,
0.9206349206349206,
0.9365079365079365,
0.9523809523809523,
0.9682539682539681,
0.9841269841269841,
1.0 }
)
{
point CamPos = point("camera", 0, 0, 0);
float normalized_depth = 1-clamp(distance(CamPos,P)/dmax,0,1);
// Find the two stop colors to interpolate between
int i;
for (i = 0; i < arraylength(stop_depths) - 1; ++i) {
if (normalized_depth >= stop_depths[i] && normalized_depth <= stop_depths[i+1]) {
break; // Found the segment
}
}
// Interpolate between the two found colors
float t = (normalized_depth - stop_depths[i]) / (stop_depths[i+1] - stop_depths[i]);
ResultColor = mix(stop_colors[i], stop_colors[i+1], t);
}
Octane Cubemap
Using octane + houdini.
Wip this is just shit I stole from the octane forums to give me a start because OSL is a little confusing, and Houdini implementation even worse.
shader OslCamera(
float roomWidth = 1 [[ float min = 0.0, float max = 100.0 ]],
float roomHeight = 1.0 [[ float min = 0.0, float max = 100.0 ]],
float roomDepth = 1.0 [[ float min = 0.0, float max = 100.0 ]],
float ceilingOffset = 0,
float leftOffset = 0.5,
float frontOffset = 0.5,
float rightOffset = 0.5,
float floorOffset = 0,
output point pos = P,
output vector dir = 0,
output float tMax = 1.0/0.0)
{
float pa;
int res[2];
float r = 8.0;
float col = floor(u*3);
float row = floor(v*3);
float nu = (u*3) - floor(u*3)-0.5;
float nv = (v*3) - floor(v*3)-0.5;
vector forward = vector(0,0,1);
vector up = vector(0,0,0);
vector right = vector(0,0,0);
float width = 1;
float height = 1;
vector pN = vector(0,0,0);
if(col==1 && row==2) {
//ceiling
forward = vector(0,1,0);
right = vector(roomWidth,0,0);
up = vector(0,0,roomDepth);
pN = vector(0,roomHeight-ceilingOffset,0);
}
if(col==0 && row==1) {
//left
forward = vector(-1,0,0);
up = vector(0,roomHeight,0);
right = vector (0,0,-roomDepth);
pN = vector(leftOffset-roomWidth/2,roomHeight/2,0);
}
if(col==1 && row==1) {
//forward
forward = vector(0,0,-1);
up = vector(0,roomHeight,0);
right = vector(roomWidth,0,0);
pN = vector(0,roomHeight/2,-(frontOffset-(roomDepth/2.0)));
}
if(col==2 && row==1) {
//right
forward = vector(1,0,0);
up = vector(0,roomHeight,0);
right = vector(0,0,roomDepth);
pN = vector(roomWidth/2-rightOffset,roomHeight/2,0);
}
if(col==1 && row==0) {
//floor
forward = vector(0,-1,0);
up = vector(0,0,-roomDepth);
right = vector(roomWidth,0,0);
pN = vector(0,floorOffset,0);
}
if(col==0 && row==2) {
//curtains
forward = vector(0,0,-1);
up = vector(0,roomHeight,0);
right = vector(roomWidth,0,0);
pN = vector(roomWidth*2.0,0.5,roomDepth);
}
if(col==0 && row==0) {
//curtains
forward = vector(0,0,-1);
up = vector(0,roomHeight,0);
right = vector(roomWidth,0,0);
pN = vector(roomWidth,0.5,roomDepth);
}
//getattribute("camera:pixelaspect", pa);
//getattribute("camera:resolution", res);
//float aspect = pa * res[1] / res[0] * n;
dir = forward;
pos = pN+(nu*right)+(nv*up);
}