0
我想在我的場景中繪製兩層(讓我們說主層和調試信息層)。現在,我畫我的層以這樣的方式如何繪製兩個不同幀率的圖層?
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
layer1->draw();
layer2->draw();
我想要做這樣的事情:
static int frameCount = 0;
layer1->draw();
if (frameCount % 2) {
layer2->draw();
}
frameCount++;
但我不希望我的畫第二層的每個第二幀。我想每幀畫這個圖層,但是每秒重畫一次。例如,我正在以這種方式繪製我的圖層:
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (void*)0);
glEnableVertexAttribArray(1);
glBindBuffer(GL_ARRAY_BUFFER, colorBuffer);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, (void*)0);
glDrawArrays(GL_POINTS, 0, vertexNumber);
glDisableVertexAttribArray(0);
glDisableVertexAttribArray(1);
我該如何重繪這一層只有每個第二幀?
我很困惑。你說你確實想畫每一幀的圖層,然後你說你不想那麼做......? – Galik
我想用兩個幀的繪製調用一個。在第一幀我畫我的圖層。在第二幀我什麼都不做,但我的圖層存在於屏幕上。在第三幀我重繪我的圖層。 –
把第二層放到framebuffer(即渲染到紋理)?在每一幀中,您都會將內容複製到場景中,但您可以儘可能少地更新它。 – MaKo