gpt4 book ai didi

ios - glclear() 在 ios8 opengl 中修改 glscissor() 边界之外的图像

转载 作者:行者123 更新时间:2023-11-29 02:13:13 25 4
gpt4 key购买 nike

下面的代码只绘制了一个绿色框,而我期望的是绿色框和红色框。

如果我没有第二个 glClear() 语句,则会出现红色框。

这让我得出结论,因为我的剪刀盒在红色框的边界之外,glClear() 语句不符合剪刀盒。

任何人都可以帮助我了解发生了什么吗?

glEnable(GL_SCISSOR_TEST);
int x, y, w, h;
x = 0;
y = 0;
w = 700;
h = 700;

glViewport(x,y,w,h);
glScissor(x,y,w,h);
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

x = 0;
y = 750;
w = 700;
h = 700;

glViewport(x,y,w,h);
glScissor(x,y,w,h);
glClearColor(0.0f, 1.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

最佳答案

所以我自己设法解决了这个问题。我必须在绘图调用结束时“重置”剪刀盒。即:

glScissor(0,0,viewPixelWidth, viewPixelHeight);

发生的情况是,当渲染缓冲区被呈现时,剪刀盒被再次应用,因此最新剪刀盒之外的所有内容都没有被复制。

关于ios - glclear() 在 ios8 opengl 中修改 glscissor() 边界之外的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29056080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com