Skip to content

Commit 18e0b9f

Browse files
authored
Merge pull request #16886 from aardgoose/example-webgl2-fixes
Example webgl2 fixes
2 parents bc3e69c + 78dfdfe commit 18e0b9f

16 files changed

+114
-89
lines changed

examples/js/misc/GPUComputationRenderer.js

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
* @param {WebGLRenderer} renderer The renderer
9898
*/
9999

100-
THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
100+
THREE.GPUComputationRenderer = function ( sizeX, sizeY, renderer ) {
101101

102102
this.variables = [];
103103

@@ -109,7 +109,7 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
109109
camera.position.z = 1;
110110

111111
var passThruUniforms = {
112-
texture: { value: null }
112+
passThruTexture: { value: null }
113113
};
114114

115115
var passThruShader = createShaderMaterial( getPassThroughFragmentShader(), passThruUniforms );
@@ -118,7 +118,7 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
118118
scene.add( mesh );
119119

120120

121-
this.addVariable = function( variableName, computeFragmentShader, initialValueTexture ) {
121+
this.addVariable = function ( variableName, computeFragmentShader, initialValueTexture ) {
122122

123123
var material = this.createShaderMaterial( computeFragmentShader );
124124

@@ -140,15 +140,16 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
140140

141141
};
142142

143-
this.setVariableDependencies = function( variable, dependencies ) {
143+
this.setVariableDependencies = function ( variable, dependencies ) {
144144

145145
variable.dependencies = dependencies;
146146

147147
};
148148

149-
this.init = function() {
149+
this.init = function () {
150150

151-
if ( ! renderer.extensions.get( "OES_texture_float" ) ) {
151+
if ( ! renderer.extensions.get( "OES_texture_float" ) &&
152+
! renderer.capabilities.isWebGL2 ) {
152153

153154
return "No OES_texture_float support for float textures.";
154155

@@ -160,7 +161,7 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
160161

161162
}
162163

163-
for ( var i = 0; i < this.variables.length; i++ ) {
164+
for ( var i = 0; i < this.variables.length; i ++ ) {
164165

165166
var variable = this.variables[ i ];
166167

@@ -175,24 +176,28 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
175176
var uniforms = material.uniforms;
176177
if ( variable.dependencies !== null ) {
177178

178-
for ( var d = 0; d < variable.dependencies.length; d++ ) {
179+
for ( var d = 0; d < variable.dependencies.length; d ++ ) {
179180

180181
var depVar = variable.dependencies[ d ];
181182

182183
if ( depVar.name !== variable.name ) {
183184

184185
// Checks if variable exists
185186
var found = false;
186-
for ( var j = 0; j < this.variables.length; j++ ) {
187+
for ( var j = 0; j < this.variables.length; j ++ ) {
187188

188189
if ( depVar.name === this.variables[ j ].name ) {
190+
189191
found = true;
190192
break;
193+
191194
}
192195

193196
}
194197
if ( ! found ) {
198+
195199
return "Variable dependency not found. Variable=" + variable.name + ", dependency=" + depVar.name;
200+
196201
}
197202

198203
}
@@ -202,7 +207,9 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
202207
material.fragmentShader = "\nuniform sampler2D " + depVar.name + ";\n" + material.fragmentShader;
203208

204209
}
210+
205211
}
212+
206213
}
207214

208215
this.currentTextureIndex = 0;
@@ -211,20 +218,20 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
211218

212219
};
213220

214-
this.compute = function() {
221+
this.compute = function () {
215222

216223
var currentTextureIndex = this.currentTextureIndex;
217224
var nextTextureIndex = this.currentTextureIndex === 0 ? 1 : 0;
218225

219-
for ( var i = 0, il = this.variables.length; i < il; i++ ) {
226+
for ( var i = 0, il = this.variables.length; i < il; i ++ ) {
220227

221228
var variable = this.variables[ i ];
222229

223230
// Sets texture dependencies uniforms
224231
if ( variable.dependencies !== null ) {
225232

226233
var uniforms = variable.material.uniforms;
227-
for ( var d = 0, dl = variable.dependencies.length; d < dl; d++ ) {
234+
for ( var d = 0, dl = variable.dependencies.length; d < dl; d ++ ) {
228235

229236
var depVar = variable.dependencies[ d ];
230237

@@ -240,15 +247,16 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
240247
}
241248

242249
this.currentTextureIndex = nextTextureIndex;
250+
243251
};
244252

245-
this.getCurrentRenderTarget = function( variable ) {
253+
this.getCurrentRenderTarget = function ( variable ) {
246254

247255
return variable.renderTargets[ this.currentTextureIndex ];
248256

249257
};
250258

251-
this.getAlternateRenderTarget = function( variable ) {
259+
this.getAlternateRenderTarget = function ( variable ) {
252260

253261
return variable.renderTargets[ this.currentTextureIndex === 0 ? 1 : 0 ];
254262

@@ -282,7 +290,7 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
282290

283291
this.createShaderMaterial = createShaderMaterial;
284292

285-
this.createRenderTarget = function( sizeXTexture, sizeYTexture, wrapS, wrapT, minFilter, magFilter ) {
293+
this.createRenderTarget = function ( sizeXTexture, sizeYTexture, wrapS, wrapT, minFilter, magFilter ) {
286294

287295
sizeXTexture = sizeXTexture || sizeX;
288296
sizeYTexture = sizeYTexture || sizeY;
@@ -308,7 +316,7 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
308316

309317
};
310318

311-
this.createTexture = function() {
319+
this.createTexture = function () {
312320

313321
var a = new Float32Array( sizeX * sizeY * 4 );
314322
var texture = new THREE.DataTexture( a, sizeX, sizeY, THREE.RGBAFormat, THREE.FloatType );
@@ -318,21 +326,21 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
318326

319327
};
320328

321-
this.renderTexture = function( input, output ) {
329+
this.renderTexture = function ( input, output ) {
322330

323331
// Takes a texture, and render out in rendertarget
324332
// input = Texture
325333
// output = RenderTarget
326334

327-
passThruUniforms.texture.value = input;
335+
passThruUniforms.passThruTexture.value = input;
328336

329-
this.doRenderTarget( passThruShader, output);
337+
this.doRenderTarget( passThruShader, output );
330338

331-
passThruUniforms.texture.value = null;
339+
passThruUniforms.passThruTexture.value = null;
332340

333341
};
334342

335-
this.doRenderTarget = function( material, output ) {
343+
this.doRenderTarget = function ( material, output ) {
336344

337345
var currentRenderTarget = renderer.getRenderTarget();
338346

@@ -359,13 +367,13 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
359367

360368
function getPassThroughFragmentShader() {
361369

362-
return "uniform sampler2D texture;\n" +
370+
return "uniform sampler2D passThruTexture;\n" +
363371
"\n" +
364372
"void main() {\n" +
365373
"\n" +
366374
" vec2 uv = gl_FragCoord.xy / resolution.xy;\n" +
367375
"\n" +
368-
" gl_FragColor = texture2D( texture, uv );\n" +
376+
" gl_FragColor = texture2D( passThruTexture, uv );\n" +
369377
"\n" +
370378
"}\n";
371379

examples/js/shaders/OceanShaders.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,11 @@ THREE.OceanShaders[ 'ocean_initial_spectrum' ] = {
110110
'return sqrt(G * k * (1.0 + pow2(k / KM)));',
111111
'}',
112112

113+
'#if __VERSION__ == 100',
113114
'float tanh (float x) {',
114115
'return (1.0 - exp(-2.0 * x)) / (1.0 + exp(-2.0 * x));',
115116
'}',
117+
'#endif',
116118

117119
'void main (void) {',
118120
'vec2 coordinates = gl_FragCoord.xy - 0.5;',

examples/js/shaders/SMAAShader.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,11 @@ THREE.SMAAWeightsShader = {
180180
"varying vec4 vOffset[3];",
181181
"varying vec2 vPixcoord;",
182182

183+
"#if __VERSION__ == 100",
183184
"vec2 round( vec2 x ) {",
184185
"return sign( x ) * floor( abs( x ) + 0.5 );",
185186
"}",
187+
"#endif",
186188

187189
"float SMAASearchLength( sampler2D searchTex, vec2 e, float bias, float scale ) {",
188190
// Not required if searchTex accesses are set to point:

0 commit comments

Comments
 (0)