[英]How to clip rendering in OpenGL (C++)
如何在OpenGL(簡單矩形區域)中剪輯渲染? 請發布一個C ++示例。
您可能需要的是OpenGL的剪刀機制。
它會剪切不屬於由x
, y
, width
和height
參數定義的矩形的像素渲染 。
另請注意,啟用此OpenGL狀態時,通過限制清除的區域來影響glClear
命令。
如果您只想顯示特定的矩形,則需要glFrustrum
或glOrtho
以及glViewPort
等組合。 它實際上是glViewPort
設置剪切矩形。 glFrustrum
, glOrtho
( gluPerspective
等)然后將一組真實坐標映射到該矩形。 通常你幾乎沒有注意到glViewPort
,因為它通常設置為你正在使用的任何窗口的整個區域,你改變的是在窗口中獲得不同視圖的映射。
如果您只是自己調整glFrustum
(例如),屏幕上的顯示區域將保持不變,您只需更改映射,這樣您仍將填滿整個窗口區域,基本上只需移動虛擬攝像機,因此您可以在顯示的“世界”上放大或縮小(等)。 相反,如果您只是調整glViewPort
,您將顯示完全相同的數據,但顯示為較小的矩形。
要將數據“剪輯”到較小的矩形,您需要同時調整兩者,或多或少地調整“相反”方向,以便您的視口尺寸變小,放大視錐體以進行補償。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.