glUseProgram()的速度有多快?还有什么更好的(更快)?:
这是我的想法:
更改着色器程序后,哪些州是制服?他们是否保存了值(例如,矩阵的值)?
以下是我认为#1的好处:
而#2的好处:
Menu和类Scene3D具有不同的投影矩阵)我可以使用glGenBuffers函数生成多少个缓冲区?我可以尝试生成8192(或更多)缓冲区吗?
我只渲染一个缓冲区,但我需要存储许多缓冲区.
int i = 0;
glGetIntegerv(GL_MAX_DRAW_BUFFERS, &i);
Run Code Online (Sandbox Code Playgroud)
回报8.这是缓冲区的最大计数,即同时渲染.
我对吗?
在调试堆中,我可以获得数组的大小,该数组由new[]以下内容创建:
int size = *((int *)((char *)ptr - 16));
Run Code Online (Sandbox Code Playgroud)
如果数组的大小小于28(但我不知道为什么?0_0),它正常工作.
这个技巧是否在发布模式下工作(不使用调试堆)?
如何获得阵列的大小(100%工作和稳定)?
所有几何体都存储在一个VBO中(透明+不透明).我不能排序几何.如何在不丢失数据颜色的情况下禁止从glsl写入深度缓冲区?
Visual c ++,调试模式.
if(k>=0)
011D14CE cmp dword ptr [k],0
011D14D2 jl bez+28h (11D14D8h)
return true;
011D14D4 mov al,1
011D14D6 jmp bez+33h (11D14E3h)
return false;
011D14D8 xor al,al
011D14DA jmp bez+33h (11D14E3h)
Run Code Online (Sandbox Code Playgroud)
和平等的代码:
return (k>=0)?(true):(false);
011D14DC cmp dword ptr [k],0
011D14E0 setge al
Run Code Online (Sandbox Code Playgroud)
什么更快?当我在函数调用中使用第二个构造时,什么更快?
if(i>0)
Foo(true);
else
Foo(false);
Run Code Online (Sandbox Code Playgroud)
要么:
Foo((i>0)?(true):(false))
Run Code Online (Sandbox Code Playgroud)
?
c++ ×4
opengl ×3
glsl ×2
arrays ×1
assembly ×1
buffer ×1
depth-buffer ×1
graphics ×1
new-operator ×1
optimization ×1
performance ×1
uniform ×1
visual-c++ ×1