Opengl 韦尔德声音与音乐;使用vbo渲染时发出蜂鸣音

Opengl 韦尔德声音与音乐;使用vbo渲染时发出蜂鸣音,opengl,vbo,audio,opentk,Opengl,Vbo,Audio,Opentk,我使用C#和Opentk来渲染体素,我使用的显示列表很好,但速度很慢,所以我切换到VBO,因为每次我用VBO渲染东西时,都会有wierd声音和电脑发出的嘟嘟声(音量很小)。听起来像是gpu的声音 当im切换回显示列表或直接呼叫时,蜂鸣声停止 您听到的是开关式电压调节器努力工作以保持GPU电源稳定。每次你向GPU发送命令,它的功率需求就会增加。使用即时模式时,高需求和低需求之间的占空比较低,因此去耦和滤波电容可以满足功率的短脉冲。显示列表保持功率需求上升,以便电压调节器必须打开,然后保持“稳定”

我使用C#和Opentk来渲染体素,我使用的显示列表很好,但速度很慢,所以我切换到VBO,因为每次我用VBO渲染东西时,都会有wierd声音和电脑发出的嘟嘟声(音量很小)。听起来像是gpu的声音

  • 当im切换回显示列表或直接呼叫时,蜂鸣声停止

您听到的是开关式电压调节器努力工作以保持GPU电源稳定。每次你向GPU发送命令,它的功率需求就会增加。使用即时模式时,高需求和低需求之间的占空比较低,因此去耦和滤波电容可以满足功率的短脉冲。显示列表保持功率需求上升,以便电压调节器必须打开,然后保持“稳定”的高功率输出,直到列表完成


现在,当您渲染VBO时,您可以听到调节器工作,这意味着您使用了大约50%的GPU功能,并且调节器在电源需求之间不断变化。最好的做法是增加通过单个glDraw…调用处理的原语数量。现在GPU在下一个glDraw…到来之前完成绘制,所以你有点饿了它。

这是电子在塔尔的狂欢!我不知道为什么它被否决了(我投了1票),但这实际上是一个有效的问题。我自己也有同样的问题——我的笔记本电脑在我开始OpenGL进程时就开始疯狂地发出吱吱声。声音一点也不响,但因为我无法阻止,所以很烦人。我在某个地方读到,将FPS限制在60有帮助,但不要相信——声音只是有点低,更难听,但它仍然存在。有没有明确的解决方案,有没有人?+1个有趣的解释。但是,我已经显示了每帧约1M个三角形-你确定这是因为GPU不够用吗?(顺便说一句,我使用平面着色,所以片段着色器基本上没有什么事可做)@PiotrJustyna:Modern GPU以相同的循环执行所有着色器阶段。此外,您听不到正在处理的单个三角形/片段,而是GPU上负载变化的间歇间隔。这可能是因为GPU正在等待V-Sync,或者因为CPU无法跟上它的速度,或者让它处理数据,或者类似的情况。同样,每帧1米的三角形也不算多。在60赫兹的帧速率下,只有60米的三角形,而现代GPU可以轻松地处理高达500米的三角形每帧,如果利用最佳。有趣。你说的“循环”是什么意思?无论有没有V-Sync,CPU都会保持同步,因为它只运行主循环,向GPU馈电,而从不改变顶点。我观察到的唯一一件事是,我使用的三角形越多,噪音就越低——这表明频率越低,但频率到底是多少?@PiotrJustyna:我所说的电路是指GPU上进行计算的部分。在旧一代GPU中,顶点和片段着色器处理有不同的电路。自从着色器模型3(大约2006年)以来,情况就不再如此了。此外,改变的不是频率(这与帧率有关),而是高负载和低负载之间的占空比。