浏览代码

Explicitly specify precision for all sampler types (#27482)

StrandedKitty 1 年之前
父节点
当前提交
589eeb192d
共有 1 个文件被更改,包括 24 次插入1 次删除
  1. 24 1
      src/renderers/webgl/WebGLProgram.js

+ 24 - 1
src/renderers/webgl/WebGLProgram.js

@@ -313,7 +313,30 @@ function loopReplacer( match, start, end, snippet ) {
 
 
 function generatePrecision( parameters ) {
 function generatePrecision( parameters ) {
 
 
-	let precisionstring = 'precision ' + parameters.precision + ' float;\nprecision ' + parameters.precision + ' int;';
+	let precisionstring = `precision ${parameters.precision} float;
+	precision ${parameters.precision} int;
+	precision ${parameters.precision} sampler2D;
+	precision ${parameters.precision} samplerCube;
+	`;
+
+	if ( parameters.isWebGL2 ) {
+
+		precisionstring += `precision ${parameters.precision} sampler3D;
+		precision ${parameters.precision} sampler2DArray;
+		precision ${parameters.precision} sampler2DShadow;
+		precision ${parameters.precision} samplerCubeShadow;
+		precision ${parameters.precision} sampler2DArrayShadow;
+		precision ${parameters.precision} isampler2D;
+		precision ${parameters.precision} isampler3D;
+		precision ${parameters.precision} isamplerCube;
+		precision ${parameters.precision} isampler2DArray;
+		precision ${parameters.precision} usampler2D;
+		precision ${parameters.precision} usampler3D;
+		precision ${parameters.precision} usamplerCube;
+		precision ${parameters.precision} usampler2DArray;
+		`;
+
+	}
 
 
 	if ( parameters.precision === 'highp' ) {
 	if ( parameters.precision === 'highp' ) {