首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebGL: gl.getExtension('OES_standard_derivatives')没有回应

WebGL: gl.getExtension('OES_standard_derivatives')没有回应
EN

Stack Overflow用户
提问于 2016-04-15 03:12:55
回答 1查看 1.2K关注 0票数 1

我是新的webgl,现在正在尝试做平阴影。我试过Gouraud遮阳,效果很好。因此,作为实现平阴影的第一步,我将#extension GL_OES_standard_derivatives : enable放在我的片段着色器中,

if (!gl.getExtension('OES_standard_derivatives')) throw 'extension not support';

在我的initGL函数中,代码的其余部分保持不变。

然而,画布没有出现,消息也没有出现。通过在上面的代码之前和之后添加一些警告消息,我想问题是gl.getExtension('OES_standard_derivatives'))没有响应,所以之后的任何代码都不能工作(包括画布部分)。

我做了一些搜索,但没有发现类似的问题。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-15 04:06:40

如果您可以包含更多关于您的环境的信息,这将有助于理解问题。具体而言,这些问题:

  • 你用的是什么浏览器?
  • 您使用的是什么版本的WebGL?
  • 您使用的是纯WebGL还是库(例如Three.js)?
  • 你能张贴你所有的上下文设置代码吗?

下面是一个独立包含的脚本,它向控制台报告这个特定的扩展是否可用:

代码语言:javascript
复制
<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>

将其保存到一个文件中,在您正在使用的浏览器中打开它,并检查控制台以查看发生了什么。

注意,在WebGL2中,这个扩展已经提升到核心配置文件。来自衍生产品规范

提升到核心,不再作为WebGL API2.0规范中的扩展。需要GLSL #版本300 es。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36637651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档