问题标签 [uniform]
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.
opengl - OpenGL 统一缓冲区 std140 布局
我正在尝试通过 GeForce 8600 GT 上的统一块(一切都根据 GLSL“#version 330”)将整数数组传递给片段着色器。
在应用程序的一侧,我有:
在我的片段着色器中,我根据块声明如下:
问题是在 glCompileShader 成功后 glLinkProgram 返回一个错误,指出它无法绑定适当的存储资源。
一些额外的事实:
1) GL_MAX_UNIFORM_BLOCK_SIZE 返回值 65536
2)如果我将元素的数量减少到 4096,它可以正常工作,并且无论我使用“int”还是“ivec4”作为数组类型都没有区别。任何高于 4096 的东西都会给我同样的“存储错误”</p>
3)如果我使用“共享”或“打包”,一切都像怀疑的那样工作
在咨询了 std140 的 GLSL 3.3 规范后,我假设对齐/填充存在问题:
“1) 如果成员是一个消耗 N 个基本机器单元的标量,则基本对齐是 N。
...
4) 如果成员是标量或向量数组,则根据规则 (1)、(2) 和 (3) 设置基对齐和数组跨度以匹配单个数组元素的基对齐,并四舍五入直到 vec4 的基本对齐。数组末尾可能有填充;数组后面成员的基本偏移量向上舍入到基本对齐的下一个倍数。”</p>
我的问题:
1)“myblock”占用的空间是 7102*4=28408 字节的 4 倍,这是真的吗?即std140将myarray的每个成员扩展为vec4,实际内存使用量为7102*4*4=113632字节,这是问题的原因吗?
2)它与“共享”或“打包”一起工作的原因是由于优化消除了这些差距?
3)也许这是一个驱动程序错误?所有事实都表明“......并向上舍入到 vec4 的基本对齐”是原因,但很难接受像 int 数组这样简单的东西在内存限制方面的效率降低了 4 倍。
4)如果它不是一个错误,那么在std140的情况下我应该如何组织和访问一个数组?我可以使用“ivec4”来优化数据分布,但是我不得不牺牲性能来代替简单的 x=myarray[i/4][i%4] 来引用每个 ivec4 的各个元素? 还是我错过了什么并且有明显的解决方案?
matlab - 在Matlab中将经验分布转换为均匀分布的函数?
我知道使用 CDF 将一种分布转换为另一种分布的过程。但是,我想知道 Matlab 中是否存在可以执行此任务的函数?
我的另一个相关问题是,我ecdf()
在 Matlab 中计算了我的经验使用函数的 CDF,用于具有10,000
值的分布。但是,我从中获得的输出仅包含9967
值。如何获得10,000
CDF 的总值?谢谢。
select - 使用统一 JS 选择多个问题
我将uniform.js用于我的表单元素,一切正常,但我在select multiple中遇到问题。只有select看起来不错,但是当我使用反映select的select multiple时。请帮我。
android - OpenGL 着色器。传递浮点数组
在我的场景中,我有许多对象要同时旋转,但角度不同。
我有一个着色器,它计算每个对象的位置并绘制整个场景(将顶点数组传递到带有顶点数组的着色器中)。
我在数组中有我所有的顶点、索引、颜色等(不是每个对象的 1 个数组,而是 1 个带有顶点偏移量的数组,一个用于颜色等)。
我想在一个 float[] 中传递一组浮点数(每个“对象”的角度),但没有什么是快乐的。
如果通过并仅使用一个浮点数,一切正常。
我如何为每个对象传递特定的浮点数(例如,我想绘制 20 个矩形(我有一个 vetrex 数组:float[20*3*4]),因为我知道每个顶点必须有浮点数:旋转:float[20 *4])?
更新:
我尝试将数组作为纹理传递。
当我为场景创建资源时 - 我尝试创建我的数组(称为掩码):
然后,当我在场景上绘制新项目时,我使用着色器并尝试传递我的数组:
但是当我尝试检查数组中的任何值是否> 0.5时,每次计算都会给我错误
更新
片段着色器包含:
颜色和蒙版纹理具有相同的尺寸
c - 在 C 中生成 INTEGERS 的均匀分布
我编写了一个 C 函数,我认为它从范围为 [rangeLow, rangeHigh]的均匀分布中选择整数,包括在内。这不是家庭作业——我只是在一些嵌入式系统中使用它来做一些有趣的事情。
在我的测试用例中,此代码似乎产生了适当的分布。不过,我并不完全相信实施是正确的。有人可以进行健全性检查并让我知道我是否在这里做错了什么?
PS我搜索了其他类似的问题。但是,很难过滤掉讨论随机整数而不是随机浮点数的一小部分问题。
c++ - 在一个范围内生成无偏随机整数的最佳算法是什么?
在这个 StackOverflow 问题中:
接受的答案建议使用以下公式在给定min
和之间生成一个随机整数max
,其中min
和max
包含在范围内:
但它也说
这仍然略微偏向于较低的数字......也可以扩展它以消除偏差。
但它没有解释为什么它偏向于较低的数字或如何消除这种偏见。所以,问题是:这是在(有符号)范围内生成随机整数的最佳方法,而不依赖于任何花哨的东西,只是rand()
函数,如果它是最优的,如何消除偏差?
编辑:
我刚刚while
针对浮点外推法测试了@Joey 建议的 -loop 算法:
查看有多少均匀的“球”“落入”并分布在多个“桶”中,一个测试用于浮点外推,另一个测试用于while
循环算法。但是结果会根据“球”(和“桶”)的数量而有所不同,所以我无法轻易选出获胜者。工作代码可以在这个 Ideone 页面找到。例如,对于 10 个桶和 100 个球,对于浮点外推法,与while
-loop 算法(分别为 0.04 和 0.05)相比,桶之间与理想概率的最大偏差较小(分别为 0.04 和 0.05),但是对于 1000 个球,while
-loop 算法较小(0.024 和 0.011),并且对于 10000 个球,浮点外推再次做得更好(0.0034 和 0.0053),依此类推,没有太大的一致性。考虑到没有一种算法始终如一地产生比其他算法更好的均匀分布的可能性,这让我倾向于浮点外推,因为它似乎比while
-loop 算法执行得更快。那么选择浮点外推算法是否可以,或者我的测试/结论不完全正确?
javascript - 如何防止 Uniform.js 对选择元素进行排序
我正在使用 Uniform.js 来设置一些选择的样式。它们看起来很棒,但是在设置 Uniform 样式时,它会根据每个选项的 value 属性对列表进行排序,这是不希望的。我该如何防止这种情况?
jquery - 无法使重置选择有效
我正在开发一个需要重置表单的网站,该表单是使用 jQuery Uniform 构建的,但问题是我无法进行任何重置。
这是我的标题代码:
下一部分是如下形式:
有没有人可以告诉我出了什么问题?
geometry - 围绕随机选择的点在圆的表面上均匀分布点
在蒙特卡洛模拟中,我遇到了以下问题:给定一个单位向量 u,它定义了一个单位球体表面上的点 A,我必须随机确定一个新矢量,该矢量与初始矢量在 [0,max) 中形成角度 θ . 换句话说,我需要一种算法,从均匀分布中随机选择球体表面上的一个点,该点位于球体上的一个圆内,该圆具有以初始点 A 为中心的预定义半径。
我正在考虑使用欧拉角(θ,Ψ,φ)从(x,y,z)到(X,Y,Z)进行坐标旋转,使得Z = u。然后,从笛卡尔坐标转换为球坐标 (r,θ,φ),其中 u=(1,0,0) 并统一选择 cosθ 和 φ。最后,转换为 (X,Y,Z),然后转换为 (x,y,z)。但是,三角函数太慢了,有没有更快的方法?
是否可以修改用于球体表面上均匀分布点的 Marsaglia 方法以选择点附近的点?
在此先感谢您的任何建议。