2009-08-28 135 views
0

我有一個非常簡單的情況,需要一些我不知道如何在沒有模板緩衝區(iPhone不支持的情況下)的情況下完成。如何在iPhone上繪製3D模型輪廓? (OpenGL ES)

基本上,我有一個3D模型,繪製在圖像後面。我希望在任何時候都能將該模型的輪廓繪製在其上。因此,當它位於圖像後面時,您可以看到它的輪廓,當它不在圖像後面時,您可以看到帶有輪廓的模型。

一個簡單地得到輪廓工作的選項是用粗線和z偏移繪製模型的線框,然後在其上繪製常規模型。這個問題很明顯,我需要在模型後畫出的輪廓。

這種方法需要很快,因爲我已經推動了很多多邊形 - 以這種或那種方式重新繪製模型並不是真正需要的。

此外,有什麼方法可以找出我的模型是否可以在此刻看到?也就是說,頂部的圖像是否在模型的位置具有不透明的部分,或者是否具有透明部分。如果我能夠解決這個問題(再次,非常快),那麼我可以繪製一個線框而不是紋理模型,具體取決於它是否可見。

這裏的任何想法?謝謝。

回答

0

大部分使用alpha通道,您可以重新創建模板的效果和渲染到紋理,如果你認爲它的時間...

+0

這實際上起作用。謝謝。 – Eli 2009-08-31 19:38:54

0

下面是可能會產生你想要的效果一般選項(我有OGL的經驗,而不是iPhone):

方法1

  1. 將對象渲染爲純白色紋理,與場景分離。這將產生一個白色的面具,其中的對象將被渲染。

  2. 要麼直接在屏幕上用「淡入淡出」將畫面直接繪製到「完整對象」上,要麼如果您有意在輪廓上,可以嘗試將此紋理渲染爲稍微放大的其他紋理,然後渲染原始「完全對象「作爲純黑色在這個放大的紋理上進行着色。這將創建一種可以在場景頂部渲染的輪廓紋理。

方法2

編輯出來。只要閱讀「無模板緩衝區」的規定。

這有幫助嗎?