WebGL:gl.getExtension(';OES#U标准#U衍生工具';)不';不回答
我是webgl新手,现在正在尝试进行平面着色。我试过古罗阴影,效果很好。因此,作为实现平面着色的第一步,我将WebGL:gl.getExtension(';OES#U标准#U衍生工具';)不';不回答,webgl,Webgl,我是webgl新手,现在正在尝试进行平面着色。我试过古罗阴影,效果很好。因此,作为实现平面着色的第一步,我将 #扩展GL_OES_标准_衍生工具:启用 在我的片段着色器和 if(!gl.getExtension('OES_标准_衍生品')) 抛出“扩展不支持” 在我的initGL函数中,代码的其余部分保持不变 然而,画布没有出现,消息也没有出现。通过在上述代码之前和之后添加一些警报消息,我猜问题在于gl.getExtension('OES_标准_衍生品'))没有响应,因此在此之后的任何代码都无法
#扩展GL_OES_标准_衍生工具:启用
在我的片段着色器和
if(!gl.getExtension('OES_标准_衍生品'))
抛出“扩展不支持”代码>
在我的initGL函数中,代码的其余部分保持不变
然而,画布没有出现,消息也没有出现。通过在上述代码之前和之后添加一些警报消息,我猜问题在于gl.getExtension('OES_标准_衍生品'))
没有响应,因此在此之后的任何代码都无法工作(包括画布部分)
我做了一些搜索,但没有发现类似的问题。
任何帮助都将不胜感激。如果您能提供有关您的环境的更多信息,这将有助于了解问题。具体而言,这些问题:
- 你用的是什么浏览器
- 您使用的是什么版本的WebGL
- 您使用的是纯WebGL还是库(例如Three.js)
- 您可以发布所有的上下文设置代码吗
下面是一个自包含脚本,它向控制台报告此特定扩展是否可用:
<html>
<head>
<script>
function test() {
var canvas = document.getElementById("sandbox");
gl = canvas.getContext("webgl");
if (!gl)
console.error("WebGL failed to initialize");
else
console.debug("WebGL initialization successful");
var extension = gl.getExtension("OES_standard_derivatives");
if (!extension)
console.error("Extension 'OES_standard_derivatives' was not found");
else
console.debug("Extension 'OES_standard_derivatives' was found");
}
</script>
</head>
<body onload="test();">
<canvas id="sandbox" width="500" height="500" />
</body>
</html>
功能测试(){
var canvas=document.getElementById(“沙盒”);
gl=canvas.getContext(“webgl”);
如果(!gl)
控制台错误(“WebGL未能初始化”);
其他的
调试(“WebGL初始化成功”);
var扩展=总账getExtension(“OES_标准_衍生品”);
如果(!扩展名)
控制台错误(“未找到扩展“OES_标准_衍生品”);
其他的
调试(“发现扩展“OES_标准_衍生品”);
}
将其保存到文件中,在您使用的浏览器中打开,然后检查控制台以查看发生了什么
注意,在WebGL2中,此扩展已升级到核心配置文件。从:
升级为core,不再作为WebGL API 2.0规范中的扩展提供。需要GLSL#版本300 es
如果您能提供更多关于您的环境的信息,这将有助于理解问题。具体而言,这些问题:
- 你用的是什么浏览器
- 您使用的是什么版本的WebGL
- 您使用的是纯WebGL还是库(例如Three.js)
- 您可以发布所有的上下文设置代码吗
下面是一个自包含脚本,它向控制台报告此特定扩展是否可用:
<html>
<head>
<script>
function test() {
var canvas = document.getElementById("sandbox");
gl = canvas.getContext("webgl");
if (!gl)
console.error("WebGL failed to initialize");
else
console.debug("WebGL initialization successful");
var extension = gl.getExtension("OES_standard_derivatives");
if (!extension)
console.error("Extension 'OES_standard_derivatives' was not found");
else
console.debug("Extension 'OES_standard_derivatives' was found");
}
</script>
</head>
<body onload="test();">
<canvas id="sandbox" width="500" height="500" />
</body>
</html>
功能测试(){
var canvas=document.getElementById(“沙盒”);
gl=canvas.getContext(“webgl”);
如果(!gl)
控制台错误(“WebGL未能初始化”);
其他的
调试(“WebGL初始化成功”);
var扩展=总账getExtension(“OES_标准_衍生品”);
如果(!扩展名)
控制台错误(“未找到扩展“OES_标准_衍生品”);
其他的
调试(“发现扩展“OES_标准_衍生品”);
}
将其保存到文件中,在您使用的浏览器中打开,然后检查控制台以查看发生了什么
注意,在WebGL2中,此扩展已升级到核心配置文件。从:
升级为core,不再作为WebGL API 2.0规范中的扩展提供。需要GLSL#版本300 es
gl.getSupportedExtensions()
返回什么。您只需打开控制台并将其粘贴到document.createElement(“canvas”).getContext(“webgl”).getSupportedExtensions().join(“\n”)
也许您的GPU不支持该扩展。是的,这是我的GPU问题。现在没事了。感谢您的评论。gl.getSupportedExtensions()
返回了什么。您只需打开控制台并将其粘贴到document.createElement(“canvas”).getContext(“webgl”).getSupportedExtensions().join(“\n”)
也许您的GPU不支持该扩展。是的,这是我的GPU问题。现在没事了。谢谢你的评论。谢谢你,我发现我的GPU不受支持。我换了一台电脑,现在可以正常工作了。谢谢你,我发现我的GPU不受支持。我换了一台电脑,现在可以用了。