2013-03-18 72 views
1

我對OpenGL中的剪輯有疑問。所以我有一個小視口,我想渲染大圖像的一部分。如果我畫一個大的圖像像OpenGL中的2D剪輯

glEnable(GL_TEXTURE_RECTANGLE) 

glColor3f(1,1,1) 

glTexCoord2f(0,height) 
glVertex2f(0,0) 

glTexdoord2f(width,height) 
glVertex2f(width,0) 

glTexCoord2f(width,0) 
glVertex2f(width,height) 

glTexCoord(0,0) 
glVertex2f(0,height) 

的寬度和高度是圖像(紋理),這比視口大得多的尺寸。

我的問題是:OpenGL是否首先剪裁與視口大小相關的矩形,然後繪製或首先渲染整個圖像然後剪切?

+1

你爲什麼不試試? – 2013-03-18 15:57:06

回答

1

它將首先剪切幾何圖形,然後繪製。更具體地說,OpenGL在渲染單個幀緩衝區元素(像素)之前會執行所有幾何處理。下面是來自3.3 GL規範相關的報價(2.4節):

最終得到的原語被限幅到觀看體積在下一階段 製備,光柵化。光柵化器使用點,線段或多邊形的二維描述來產生一系列幀緩衝區地址和值。

+0

謝謝,所以渲染速度不會受到圖像大小的影響,因爲它被剪切到視口。 – 2013-03-18 16:41:44

+0

@YanLi:請注意,這只是規範說明會發生的事情。只要結果完全相同,驅動程序可以實現它。這是「彷彿」的規則:駕駛者實施它,就好像它是這樣發生的。 – 2013-03-19 00:38:07