2012-09-17 119 views
1

我使用OpenGL渲染3D對象。 3D世界中的每個對象都有一個邊界框和一個相關的模型矩陣,用於將對象從零件座標系(PCS)轉換爲世界(WCS)。邊界框也在PCS中。每個對象的質心在WCS中計算並與每個對象相關聯。對象渲染順序,場景圖?

給定攝像頭在WCS中的位置和目標位置: - >我想從前到後渲染所有不透明的對象(帶alpha == 1)。 - >我想在渲染不透明物體之後從後到前渲染所有半透明物體。

由於這是我第一次實現圖形引擎,所以我不確定場景圖如何幫助我。我想我必須根據距相機的距離手動對對象進行排序,然後根據不透明/半透明對象渲染相同的對象。我真的需要場景圖嗎?我應該如何去實現引擎。我可以使用其他可用的引擎,但我不想並且想要實現我自己。

回答

4

那麼,你不一定需要場景圖形,但你需要一個渲染列表。也就是說,每個渲染週期都會清除你的列表。每個要渲染的對象都將自身添加到渲染列表中。完成後,根據距相機的距離對列表進行排序。

就你而言,你可能想要使用兩個渲染列表:一個用於半透明物體,一個用於不透明物體。

一旦你的清單被排序,你會翻閱它們並按順序渲染對象。

您可能已經對場景圖的需求感到困惑,因爲幾乎任何場景圖實現都會渲染列表。