2011-09-22 87 views
0

是否有可能以某種方式自動繼續構建現有網格?如何做到這一點?
讓我們來看一個例子。我有一個長方體,我想在運行時有一個更大的長方體。長方體也有一些紋理,長方體的新部分應該具有新的紋理。我認爲對於這個問題,縮放是不夠的,因爲紋理。我如何在運行時向我的長方體添加紋理?iOS OpenGL運行時紋理

你可以建議我請一些教程/框架和任何幫助來解決這個問題?


編輯:根據@datenwolf答案:
我想我可以重複使用相同的網格更多的時間延長了長方體的形狀。
你有什麼想法如何在運行時紋理化?


EDIT2:
所以,一個更具體的問題:我想建一個房子,一個簡單的長方體房子,有一個地板。過了一段時間,我想補充一點。我認爲這是一件容易的事,但我從未從事過這類問題。

回答

3

OpenGL不是場景圖。它只是一個繪圖API。屏幕上沒有可見的內容。畫圖之後OpenGL留下的唯一東西就是framebuffer的內容。

你想要改變一些東西,你可以清除framebuffer並重新繪製你的場景。


關於Quation編輯2: 我只能重申我首先聲明:OpenGL是不是一個場景圖,即你不「建」的場景吧。你有什麼是幾何數據(頂點)和採樣數據(圖像/紋理)。

然後,你必須一個繪圖功能,即告訴OpenGL使三角形,線或點出來的幾何數據,並與從照明計算,固體的顏色和紋理採樣數據導出的值填補產生(=像素)的片段。

在OpenGL中不會改變場景!通過對提供給OpenGL的幾何圖形數據進行更改並執行不同的繪圖操作,這意味着

就像我已經說過的,你不會用OpenGL「構建」你的場景/幾何體。您可以使用Blender,Maya,3DS Max,Cinema 4D等類似的3D建模程序,將模型以您的渲染程序可訪問的格式存儲到某個數據存儲區(文件,Web資源,數據庫條目等)。更改後的模型存儲在不同的存儲位置,也會加載並表示您繪製新模型的更改。構建幾何體的另一種方法是使用構造性(實體)幾何(CSG)系統,利用它可以從基本構建塊(平面,球體,錐體,封閉曲面片)和邏輯運算(聯合,差異,交集,排除)。然而OpenGL不是一個幾何處理庫。 OpenGL爲您提供的是繪圖工具:畫布(= framebuffers),模具,剪刀,拼貼圖像(紋理),「形狀」(=原始圖像,即點,線,三角形)和「智能筆刷」(着色器)。有趣的是,通過多次使用模板緩衝區,可以對固體執行屏幕空間和基於圖像的邏輯操作。但這實際上只是一種基於圖像的效果,並不會處理幾何圖形本身。

+0

我已根據您的答案編輯了我的問題。請檢查我的編輯。 –

+0

@無限可能性:我仍然不明白您的實際問題:您只需使用調整後的網格繪製立方體即可。但也許我誤解了你的問題。您如何畫出關於多維數據集應該如何看起來像第一個以及這些修改對它做什麼的兩個草圖。 – datenwolf

+0

我要添加另一個編輯。 –