是否有任何方法可以隐藏 Web 应用程序中使用的着色器,使其不被着色器编辑器或其他工具检查
Is there any method to hide shader used in web application from being inspect by shader editor or other tools
我正在为 VR 挖掘 3D 网络应用程序。我想隐藏我的着色器,使其不被 firefox 着色器编辑器和 webGL 检查器检查。我使用 uglify 着色器的方式并将着色器放在 return 函数中而不是在 var 中。但是 none 有效。
那么,有什么方法可以隐藏Web应用程序的着色器吗?
答案很简单,没有
打印着色器非常简单。某人所要做的就是编写一个扩展程序来执行此操作
WebGLRenderingContext.prototype.shaderSource = function(origFn) {
return function(shader, src) {
console.log(src);
origFn.call(this, shader, src);
};
}(WebGLRenderingContext.prototype.shaderSource);
即使您确实找到了一种方法来防止有人在检查器中查看着色器,他们也可以像 运行 系统级工具一样轻松 Microsoft's PIX, or Apple's OpenGL Profiler. They could even run the browser using OSMesa 并编译它以打印出着色器. Chrome 已经 运行 将 OSMesa 作为其测试设置的一部分。让它打印出着色器,然后将其用于 run/view 您的网站是微不足道的。
更好的问题是你为什么关心?人们一直在检查着色器,even in AAA games。人们可以根据需要反编译汇编语言。您的着色器并不特别。试图阻止它们被检查是在浪费时间。
我正在为 VR 挖掘 3D 网络应用程序。我想隐藏我的着色器,使其不被 firefox 着色器编辑器和 webGL 检查器检查。我使用 uglify 着色器的方式并将着色器放在 return 函数中而不是在 var 中。但是 none 有效。
那么,有什么方法可以隐藏Web应用程序的着色器吗?
答案很简单,没有
打印着色器非常简单。某人所要做的就是编写一个扩展程序来执行此操作
WebGLRenderingContext.prototype.shaderSource = function(origFn) {
return function(shader, src) {
console.log(src);
origFn.call(this, shader, src);
};
}(WebGLRenderingContext.prototype.shaderSource);
即使您确实找到了一种方法来防止有人在检查器中查看着色器,他们也可以像 运行 系统级工具一样轻松 Microsoft's PIX, or Apple's OpenGL Profiler. They could even run the browser using OSMesa 并编译它以打印出着色器. Chrome 已经 运行 将 OSMesa 作为其测试设置的一部分。让它打印出着色器,然后将其用于 run/view 您的网站是微不足道的。
更好的问题是你为什么关心?人们一直在检查着色器,even in AAA games。人们可以根据需要反编译汇编语言。您的着色器并不特别。试图阻止它们被检查是在浪费时间。