瀏覽代碼

Fix crash of some nme shaders in webgl1

Popov72 4 年之前
父節點
當前提交
76d8ee1583

+ 1 - 0
src/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.ts

@@ -941,6 +941,7 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
         state.sharedData.hints.needAlphaTesting = state.sharedData.hints.needAlphaTesting || this.useAlphaTest;
 
         state._emitExtension("lod", "#extension GL_EXT_shader_texture_lod : enable", "defined(LODBASEDMICROSFURACE)");
+        state._emitExtension("derivatives", "#extension GL_OES_standard_derivatives : enable");
 
         //
         // Includes

+ 2 - 0
src/Materials/Node/nodeMaterialBuildState.ts

@@ -120,6 +120,8 @@ export class NodeMaterialBuildState {
             this.compilationString = `\r\n${emitComments ? "//Attributes\r\n" : ""}${this._attributeDeclaration}\r\n${this.compilationString}`;
         }
 
+        this.compilationString = "precision highp float;\r\n" + this.compilationString;
+
         for (var extensionName in this.extensions) {
             let extension = this.extensions[extensionName];
             this.compilationString = `\r\n${extension}\r\n${this.compilationString}`;