關於OpenGL的天空盒的理解

2021-09-25 00:21:12 字數 592 閱讀 8734

參考:

(owed by: 春夜喜雨

關於天空盒-空間概念上:

可以理解為乙個盒子,內壁貼著貼圖,我們位於盒子內,盒子離我們無窮遠。我們抬頭向四面看,最遠處是這個盒子的內壁,由於我們始終位於盒子內,所以我們不會看到盒子以外的部分。

opengl實現上:

通常是:天空盒採用6張可以連線縫合的天空,貼圖到乙個立方體內部(通常採用0,0,0圓心,長度為1或2的立方體即可);然後把camera放入到立方體的中心,視稜錐從立方體的中心向外發出,對映到立方體顏色作為找到的螢幕底色。之後再把三維物體按照mvp投射到螢幕,放到底色的上層,從而從圖形上看,天空盒始終位於物體的最遠處,看起來所有的圖形都位於盒子的內部。(優化效率,可以先渲染物體,然後把未被遮擋的位置渲染天空盒,提高天空盒的渲染效率)

立方體紋理取樣特點:立方體紋理相當於乙個中心點為0,0,0的盒子,取樣座標從中心點0,0,0發出,發出的射線在立方體紋理上的對應點,作為找到的顏色點。

分析了天空盒之後,有點感受:(owed by: 春夜喜雨

opengl 天空盒 ThingJS玩轉天空盒技術

在計算機的三維世界中,三維天空的繪製肯定不可能像現實生活中的天空一樣,一望無際綿延無盡 thingjs的天空盒技術是認真的。引用地圖元件指令碼之後地球相機引數就改變,需要校正天空盒。為什麼偏偏是天空盒呢?這就得問一下,天空盒的原理是什麼?opengl中天空盒的思想就是繪製乙個大的立方體,然後將觀察者...

QT與OpenGL結合實現天空盒

之前搗鼓過一段時間opengl,用的是glad加上glfw庫,由於在windows下c 開發用qt較多,所以把qt和opengl結合,因此進行了嘗試。首先qt5.8.0下有自帶的opengl控制項opengl widget,將這個控制項提公升為乙個自己寫的類myopenglbox繼承於qopengl...

OpenGL學習筆記 天空盒(反射,折射)

先展示乙個效果圖 多個紋理組合起來對映到一張紋理上的一種紋理型別 立方體貼圖 cube map 簡單來說,立方體貼圖就是乙個包含了6個2d紋理的紋理,每個2d紋理都組成了立方體的乙個面 乙個有紋理的立方體。你可能會奇怪,這樣乙個立方體有什麼用途呢?為什麼要把6張紋理合併到一張紋理中,而不是直接使用6...