问题标签 [glsles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 如何在 GLSL 中进行一些每帧只发生一次的计算?
我想预先计算每次调用片段着色器时要使用的一些值。我该怎么做/在哪里做?我正在使用全屏四边形,四个顶点。
glsl - glsl 如果无穷大乘以 0 会发生什么?
在我的 glsl 顶点着色器中,假设我有以下代码:
现在 len 是无穷大。如果我将它乘以 0 会发生什么?结果是保持“无穷大”还是变为0?换句话说,如果无穷大乘以 0 会发生什么?数学上应该是0...
android - gls es dFdx/dFdy 模拟
我正在编写跨平台应用程序。它应该在 Android 设备上运行。
我想使用 dFdx/dFdy 进行抗锯齿。但是,不幸的是, glsl es 2.0 不支持衍生产品。
我可以用一些东西替换 dFdx/dFdy 吗?IE 1/sprite_width, 1/sprite_height 以屏幕像素为单位。
正如我所说,我需要它才能在 android 设备上工作。我看到我的设备支持 GL_OES_standard_derivatives,它允许它使用这些功能。所有的android opengl es 2.0 设备都支持吗?
android - 顶点着色器无法编译。找不到错误
编辑:
似乎错误是,我不允许在单独的线程中编译着色器?由于我刚才一直将对象加载推送到线程环境中,因此出现了错误消息。只是没想到这可能是它的原因。
我当前的顶点着色器由于某种原因无法编译。我收到的错误消息不存在,我找不到错误。
这个的片段着色器是:
“尝试”获取错误消息:
从方法返回一个空字符串,以及
只是返回 0。
我正在为 Android 的 OpenGL ES 2.0 开发,如果有任何我不知道的 Android 限制?
感谢您的任何帮助!
glsl - glsl es 2.0 逆矩阵
glsl es 2.0 中没有反向命令
但我看到我可以 1.0/mat2 。但我担心它只会明智地划分组件。或不?
但如果是这样,有什么诀窍吗(快速获得 1/det)?
opengl - Quartz Composer 中的 glsl 着色器
我试图让这个着色器在 Quartz Composer 中工作
当我将此着色器的代码复制到Fragment Shader
补丁GLSL Shader
中时,
error: input of fragment shader 'surfacePosition' not written by vertex shader
那么我需要填写顶点着色器而不是默认值吗?
matrix - 在对偶四元数之间进行插值时出现严重伪影
我在实现双四元数蒙皮时遇到问题。我还在学习这个主题,所以目前我正在从骨骼矩阵转换为双四元数 CPU 端,然后再转换回着色器中的矩阵。
转换显然适用于单个骨骼,但如果我尝试在双四元数之间线性混合,我会得到这个工件:http: //imagizer.imageshack.us/a/img838/8671/nun.gif 我不知道这是什么原因造成的。也许这与我如何规范化对偶四元数有关,也许与我如何从对偶四元数转换为矩阵有关。我试过搜索实际的双四元数代码,但我发现的只是一堆难以阅读的数学定义。
我包含了一些着色器代码,因为我很确定这就是问题所在。希望精通四元数数学的人可以看穿它!
混合双四元数。Boneweight2 = (1.0 - boneweight1),所以它们总和为 1。
从对偶四元数创建矩阵:
然后我将它与绑定姿势顶点位置相乘。
opengl - 为什么是模型视图矩阵?
如果这是一个愚蠢的问题,我很抱歉,但我一直想知道为什么有这么多示例顶点着色器,其中包含模型视图矩阵。在我的程序中,我有以下情况:
- 投影矩阵几乎不会改变(例如在调整应用程序窗口大小时)并且它是独立的,这很好,
- 模型矩阵经常变化(例如模型上的变换),
- 视图矩阵也经常变化(例如,改变观察方向,四处移动,...)。
如果我要在顶点着色器中使用模型视图矩阵,我必须在 CPU 上执行矩阵乘法并上传单个矩阵。另一种方法是上传模型和视图矩阵并在 GPU 上进行乘法运算。关键是,视图矩阵不一定与模型矩阵同时发生变化,但如果使用模型视图矩阵,则每当它们中的任何一个发生变化时,都必须执行 CPU 乘法和上传。为什么不使用单独的视图和模型矩阵来实现快速的 GPU 乘法并且可能大约相同数量的 GPU 矩阵上传?
ios - 前两个片段着色器输出不同
我目前正在尝试让这个散景着色器与 GPUImage 一起使用:http://blenderartists.org/forum/showthread.php?237488-GLSL-depth-of-field-with-bokeh-v2-4-(update)
这就是我目前所拥有的:
这是我的散景滤镜,GPUImageTwoInputFilter 的子类:
最后,这就是我使用上述过滤器的方式:
第一个图像是我要模糊的那个,第二个是随机渐变来测试着色器的深度图的东西:
当我在我的 iPhone 上启动应用程序时,我得到了这个:
移动滑块(触发 dataInputChanged 方法)后,我得到这个:
虽然这看起来比第一张图片要好得多,但我仍然有一些问题:
- 有一条对角噪声线(在我放在图片上的红线内)似乎不模糊。
- 图像的左上角是模糊的,尽管它不应该如此。
为什么我会出现这种奇怪的行为?着色器输出不应该每次都相同吗?另外,我如何让它尊重深度图?我的 GLSL 着色器知识非常有限,所以请耐心等待。