936 lines
26 KiB
HTML
936 lines
26 KiB
HTML
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<title>Code coverage report for src/StandardMaterial.js</title>
|
||
<meta charset="utf-8" />
|
||
<link rel="stylesheet" href="../prettify.css" />
|
||
<link rel="stylesheet" href="../base.css" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<style type='text/css'>
|
||
.coverage-summary .sorter {
|
||
background-image: url(../sort-arrow-sprite.png);
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class='wrapper'>
|
||
<div class='pad1'>
|
||
<h1>
|
||
<a href="../index.html">all files</a> / <a href="index.html">src/</a> StandardMaterial.js
|
||
</h1>
|
||
<div class='clearfix'>
|
||
<div class='fl pad1y space-right2'>
|
||
<span class="strong">70.37% </span>
|
||
<span class="quiet">Statements</span>
|
||
<span class='fraction'>38/54</span>
|
||
</div>
|
||
<div class='fl pad1y space-right2'>
|
||
<span class="strong">35% </span>
|
||
<span class="quiet">Branches</span>
|
||
<span class='fraction'>7/20</span>
|
||
</div>
|
||
<div class='fl pad1y space-right2'>
|
||
<span class="strong">87.5% </span>
|
||
<span class="quiet">Functions</span>
|
||
<span class='fraction'>14/16</span>
|
||
</div>
|
||
<div class='fl pad1y space-right2'>
|
||
<span class="strong">70.37% </span>
|
||
<span class="quiet">Lines</span>
|
||
<span class='fraction'>38/54</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class='status-line medium'></div>
|
||
<pre><table class="coverage">
|
||
<tr><td class="line-count quiet">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
|
||
61
|
||
62
|
||
63
|
||
64
|
||
65
|
||
66
|
||
67
|
||
68
|
||
69
|
||
70
|
||
71
|
||
72
|
||
73
|
||
74
|
||
75
|
||
76
|
||
77
|
||
78
|
||
79
|
||
80
|
||
81
|
||
82
|
||
83
|
||
84
|
||
85
|
||
86
|
||
87
|
||
88
|
||
89
|
||
90
|
||
91
|
||
92
|
||
93
|
||
94
|
||
95
|
||
96
|
||
97
|
||
98
|
||
99
|
||
100
|
||
101
|
||
102
|
||
103
|
||
104
|
||
105
|
||
106
|
||
107
|
||
108
|
||
109
|
||
110
|
||
111
|
||
112
|
||
113
|
||
114
|
||
115
|
||
116
|
||
117
|
||
118
|
||
119
|
||
120
|
||
121
|
||
122
|
||
123
|
||
124
|
||
125
|
||
126
|
||
127
|
||
128
|
||
129
|
||
130
|
||
131
|
||
132
|
||
133
|
||
134
|
||
135
|
||
136
|
||
137
|
||
138
|
||
139
|
||
140
|
||
141
|
||
142
|
||
143
|
||
144
|
||
145
|
||
146
|
||
147
|
||
148
|
||
149
|
||
150
|
||
151
|
||
152
|
||
153
|
||
154
|
||
155
|
||
156
|
||
157
|
||
158
|
||
159
|
||
160
|
||
161
|
||
162
|
||
163
|
||
164
|
||
165
|
||
166
|
||
167
|
||
168
|
||
169
|
||
170
|
||
171
|
||
172
|
||
173
|
||
174
|
||
175
|
||
176
|
||
177
|
||
178
|
||
179
|
||
180
|
||
181
|
||
182
|
||
183
|
||
184
|
||
185
|
||
186
|
||
187
|
||
188
|
||
189
|
||
190
|
||
191
|
||
192
|
||
193
|
||
194
|
||
195
|
||
196
|
||
197
|
||
198
|
||
199
|
||
200
|
||
201
|
||
202
|
||
203
|
||
204
|
||
205
|
||
206
|
||
207
|
||
208
|
||
209
|
||
210
|
||
211
|
||
212
|
||
213
|
||
214
|
||
215
|
||
216
|
||
217
|
||
218
|
||
219
|
||
220
|
||
221
|
||
222
|
||
223
|
||
224
|
||
225
|
||
226
|
||
227
|
||
228
|
||
229
|
||
230
|
||
231
|
||
232
|
||
233
|
||
234
|
||
235
|
||
236
|
||
237
|
||
238
|
||
239
|
||
240
|
||
241
|
||
242
|
||
243
|
||
244
|
||
245
|
||
246
|
||
247
|
||
248
|
||
249
|
||
250
|
||
251
|
||
252
|
||
253
|
||
254
|
||
255
|
||
256
|
||
257
|
||
258
|
||
259
|
||
260
|
||
261
|
||
262
|
||
263
|
||
264
|
||
265
|
||
266
|
||
267
|
||
268
|
||
269
|
||
270
|
||
271
|
||
272
|
||
273
|
||
274
|
||
275
|
||
276
|
||
277
|
||
278
|
||
279
|
||
280
|
||
281
|
||
282
|
||
283
|
||
284
|
||
285
|
||
286
|
||
287
|
||
288
|
||
289
|
||
290
|
||
291</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-yes">6×</span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">6×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">6×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">6×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">6×</span>
|
||
<span class="cline-any cline-yes">6×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-yes">9×</span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-yes">18×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-yes">10×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">74×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">28×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-yes">9×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">9×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">4×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-yes">8×</span>
|
||
<span class="cline-any cline-yes">8×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">60×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">61×</span>
|
||
<span class="cline-any cline-yes">61×</span>
|
||
<span class="cline-any cline-yes">14×</span>
|
||
<span class="cline-any cline-yes">14×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">47×</span>
|
||
<span class="cline-any cline-yes">47×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-yes">1×</span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-no"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span>
|
||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import Material from './Material';
|
||
|
||
import Shader from './Shader';
|
||
import standardEssl from './shader/source/standard.glsl.js';
|
||
import util from './core/util';
|
||
|
||
// Import standard shader
|
||
Shader['import'](standardEssl);
|
||
|
||
var TEXTURE_PROPERTIES = ['diffuseMap', 'normalMap', 'roughnessMap', 'metalnessMap', 'emissiveMap', 'environmentMap', 'brdfLookup', 'ssaoMap', 'aoMap'];
|
||
var SIMPLE_PROPERTIES = ['color', 'emission', 'emissionIntensity', 'alpha', 'roughness', 'metalness', 'uvRepeat', 'uvOffset', 'aoIntensity', 'alphaCutoff'];
|
||
var PROPERTIES_CHANGE_SHADER = ['linear', 'encodeRGBM', 'decodeRGBM', 'doubleSided', 'alphaTest', 'roughnessChannel', 'metalnessChannel', 'environmentMapPrefiltered'];
|
||
|
||
var NUM_DEFINE_MAP = {
|
||
'roughnessChannel': 'ROUGHNESS_CHANNEL',
|
||
'metalnessChannel': 'METALNESS_CHANNEL'
|
||
};
|
||
var BOOL_DEFINE_MAP = {
|
||
'linear': 'SRGB_DECODE',
|
||
'encodeRGBM': 'RGBM_ENCODE',
|
||
'decodeRGBM': 'RGBM_DECODE',
|
||
'doubleSided': 'DOUBLE_SIDED',
|
||
'alphaTest': 'ALPHA_TEST',
|
||
'environmentMapPrefiltered': 'ENVIRONMENTMAP_PREFILTER'
|
||
}
|
||
|
||
|
||
var standardShader;
|
||
/**
|
||
* Standard material without custom shader.
|
||
* @constructor clay.StandardMaterial
|
||
* @extends clay.Base
|
||
* @example
|
||
* var mat = new clay.StandardMaterial({
|
||
* color: [1, 1, 1],
|
||
* diffuseMap: diffuseTexture
|
||
* });
|
||
* mat.roughness = 1;
|
||
*/
|
||
var StandardMaterial = Material.extend(function () {
|
||
if (!standardShader) {
|
||
standardShader = new Shader(Shader.source('clay.standard.vertex'), Shader.source('clay.standard.fragment'));
|
||
}
|
||
return /** @lends clay.StandardMaterial# */ {
|
||
shader: standardShader
|
||
};
|
||
}, function (option) {
|
||
// PENDING
|
||
util.extend(this, option);
|
||
// Extend after shader is created.
|
||
util.defaults(this, /** @lends clay.StandardMaterial# */ {
|
||
/**
|
||
* @type {Array.<number>}
|
||
* @default [1, 1, 1]
|
||
*/
|
||
color: [1, 1, 1],
|
||
|
||
/**
|
||
* @type {Array.<number>}
|
||
* @default [0, 0, 0]
|
||
*/
|
||
emission: [0, 0, 0],
|
||
|
||
/**
|
||
* @type {number}
|
||
* @default 0
|
||
*/
|
||
emissionIntensity: 0,
|
||
|
||
/**
|
||
* @type {number}
|
||
* @default 0.5
|
||
*/
|
||
roughness: 0.5,
|
||
|
||
/**
|
||
* @type {number}
|
||
* @default 0
|
||
*/
|
||
metalness: 0,
|
||
|
||
/**
|
||
* @type {number}
|
||
* @default 1
|
||
*/
|
||
alpha: 1,
|
||
|
||
/**
|
||
* @type {boolean}
|
||
*/
|
||
alphaTest: false,
|
||
|
||
/**
|
||
* Cutoff threshold for alpha test
|
||
* @type {number}
|
||
*/
|
||
alphaCutoff: 0.9,
|
||
|
||
/**
|
||
* @type {boolean}
|
||
*/
|
||
// TODO Must disable culling.
|
||
doubleSided: false,
|
||
|
||
/**
|
||
* @type {clay.Texture2D}
|
||
*/
|
||
|
||
/**
|
||
* @type {clay.Texture2D}
|
||
*/
|
||
|
||
/**
|
||
* @type {clay.Texture2D}
|
||
*/
|
||
|
||
/**
|
||
* @type {clay.Texture2D}
|
||
*/
|
||
/**
|
||
* @type {clay.Texture2D}
|
||
*/
|
||
|
||
/**
|
||
* @type {clay.TextureCube}
|
||
*/
|
||
|
||
/**
|
||
* @type {clay.BoundingBox}
|
||
*/
|
||
|
||
/**
|
||
* BRDF Lookup is generated by clay.util.cubemap.integrateBrdf
|
||
* @type {clay.Texture2D}
|
||
*/
|
||
|
||
/**
|
||
* @type {clay.Texture2D}
|
||
*/
|
||
|
||
/**
|
||
* @type {clay.Texture2D}
|
||
*/
|
||
|
||
/**
|
||
* @type {Array.<number>}
|
||
* @default [1, 1]
|
||
*/
|
||
uvRepeat: [1, 1],
|
||
|
||
/**
|
||
* @type {Array.<number>}
|
||
* @default [0, 0]
|
||
*/
|
||
uvOffset: [0, 0],
|
||
|
||
/**
|
||
* @type {number}
|
||
* @default 1
|
||
*/
|
||
aoIntensity: 1,
|
||
|
||
/**
|
||
* @type {boolean}
|
||
*/
|
||
environmentMapPrefiltered: false,
|
||
|
||
/**
|
||
* @type {boolean}
|
||
*/
|
||
linear: false,
|
||
|
||
/**
|
||
* @type {boolean}
|
||
*/
|
||
encodeRGBM: false,
|
||
|
||
/**
|
||
* @type {boolean}
|
||
*/
|
||
decodeRGBM: false,
|
||
|
||
/**
|
||
* @type {Number}
|
||
*/
|
||
roughnessChannel: 0,
|
||
/**
|
||
* @type {Number}
|
||
*/
|
||
metalnessChannel: 1
|
||
});
|
||
|
||
this.define('fragment', 'USE_METALNESS');
|
||
this.define('fragment', 'USE_ROUGHNESS');
|
||
}, {
|
||
clone: function () {
|
||
var material = new StandardMaterial({
|
||
name: this.name
|
||
});
|
||
TEXTURE_PROPERTIES.forEach(function (propName) {
|
||
<span class="missing-if-branch" title="if path not taken" >I</span>if (this[propName]) {
|
||
<span class="cstat-no" title="statement not covered" > material[propName] = this[propName];</span>
|
||
}
|
||
}, this);
|
||
SIMPLE_PROPERTIES.concat(PROPERTIES_CHANGE_SHADER).forEach(function (propName) {
|
||
material[propName] = this[propName];
|
||
}, this);
|
||
return material;
|
||
}
|
||
});
|
||
|
||
SIMPLE_PROPERTIES.forEach(function (propName) {
|
||
Object.defineProperty(StandardMaterial.prototype, propName, {
|
||
get: function () {
|
||
return this.get(propName);
|
||
},
|
||
set: function (value) {
|
||
this.setUniform(propName, value);
|
||
}
|
||
});
|
||
});
|
||
|
||
TEXTURE_PROPERTIES.forEach(function (propName) {
|
||
Object.defineProperty(StandardMaterial.prototype, propName, {
|
||
get: function () {
|
||
return this.get(propName);
|
||
},
|
||
set: function (value) {
|
||
this.setUniform(propName, value);
|
||
}
|
||
});
|
||
});
|
||
|
||
PROPERTIES_CHANGE_SHADER.forEach(function (propName) {
|
||
var privateKey = '_' + propName;
|
||
Object.defineProperty(StandardMaterial.prototype, propName, {
|
||
get: function () {
|
||
return this[privateKey];
|
||
},
|
||
set: function (value) {
|
||
this[privateKey] = value;
|
||
if (propName in NUM_DEFINE_MAP) {
|
||
var defineName = NUM_DEFINE_MAP[propName];
|
||
this.define('fragment', defineName, value);
|
||
}
|
||
else {
|
||
var defineName = BOOL_DEFINE_MAP[propName];
|
||
value ? this.define('fragment', defineName) : this.undefine('fragment', defineName);
|
||
}
|
||
}
|
||
});
|
||
});
|
||
|
||
Object.defineProperty(StandardMaterial.prototype, 'environmentBox', {
|
||
get: function () <span class="fstat-no" title="function not covered" >{</span>
|
||
var envBox = <span class="cstat-no" title="statement not covered" >this._environmentBox;</span>
|
||
<span class="cstat-no" title="statement not covered" > if (envBox) {</span>
|
||
<span class="cstat-no" title="statement not covered" > envBox.min.setArray(this.get('environmentBoxMin'));</span>
|
||
<span class="cstat-no" title="statement not covered" > envBox.max.setArray(this.get('environmentBoxMax'));</span>
|
||
}
|
||
<span class="cstat-no" title="statement not covered" > return envBox;</span>
|
||
},
|
||
|
||
set: function (value) <span class="fstat-no" title="function not covered" >{</span>
|
||
<span class="cstat-no" title="statement not covered" > this._environmentBox = value;</span>
|
||
|
||
var uniforms = <span class="cstat-no" title="statement not covered" >this.uniforms = this.uniforms || {};</span>
|
||
<span class="cstat-no" title="statement not covered" > uniforms['environmentBoxMin'] = uniforms['environmentBoxMin'] || {</span>
|
||
value: null
|
||
};
|
||
<span class="cstat-no" title="statement not covered" > uniforms['environmentBoxMax'] = uniforms['environmentBoxMax'] || {</span>
|
||
value: null
|
||
};
|
||
|
||
// TODO Can't detect operation like box.min = new Vector()
|
||
<span class="cstat-no" title="statement not covered" > if (value) {</span>
|
||
<span class="cstat-no" title="statement not covered" > this.setUniform('environmentBoxMin', value.min.array);</span>
|
||
<span class="cstat-no" title="statement not covered" > this.setUniform('environmentBoxMax', value.max.array);</span>
|
||
}
|
||
|
||
<span class="cstat-no" title="statement not covered" > if (value) {</span>
|
||
<span class="cstat-no" title="statement not covered" > this.define('fragment', 'PARALLAX_CORRECTED');</span>
|
||
}
|
||
else {
|
||
<span class="cstat-no" title="statement not covered" > this.undefine('fragment', 'PARALLAX_CORRECTED');</span>
|
||
}
|
||
}
|
||
});
|
||
|
||
export default StandardMaterial;
|
||
</pre></td></tr>
|
||
</table></pre>
|
||
<div class='push'></div><!-- for sticky footer -->
|
||
</div><!-- /wrapper -->
|
||
<div class='footer quiet pad2 space-top1 center small'>
|
||
Code coverage
|
||
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Fri Feb 23 2018 01:09:23 GMT+0800 (CST)
|
||
</div>
|
||
</div>
|
||
<script src="../prettify.js"></script>
|
||
<script>
|
||
window.onload = function () {
|
||
if (typeof prettyPrint === 'function') {
|
||
prettyPrint();
|
||
}
|
||
};
|
||
</script>
|
||
<script src="../sorter.js"></script>
|
||
</body>
|
||
</html>
|