簡體   English   中英

如何在OpenGL中剪輯渲染(C ++)

[英]How to clip rendering in OpenGL (C++)

如何在OpenGL(簡單矩形區域)中剪輯渲染? 請發布一個C ++示例。

您可能需要的是OpenGL的剪刀機制。

它會剪切不屬於xywidthheight參數定義的矩形的像素渲染

另請注意,啟用此OpenGL狀態時,通過限制清除的區域來影響glClear命令。

如果您只想顯示特定的矩形,則需要glFrustrumglOrtho以及glViewPort等組合。 它實際上是glViewPort設置剪切矩形。 glFrustrumglOrthogluPerspective等)然后將一組真實坐標映射到該矩形。 通常你幾乎沒有注意到glViewPort ,因為它通常設置為你正在使用的任何窗口的整個區域,你改變的是在窗口中獲得不同視圖的映射。

如果您只是自己調整glFrustum (例如),屏幕上的顯示區域將保持不變,您只需更改映射,這樣您仍將填滿整個窗口區域,基本上只需移動虛擬攝像機,因此您可以在顯示的“世界”上放大或縮小(等)。 相反,如果您只是調整glViewPort ,您將顯示完全相同的數據,但顯示為較小的矩形。

要將數據“剪輯”到較小的矩形,您需要同時調整兩者,或多或少地調整“相反”方向,以便您的視口尺寸變小,放大視錐體以進行補償。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM