gpt4 book ai didi

opengl - glClearColor()不应该服从glViewport()设置的绘图区域吗?

转载 作者:行者123 更新时间:2023-12-02 02:22:00 26 4
gpt4 key购买 nike

glViewport(x(), y(), width(), height());

glDisable(GL_DEPTH_TEST);

glClearColor(0, 0.3, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);

//... drawing commands

绘图正确地发生在窗口的一小部分区域,由glViewport(x(), y(), width(), height())设置

但是,由 glClearColor() 设置的背景颜色会影响整个窗口,即使这是在调用 glViewport() 之后设置的。为什么?

最佳答案

关于glClear侧面:

The pixel ownership test, the scissor test, dithering, and the buffer writemasks affect the operation of glClear.

但是,glViewport指出

glViewport specifies the affine transformation of x and y from normalized device coordinates to window coordinates.

如果我正确地阅读了引用资料,这是设计使然; glViewport 仅偏移视口(viewport),这会影响光栅化基元的绘制调用,而 glClear 仅适用于整个帧缓冲区区域。

完整的规范(4.3)似乎同意这一点:

§17.4.3 The GL provides a means for setting portions of every pixel in a particular buffer to the same value.

关于opengl - glClearColor()不应该服从glViewport()设置的绘图区域吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18830589/

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