问题标签 [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.
glsl - 编程着色器时应该避免创建多个变量吗?
我现在开始学习着色器(HLSL,GLSL),我看到很多教程没有创建很多变量,这使得阅读变得更加困难。我想知道新变量的创建是否会影响着色器的性能。
因此,例如(在 CG 中):
这是
比这还快?
opengl - 如何使用着色器存储块访问着色器中 row_major 矩阵的值?
我想使用着色器存储块从计算着色器访问 row_major 矩阵 mat2x4 的值,但总是得到错误的结果。获得 mat2、mat3 和 mat4 的正确结果。我的着色器如下。使用 glsl430 版本。
使用 glGetProgramResourceIndex、glShaderStorageBlockBinding 和 glGetProgramResourceiv 获取缓冲区块索引并绑定它。获取 BUFFER_VARIABLE 的索引和值如下。
'prop' 的值为 GLenum prop[4]={GL_BUFFER_DATA_SIZE, GL_OFFSET, GL_TYPE, GL_MATRIX_STRIDE}; 获取价值为:
结果 :
three.js - 在 Three.js 中,如何检测着色器代码中的编译错误?
我正在用three.js 构建一个项目,我正在摆弄的一个想法是允许用户编写他们自己的着色器代码。来自用户的代码将动态加载到 gpu,就像在这个例子中一样。在这样的设置中,用户可以通过某种方式来显示由他的代码生成的编译时错误,从而使用户受益匪浅。我查看了上面示例中的代码,但这个实例直接与 WebGl 一起工作。
我是否可以考虑利用three.js 库来检测编译时着色器错误的任何替代方法?
android - 我可以用 GLSL 在纹理上绘制多边形吗?
我对 OpenGL 完全陌生,所以我的问题可能听起来很愚蠢,但我试图做一件事超过一周,但我完全卡住了。
我正在尝试绘制一个地球仪,您可以在 Android 上旋转和缩放并选择国家/地区。旋转没有问题,但缩放有一些问题(如果相机靠近,纹理看起来很丑),我不知道如何实施国家选择。我为每个国家/地区都有一个数组,每个国家/地区都有纬度,记录国家边界的每个顶点。但是我怎样才能把它画在球体上呢?
我一直在尝试将 lat,long 转换为 zyx 并绘制线条,但是构建多边形存在三角测量问题。是否可以使用着色器在运行时绘制纹理?是否有可能在纹理上获得一个接触点?(我想通过填充另一种颜色来突出显示选定的国家)
我不需要地图,只需要一种颜色的国家,与另一种颜色接壤,而全球其他地区则与第三种颜色接壤。
为此,我正在使用Rajawali lib。虽然它是开源的,但它没有评论,而且小文档已经过时,所以如果你知道更好的框架,请建议我。
shader - GLSL ES 像素着色器仅在传入未使用的 texcoords 时才有效
我有一个顶点着色器,在几个像素着色器之间共享——iOS 上的 GLSL ES 2.0。VS 输出转换后的位置、法线和一组 2D uv 坐标。这是它的基本信息:
这是基于将 uv 输出到 TEXCOORD0 并使用 TEXCOORD6 作为法线的 Cg 着色器。
我的问题是,将 uv 坐标和法线作为输入的 PS 工作正常,但仅采用法线的 PS却不行。如果我将 PS 方法签名更改为通过 uv 但不使用它,它可以工作!
这是预期的、定义明确的行为吗?如果是这样,有没有办法避免将不需要的参数传递给着色器或必须创建多个版本的 VS?
opengl-es - 着色器输出不匹配
我有下面的着色器,我正在不同的移动设备上测试它们。
http://glsl.heroku.com/e#14148.0
在像 Moto G 这样的设备上,我的行为很不愉快。而不是中心是一个圆圈,我认为它是一个正方形。但在 Nexus 7 和 Nexus 4 等设备上,它是一个圆圈。
有没有办法让它总是一个圆圈。是因为精度效应吗?
opengl - glsl const 数组优点
我正在为桌面/移动(android/iOS)平台开发具有开放 GL / ES 的应用程序。
我在我的顶点着色器代码中使用了 const 数组。我在 nv8800GT 上使用和不使用 const 数组对其进行了测试,没有发现任何区别。但我读到,const 数组可能比制服慢得多。
问题是 - 我应该避免使用统一的 const 数组吗?还是现在一切正常?固定的驱动程序等等......
opengl-es - glsl es const mat2 数组
我尝试在 Open GL ES 2.0(在 RenderMonkey 中)编译以下代码:
但是编译器说:
我做错了什么?
opengl-es-2.0 - OpenGL ES 2.0 着色器语言是否支持 modf()?
关于 GLSL 函数modf()
的OpenGL ES 规范页面表明它应该受 3.0 版支持,而不是 1.0 版。
2.0版本呢?它支持吗?
glsl - glsl (es) 浮点除法性能
简单的问题。
glsl/es float div 操作是否比 mul 慢得多?我知道它在 x86 上较慢,但在 GPU 上较慢吗?
当我查看 GLSL 反汇编程序时,我只看到了另外一个“rcp”命令。“rcp”的成本是多少?