expre-gen/blender/3.4/scripts/addons/cycles/shader/node_environment_texture.oso

322 lines
18 KiB
Plaintext
Raw Normal View History

2025-10-17 09:47:23 +08:00
OpenShadingLanguage 1.00
# Compiled by oslc 1.12.6.2
# options: -q -O2 -I/home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders -I/home/blender/git/blender-v340/lib/linux_centos7_x86_64/osl/share/OSL/shaders -o /home/blender/git/blender-v340/build_release/intern/cycles/kernel/osl/shaders/node_environment_texture.oso
shader node_environment_texture
param int use_mapping 0 %read{2,2} %write{2147483647,-1}
param matrix mapping 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %read{3,3} %write{2147483647,-1} %derivs
param vector Vector 0 0 0 %read{1,1} %write{0,0} %derivs %initexpr
param string filename "" %read{49,49} %write{2147483647,-1}
param string projection "equirectangular" %read{5,5} %write{2147483647,-1}
param string interpolation "linear" %read{49,49} %write{2147483647,-1}
param int compress_as_srgb 0 %read{68,68} %write{2147483647,-1}
param int ignore_alpha 0 %read{50,50} %write{2147483647,-1}
param int unassociate_alpha 0 %read{52,52} %write{2147483647,-1}
param int is_float 1 %read{64,64} %write{2147483647,-1}
oparam color Color 0 0 0 %read{61,100} %write{49,115}
oparam float Alpha 1 %read{54,61} %write{49,51}
global point P %read{0,0} %write{2147483647,-1} %derivs
local float ___404_u %read{25,25} %write{13,13} %derivs
local float ___404_v %read{25,25} %write{24,24} %derivs
local vector ___405_dir %read{28,42} %write{27,38} %derivs
local float ___405_div %read{36,38} %write{35,35} %derivs
local float ___405_u %read{45,45} %write{41,41} %derivs
local float ___405_v %read{45,45} %write{44,44} %derivs
local vector p %read{3,47} %write{1,45} %derivs
const string $const1 "equirectangular" %read{5,5} %write{2147483647,-1}
temp int $tmp1 %read{6,6} %write{5,5}
const string $const2 "environment_texture_direction_to_equirectangular" %read{7,7} %write{2147483647,-1}
temp float $tmp2 %read{11,11} %write{10,10} %derivs
const int $const3 1 %read{8,85} %write{2147483647,-1}
temp float $tmp3 %read{10,10} %write{8,8} %derivs
const int $const4 0 %read{9,70} %write{2147483647,-1}
temp float $tmp4 %read{10,10} %write{9,9} %derivs
temp float $tmp5 %read{12,12} %write{11,11} %derivs
const float $const5 6.2831855 %read{12,12} %write{2147483647,-1}
temp float $tmp6 %read{13,13} %write{12,12} %derivs
const float $const6 0.5 %read{13,44} %write{2147483647,-1}
temp float $tmp7 %read{23,23} %write{22,22} %derivs
const int $const7 2 %read{14,100} %write{2147483647,-1}
temp float $tmp8 %read{22,22} %write{14,14} %derivs
temp float $tmp9 %read{22,22} %write{21,21} %derivs
temp float $tmp10 %read{18,18} %write{15,15} %derivs
temp float $tmp11 %read{19,19} %write{16,16} %derivs
const string $const8 "hypot" %read{17,17} %write{2147483647,-1}
temp float $tmp12 %read{20,20} %write{18,18} %derivs
temp float $tmp13 %read{20,20} %write{19,19} %derivs
temp float $tmp14 %read{21,21} %write{20,20} %derivs
const float $const9 3.1415927 %read{23,23} %write{2147483647,-1}
temp float $tmp15 %read{24,24} %write{23,23} %derivs
const float $const10 0 %read{25,106} %write{2147483647,-1}
const string $const11 "environment_texture_direction_to_mirrorball" %read{26,26} %write{2147483647,-1}
temp float $tmp16 %read{29,29} %write{28,28} %derivs
const float $const12 1 %read{29,111} %write{2147483647,-1}
temp float $tmp17 %read{30,30} %write{29,29} %derivs
const float $const13 2 %read{35,35} %write{2147483647,-1}
temp float $tmp18 %read{35,35} %write{34,34} %derivs
temp float $tmp19 %read{34,34} %write{33,33} %derivs
const float $const14 -0.5 %read{32,32} %write{2147483647,-1}
temp float $tmp20 %read{32,32} %write{31,31} %derivs
temp float $tmp21 %read{33,33} %write{32,32} %derivs
temp int $tmp22 %read{37,37} %write{36,36}
temp float $tmp23 %read{40,40} %write{39,39} %derivs
temp float $tmp24 %read{41,41} %write{40,40} %derivs
temp float $tmp25 %read{43,43} %write{42,42} %derivs
temp float $tmp26 %read{44,44} %write{43,43} %derivs
temp float $tmp27 %read{49,49} %write{46,46} %derivs
temp float $tmp28 %read{48,48} %write{47,47} %derivs
temp float $tmp29 %read{49,49} %write{48,48} %derivs
const string $const15 "wrap" %read{49,49} %write{2147483647,-1}
const string $const16 "periodic" %read{49,49} %write{2147483647,-1}
const string $const17 "interp" %read{49,49} %write{2147483647,-1}
const string $const18 "alpha" %read{49,49} %write{2147483647,-1}
const string $const19 "color_unpremultiply" %read{53,53} %write{2147483647,-1}
temp int $tmp30 %read{55,55} %write{54,54}
temp int $tmp31 %read{56,60} %write{55,59}
temp int $tmp32 %read{58,58} %write{57,57}
temp int $tmp33 %read{59,59} %write{58,58}
temp int $tmp34 %read{65,65} %write{64,64}
temp color $tmp35 %read{67,67} %write{66,66}
const string $const20 "color_srgb_to_scene_linear" %read{69,101} %write{2147483647,-1}
temp float $tmp36 %read{115,115} %write{76,83}
temp float $tmp37 %read{72,80} %write{70,70}
const float $const21 0.04045 %read{72,102} %write{2147483647,-1}
temp int $tmp38 %read{73,73} %write{72,72}
temp int $tmp39 %read{75,75} %write{74,74}
const float $const22 12.92 %read{77,107} %write{2147483647,-1}
temp float $tmp40 %read{78,78} %write{77,77}
const float $const23 0.055 %read{80,110} %write{2147483647,-1}
temp float $tmp41 %read{82,82} %write{80,80}
const float $const24 1.055 %read{81,111} %write{2147483647,-1}
temp float $tmp42 %read{82,82} %write{81,81}
temp float $tmp43 %read{83,83} %write{82,82}
const float $const25 2.4 %read{83,113} %write{2147483647,-1}
temp float $tmp44 %read{115,115} %write{91,98}
temp float $tmp45 %read{87,95} %write{85,85}
temp int $tmp46 %read{88,88} %write{87,87}
temp int $tmp47 %read{90,90} %write{89,89}
temp float $tmp48 %read{93,93} %write{92,92}
temp float $tmp49 %read{97,97} %write{95,95}
temp float $tmp50 %read{97,97} %write{96,96}
temp float $tmp51 %read{98,98} %write{97,97}
temp float $tmp52 %read{115,115} %write{106,113}
temp float $tmp53 %read{102,110} %write{100,100}
temp int $tmp54 %read{103,103} %write{102,102}
temp int $tmp55 %read{105,105} %write{104,104}
temp float $tmp56 %read{108,108} %write{107,107}
temp float $tmp57 %read{112,112} %write{110,110}
temp float $tmp58 %read{112,112} %write{111,111}
temp float $tmp59 %read{113,113} %write{112,112}
code Vector
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:33
# vector Vector = P,
assign Vector P %filename{"/home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl"} %line{33} %argrw{"wr"}
code ___main___
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:44
# vector p = Vector;
assign p Vector %filename{"/home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl"} %line{44} %argrw{"wr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:46
# if (use_mapping)
if use_mapping 4 4 %line{46} %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:47
# p = transform(mapping, p);
transformv p mapping p %line{47} %argrw{"wrr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:49
# p = normalize(p);
normalize p p %line{49} %argrw{"wr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:51
# if (projection == "equirectangular")
eq $tmp1 projection $const1 %line{51} %argrw{"wrr"}
if $tmp1 26 46 %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:52
# p = environment_texture_direction_to_equirectangular(p);
functioncall $const2 26 %line{52} %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:9
# float u = -atan2(dir[1], dir[0]) / (M_2PI) + 0.5;
compref $tmp3 p $const3 %line{9} %argrw{"wrr"}
compref $tmp4 p $const4 %argrw{"wrr"}
atan2 $tmp2 $tmp3 $tmp4 %argrw{"wrr"}
neg $tmp5 $tmp2 %argrw{"wr"}
div $tmp6 $tmp5 $const5 %argrw{"wrr"}
add ___404_u $tmp6 $const6 %argrw{"wrr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:10
# float v = atan2(dir[2], hypot(dir[0], dir[1])) / M_PI + 0.5;
compref $tmp8 p $const7 %line{10} %argrw{"wrr"}
compref $tmp10 p $const4 %argrw{"wrr"}
compref $tmp11 p $const3 %argrw{"wrr"}
functioncall $const8 22 %argrw{"r"}
# /home/blender/git/blender-v340/lib/linux_centos7_x86_64/osl/share/OSL/shaders/stdosl.h:101
# float hypot (float a, float b) { return sqrt (a*a + b*b); }
mul $tmp12 $tmp10 $tmp10 %filename{"/home/blender/git/blender-v340/lib/linux_centos7_x86_64/osl/share/OSL/shaders/stdosl.h"} %line{101} %argrw{"wrr"}
mul $tmp13 $tmp11 $tmp11 %argrw{"wrr"}
add $tmp14 $tmp12 $tmp13 %argrw{"wrr"}
sqrt $tmp9 $tmp14 %argrw{"wr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:10
# float v = atan2(dir[2], hypot(dir[0], dir[1])) / M_PI + 0.5;
atan2 $tmp7 $tmp8 $tmp9 %filename{"/home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl"} %line{10} %argrw{"wrr"}
div $tmp15 $tmp7 $const9 %argrw{"wrr"}
add ___404_v $tmp15 $const6 %argrw{"wrr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:12
# return vector(u, v, 0.0);
vector p ___404_u ___404_v $const10 %line{12} %argrw{"wrrr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:54
# p = environment_texture_direction_to_mirrorball(p);
functioncall $const11 46 %line{54} %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:17
# vector dir = idir;
assign ___405_dir p %line{17} %argrw{"wr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:18
# dir[1] -= 1.0;
compref $tmp16 ___405_dir $const3 %line{18} %argrw{"wrr"}
sub $tmp17 $tmp16 $const12 %argrw{"wrr"}
compassign ___405_dir $const3 $tmp17 %argrw{"wrr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:20
# float div = 2.0 * sqrt(max(-0.5 * dir[1], 0.0));
compref $tmp20 ___405_dir $const3 %line{20} %argrw{"wrr"}
mul $tmp21 $const14 $tmp20 %argrw{"wrr"}
max $tmp19 $tmp21 $const10 %argrw{"wrr"}
sqrt $tmp18 $tmp19 %argrw{"wr"}
mul ___405_div $const13 $tmp18 %argrw{"wrr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:21
# if (div > 0.0)
gt $tmp22 ___405_div $const10 %line{21} %argrw{"wrr"}
if $tmp22 39 39 %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:22
# dir /= div;
div ___405_dir ___405_dir ___405_div %line{22} %argrw{"wrr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:24
# float u = 0.5 * (dir[0] + 1.0);
compref $tmp23 ___405_dir $const4 %line{24} %argrw{"wrr"}
add $tmp24 $tmp23 $const12 %argrw{"wrr"}
mul ___405_u $const6 $tmp24 %argrw{"wrr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:25
# float v = 0.5 * (dir[2] + 1.0);
compref $tmp25 ___405_dir $const7 %line{25} %argrw{"wrr"}
add $tmp26 $tmp25 $const12 %argrw{"wrr"}
mul ___405_v $const6 $tmp26 %argrw{"wrr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:27
# return vector(u, v, 0.0);
vector p ___405_u ___405_v $const10 %line{27} %argrw{"wrrr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:58
# filename, p[0], 1.0 - p[1], "wrap", "periodic", "interp", interpolation, "alpha", Alpha);
compref $tmp27 p $const4 %line{58} %argrw{"wrr"}
compref $tmp28 p $const3 %argrw{"wrr"}
sub $tmp29 $const12 $tmp28 %argrw{"wrr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:57
# Color = (color)texture(
texture Color filename $tmp27 $tmp29 $const15 $const16 $const17 interpolation $const18 Alpha %line{57} %argrw{"wrrrrrrrrw"} %argderivs{2,3}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:60
# if (ignore_alpha) {
if ignore_alpha 52 68 %line{60} %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:61
# Alpha = 1.0;
assign Alpha $const12 %line{61} %argrw{"wr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:63
# else if (unassociate_alpha) {
if unassociate_alpha 68 68 %line{63} %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:64
# Color = color_unpremultiply(Color, Alpha);
functioncall $const19 64 %line{64} %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:38
# if (alpha != 1.0 && alpha != 0.0)
neq $tmp30 Alpha $const12 %filename{"/home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h"} %line{38} %argrw{"wrr"}
neq $tmp31 $tmp30 $const4 %argrw{"wrr"}
if $tmp31 60 60 %argrw{"r"}
neq $tmp32 Alpha $const10 %argrw{"wrr"}
neq $tmp33 $tmp32 $const4 %argrw{"wrr"}
assign $tmp31 $tmp33 %argrw{"wr"}
if $tmp31 63 63 %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:39
# return c / alpha;
div Color Color Alpha %line{39} %argrw{"wrr"}
return
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:41
# return c;
assign Color Color %line{41} %argrw{"wr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:66
# if (!is_float)
eq $tmp34 is_float $const4 %filename{"/home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl"} %line{66} %argrw{"wrr"}
if $tmp34 68 68 %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:67
# Color = min(Color, 1.0);
assign $tmp35 $const12 %line{67} %argrw{"wr"}
min Color Color $tmp35 %argrw{"wrr"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:70
# if (compress_as_srgb)
if compress_as_srgb 116 116 %line{70} %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_environment_texture.osl:71
# Color = color_srgb_to_scene_linear(Color);
functioncall $const20 116 %line{71} %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:24
# return color(color_srgb_to_scene_linear(c[0]),
compref $tmp37 Color $const4 %filename{"/home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h"} %line{24} %argrw{"wrr"}
functioncall $const20 85 %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:8
# if (c < 0.04045)
lt $tmp38 $tmp37 $const21 %line{8} %argrw{"wrr"}
if $tmp38 80 85 %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:9
# return (c < 0.0) ? 0.0 : c * (1.0 / 12.92);
lt $tmp39 $tmp37 $const10 %line{9} %argrw{"wrr"}
if $tmp39 77 79 %argrw{"r"}
assign $tmp36 $const10 %argrw{"wr"}
div $tmp40 $const12 $const22 %argrw{"wrr"}
mul $tmp36 $tmp37 $tmp40 %argrw{"wrr"}
return
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:11
# return pow((c + 0.055) * (1.0 / 1.055), 2.4);
add $tmp41 $tmp37 $const23 %line{11} %argrw{"wrr"}
div $tmp42 $const12 $const24 %argrw{"wrr"}
mul $tmp43 $tmp41 $tmp42 %argrw{"wrr"}
pow $tmp36 $tmp43 $const25 %argrw{"wrr"}
return
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:25
# color_srgb_to_scene_linear(c[1]),
compref $tmp45 Color $const3 %line{25} %argrw{"wrr"}
functioncall $const20 100 %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:8
# if (c < 0.04045)
lt $tmp46 $tmp45 $const21 %line{8} %argrw{"wrr"}
if $tmp46 95 100 %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:9
# return (c < 0.0) ? 0.0 : c * (1.0 / 12.92);
lt $tmp47 $tmp45 $const10 %line{9} %argrw{"wrr"}
if $tmp47 92 94 %argrw{"r"}
assign $tmp44 $const10 %argrw{"wr"}
div $tmp48 $const12 $const22 %argrw{"wrr"}
mul $tmp44 $tmp45 $tmp48 %argrw{"wrr"}
return
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:11
# return pow((c + 0.055) * (1.0 / 1.055), 2.4);
add $tmp49 $tmp45 $const23 %line{11} %argrw{"wrr"}
div $tmp50 $const12 $const24 %argrw{"wrr"}
mul $tmp51 $tmp49 $tmp50 %argrw{"wrr"}
pow $tmp44 $tmp51 $const25 %argrw{"wrr"}
return
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:26
# color_srgb_to_scene_linear(c[2]));
compref $tmp53 Color $const7 %line{26} %argrw{"wrr"}
functioncall $const20 115 %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:8
# if (c < 0.04045)
lt $tmp54 $tmp53 $const21 %line{8} %argrw{"wrr"}
if $tmp54 110 115 %argrw{"r"}
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:9
# return (c < 0.0) ? 0.0 : c * (1.0 / 12.92);
lt $tmp55 $tmp53 $const10 %line{9} %argrw{"wrr"}
if $tmp55 107 109 %argrw{"r"}
assign $tmp52 $const10 %argrw{"wr"}
div $tmp56 $const12 $const22 %argrw{"wrr"}
mul $tmp52 $tmp53 $tmp56 %argrw{"wrr"}
return
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:11
# return pow((c + 0.055) * (1.0 / 1.055), 2.4);
add $tmp57 $tmp53 $const23 %line{11} %argrw{"wrr"}
div $tmp58 $const12 $const24 %argrw{"wrr"}
mul $tmp59 $tmp57 $tmp58 %argrw{"wrr"}
pow $tmp52 $tmp59 $const25 %argrw{"wrr"}
return
# /home/blender/git/blender-v340/blender.git/intern/cycles/kernel/osl/shaders/node_color.h:24
# return color(color_srgb_to_scene_linear(c[0]),
color Color $tmp36 $tmp44 $tmp52 %line{24} %argrw{"wrrr"}
end