是否可以使用 WebGL 运行 #version 120 着色器

2024-01-14

我有许多 GLSL 片段着色器,我几乎可以保证它们符合#version 120它们使用标准的、不符合 ES 的值,并且没有任何 ES 特定的编译指示。

我真的很想使用 WebGL 为他们制作一个网页预览器。预览器不会在移动设备上使用。这可行吗?与 GLSL 版本相比,WebGL 中向 GLSL 着色器公开的功能集是否受到限制?精度有差异吗?

我已经尝试过玩THREE.js但这并没有真正影响它,因为它在将着色器代码加载到 GPU 之前会弄乱它(我不能这样做)。

简而言之:GLSL 规范是否足以让我运行这些着色器?...因为如果它不是我所追求的,那是不可行的,我应该放弃它。


不可以,WebGL 着色器必须是版本 #100。其他任何事情都是不允许的。

如果您好奇为什么会这样,因为 WebGL 需要尽可能在任何地方运行。如果您可以选择任何版本,您的网页将仅在具有处理该版本的 GPU/驱动程序的系统上运行。

WebGL的下一个版本将提高版本号。它将允许 GLSL ES 3.0(注意ES)。截至 2016 年 5 月,它目前可在 Chrome 和 Firefox 中使用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以使用 WebGL 运行 #version 120 着色器 的相关文章

  • 如何快速发现复杂场景中某个点是否被遮挡?

    我有一个复杂的 3D 场景 需要根据 3D 坐标在其上显示 HTML 元素 我只是简单地覆盖了一个div标签放在顶部并使用 CSS 定位 但是 当 3D 坐标被模型遮挡时 或者以另一种方式表述 当它在相机中不可见时 时 我还需要部分隐藏它
  • 为 webgl 中的每个对象使用不同的顶点和片段着色器

    我在 webgl 中有一个包含多个对象的场景 对于每个对象 我想使用不同的顶点和片段着色器 我的第一个问题是 是否可以为每个对象都有一个着色器 我知道在 opengl 中这是可能的 这是与我的想法类似的伪代码 任何例子将不胜感激 glena
  • 您可以将原始 WebGL 纹理与 Three.js 一起使用吗

    我有一个相当复杂的架构 我在 Three JS 中完成大部分工作 但我也有一个特殊的渲染器 可以直接渲染到原始 WebGL 纹理 是否可以在 Three js 纹理 中使用此 WebGL 纹理 看起来 Three JS 纹理类只是图像 视频
  • WebGL 中的透明纹理行为

    环境 WebGL Chrome 当使用透明 png 作为模型纹理时 我有以下行为 图像 A 树将建筑物隐藏在其后面 我看到了世界框纹理 它也隐藏自己 后面的分支不可见 同时 图像 B 工作正常 窗口是透明的 我可以看到后面的内容 A B 两
  • SketchUp 导出带有纹理的 obj - 如何

    Windows 7 64 位 SketchUp Make 13 0 4812 Goal 将 SketchUp skp 模型转换为 obj并使用 Three js 加载到 WebGL Problem sketchup 将模型导出到 obj具有
  • int gl_VertexID 导致 Three.js 出错

    我一直在使用内置顶点索引的 gl VertexID 时遇到问题 通过使用in 与 Three js 一起使用 我不知道为什么 因为文档说它适用于所有版本的 OpenGL http www opengl org sdk docs mangls
  • 将颜色从 Javascript 传递到片段着色器

    我目前正在学习webgl 有一个问题 我正在尝试制作一个三角形并将颜色信息从 js 文件传递 到片段着色器中 以下是我的js代码 var VSHADER SOURCE attribute vec4 a Position n attribut
  • 在 Android WebView 中启用 WebGL

    如何在 Android 5 1 1 模拟器的 WebView 小部件中启用 WebGL 我通过检查了 WebGL 状态Webgl 报告 http webglreport com结果是 此浏览器支持 WebGL 但它被禁用或不可用 有时这是由
  • 如何在WebGL中实现类似隧道的动画? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何在WebGL中实现类似隧道的动画
  • 如何使用 HTML5 Canvas 作为 WebGL 纹理

    我想要 为情况 i 设置统一值 将案例 i 的计算着色器渲染为 HTML5
  • WebGL 中的 AlphaFunctions?

    是否可以实现透明度低于 0 5 的片段被丢弃 而 alpha 高于 0 5 的片段渲染为不透明的效果 从我读到的来看 glEnable GL ALPHA TEST glAlphaFunc GL GREATER 0 5 这将是我正在寻找的 但
  • 如何在 Three.js 中使用反射?

    我想在带有 Three js 的 WebGL 页面中拥有一个反射立方体表面 它应该类似于手机显示屏 反射一些光 但它仍然必须是黑色的 我创建了一个反射立方体 以及反射球体 的示例 并附有详细的注释 现场版本位于 http stemkoski
  • OpenGL:多个顶点的单个顶点属性?

    我有一个接受以下属性的顶点着色器 a posCoord 顶点位置 a texCoord 纹理坐标 传递给片段着色器 a alpha 透明度因子 传递给片段着色器 我正在渲染的对象都是 广告牌 一对直角三角形组成一个矩形 我正在使用一次调用g
  • 重复凹凸贴图

    我正在尝试使用 Three js r55 将凹凸贴图应用到平面上 以创建一个模糊的感觉表面 这是我的代码 var mapHeight THREE ImageUtils loadTexture images felt png mapHeigh
  • 三.js Raycaster intersectObjects

    我正在尝试修改这个例子 https github com timoxley threejs blob master examples webgl morphtargets md2 control html来自 Three js 通过鼠标点击
  • WebGL2 FBO 深度附件值

    我只是尝试使用 WebGL2 渲染场景的深度值 如下所示 Texture depthTexture gl createTexture gl bindTexture gl TEXTURE 2D depthTexture gl texImage
  • 如何在 webgl 中缩放纹理?

    我有一个尺寸为 800x600 的纹理 如何在 webgl 上缩放它
  • WebGL:enablevertexattribarray索引超出范围

    这是我的顶点和片段着色器
  • WebGL - 如何传递无符号字节顶点属性颜色值?

    我的顶点由具有以下结构的数组组成 Position colour float float float byte byte byte byte 传递顶点位置没有问题 gl bindBuffer gl ARRAY BUFFER this vbo
  • 在 Chrome 18 中检测 SwiftShader WebGL 渲染器

    我有一个 2D HTML5 游戏引擎 www scirra com http www scirra com 并且确实想检测 WebGL 是否将使用 Chrome 18 的 Swiftshader 软件渲染器进行渲染 如果是这样我们会much

随机推荐