提交 59aebeda 编写于 作者: M Mr.doob

ShaderMaterial: Added derivatives property so we can inject the directive first thing. See #6493.

上级 6430947e
......@@ -59,7 +59,6 @@ THREE.ShaderSkin = {
fragmentShader: [
"#define USE_BUMPMAP",
"#extension GL_OES_standard_derivatives : enable",
"uniform bool enableBump;",
"uniform bool enableSpecular;",
......
......@@ -282,7 +282,7 @@
uniforms[ "offsetRepeat" ].value.set( 0.001, 0.001, 0.998, 0.998 );
var material = new THREE.ShaderMaterial( { fragmentShader: fragmentShader, vertexShader: vertexShader, uniforms: uniforms, lights: true } );
var material = new THREE.ShaderMaterial( { fragmentShader: fragmentShader, vertexShader: vertexShader, uniforms: uniforms, lights: true, derivatives: true } );
mesh = new THREE.Mesh( geometry, material );
......
......@@ -59,6 +59,8 @@ THREE.ShaderMaterial = function ( parameters ) {
this.morphTargets = false; // set to use morph targets
this.morphNormals = false; // set to use morph normals
this.derivatives = false; // set to use derivatives
// When rendered geometry doesn't include these attributes but the material does,
// use these default values in WebGL. This avoids errors when buffer data is missing.
this.defaultAttributeValues = {
......
......@@ -275,7 +275,7 @@ THREE.WebGLProgram = ( function () {
prefix_fragment = [
( parameters.bumpMap || parameters.normalMap || parameters.flatShading ) ? '#extension GL_OES_standard_derivatives : enable' : '',
( parameters.bumpMap || parameters.normalMap || parameters.flatShading || material.derivatives ) ? '#extension GL_OES_standard_derivatives : enable' : '',
'precision ' + parameters.precision + ' float;',
'precision ' + parameters.precision + ' int;',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册