forked from AcademySoftwareFoundation/MaterialX
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathenvironment_map.mtlx
60 lines (53 loc) · 2.33 KB
/
environment_map.mtlx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?xml version="1.0"?>
<materialx version="1.39" colorspace="lin_rec709">
<nodegraph name="envMap">
<!-- Get view direction -->
<viewdirection name="viewDir" type="vector3" />
<!-- Compute longitude coordinate -->
<separate3 name="viewDirChannels" type="multioutput">
<input name="in" type="vector3" nodename="viewDir" />
</separate3>
<atan2 name="angleXZ" type="float">
<input name="iny" type="float" nodename="viewDirChannels" output="outx" />
<input name="inx" type="float" nodename="viewDirChannels" output="outz" />
</atan2>
<multiply name="scaleXZ" type="float">
<input name="in1" type="float" nodename="angleXZ" />
<input name="in2" type="float" value="-0.15915494" />
</multiply>
<add name="longitude" type="float">
<input name="in1" type="float" nodename="scaleXZ" />
<input name="in2" type="float" value="0.5" />
</add>
<!-- Compute latitude coordinate -->
<asin name="angleY" type="float">
<input name="in" type="float" nodename="viewDirChannels" output="outy" />
</asin>
<multiply name="scaleY" type="float">
<input name="in1" type="float" nodename="angleY" />
<input name="in2" type="float" value="0.31830989" />
</multiply>
<add name="latitude" type="float">
<input name="in1" type="float" nodename="scaleY" />
<input name="in2" type="float" value="0.5" />
</add>
<!-- Sample the latitude-longitude map -->
<combine2 name="mapUvs" type="vector2">
<input name="in1" type="float" nodename="longitude" />
<input name="in2" type="float" nodename="latitude" />
</combine2>
<image name="envImage" type="color3">
<input name="file" type="filename" value="resources/Lights/san_giuseppe_bridge.hdr" />
<input name="texcoord" type="vector2" nodename="mapUvs" />
<input name="uaddressmode" type="string" value="periodic" />
<input name="vaddressmode" type="string" value="clamp" />
<input name="filtertype" type="string" value="linear" />
</image>
<multiply name="envImageAdjusted" type="color3">
<input name="in1" type="color3" nodename="envImage" />
<input name="in2" type="float" value="1.0" />
</multiply>
<!-- Return the resulting color -->
<output name="out" type="color3" nodename="envImageAdjusted" />
</nodegraph>
</materialx>