公告牌技術 Billboard 完

2021-07-23 14:34:19 字數 1366 閱讀 6211

公告牌技術應該在每款遊戲應用中都會用到,因為粒子系統大量用到該技術。對粒子系統來說,每個粒子都是一直朝向相機的乙個位圖。在早期的pc遊戲中,樹的表現也多用公告牌技術,現在隨著硬體發展和玩家(player)胃口的改變,樹很少用此技術了。但是,因為很多手持裝置上的3d應用越來越多,在這樣的裝置上,採用對cpu要求比較低的公告牌還是很有吸引力的。

現實應用中,公告牌一般都圍繞x軸(pitch)和y軸(yaw)轉動,不考慮z軸的轉動(roll),因此公告牌技術中有所謂的cylinder billboard和spherical billboard。現在的mmorpg中,大量運用繞y軸和x軸旋轉的公告牌技術。這裡也就重點講解相關使用方法,分幾個步驟:

1、取得每一幀的view matrix;

2、從上面的view matrix得到該矩陣的inverse matrix;

3、逆矩陣中位置的幾個量手工設定成 0,也就是去掉view矩陣中的位置資訊;

4、把該逆矩陣作為繪製公告牌圖元時候的world matrix;

5、繪製公告牌圖元,如粒子(particle)。

6、記得需要的話恢復或者設定其他3d物體需要的世界矩陣,用於其他非billboard的渲染。

在**上,d3d**大概如此這般:

d3dxmatrix matrix; 

// create billboard matrix

d3dxmatrixinverse( &matrix, null, &g_viewmatrix );

matrix._41 = 0.0f;

matrix._42 = 0.0f;

matrix._43 = 0.0f;

// for all the billboard batch, we set their world matrix as this.

// then after billboard rendering, you can set that world matrix back.

device.settransform (d3dts_world, &matrix);

寫這篇文章的時候,正好截下「劍俠情緣叄」(西山居出品的網遊)的使用公告牌技術的例子。上面的圖的"武"和下面的圖的"武"是同乙個billboard在不同的相機角度的截圖。可以很容易看出來,在第二張圖中,我們的相機已經到了人的頭頂上,方向是朝下看,這個圖元還是對準我們的鏡頭。這個就是公告牌技術的典型運用。

附錄:

1、billboard示例**

線段樹 應用 公告牌

大致思路 剛開始一看完題,粗口都要爆出來了,這應該用貪心還是什麼dp來做的吧!但是定睛一看,資料量著實很大,其實dp是不能handle的。所以,這道題用線段樹來做,才是滿分。那麼怎麼用線段樹來做呢?要聯絡到線段樹,先想想我的陣列序列要是什麼含義的 每一行已放置的木板寬度?剩餘的木板寬度?這倆一樣的....

公告板技術

在看完了毛星雲的 實時渲染提煉總結 9.6 9.7與馮樂樂的 unity shader入門精要 後,我對公告板技術有了大概的認識,在這裡總結一下。公告板,英文名billboarding,是一項讓著色四邊形根據視角方向來旋轉的技術,這樣看起來似乎物體總是面向觀察者。與alpha紋理和動畫技術結合,可用...

深度 特斯拉的領先優勢 先發 規模 品牌 技術

特斯拉相比國內外電動車企具備四大優勢 1 先發優勢,2003年進入電動車領域,16年發展和積累。2 規模優勢,2018年交付電動車24.5萬,全球佔比12.3 排名第一。3 品牌優勢,電動技術以及智慧型駕駛技術的創新塑造品牌,馬斯克個人傳奇經歷已成為tesla品牌的強力背書。4 技術優勢,全新電動品...