我執行我的3D遊戲一個簡單的閃電效果,這樣的現實電動閃電:渲染使用OpenGL
http://www.krazydad.com/bestiary/bestiary_lightning.html
我使用的OpenGL ES 2.0。儘管如此,我正在思考什麼是在3D環境中呈現最佳效果和最高性能的方式,因爲從任何角度來看,組成電螺栓的線條都需要看起來「堅實」。
我正在考慮爲每個線段生成兩個平面,在X十字中創建一個線條粗細的效果。通過禁用深度緩衝區寫入來渲染,使用某種類型的添加混合模式。使用具有alpha通道的電動貼圖紋理每條線段的紋理。
雖然我使用這種方法生成必要的三角形列表,但我有點擔心,因爲我的遊戲可能會同時生成很多閃電。但是因爲閃電的長度和厚度會有很大的變化,所以我懷疑簡單地使用一個閃電的動畫3D物體,拉伸並指向正確的位置看起來不錯,這是我最初的想法。
我想到了一種替代方法,我在後處理階段使用投影終點之間的二維線渲染閃電。這應該很好,因爲在我的情況下,透視效果可以忽略不計,除非線條出現在遮擋對象後面會很棘手。
在這裏最好的方法有什麼好主意?
編輯:我發現這個白皮書從nVidia的:
http://developer.download.nvidia.com/SDK/10/direct3d/Source/Lightning/doc/lightning_doc.pdf
其中採用具有對於每個線段的廣告牌的方法,然後再應用一些濾波以平滑所得到的間隙,並且從每個廣告牌重疊。
似乎可以產生相當不錯的視覺效果,但是我不太滿意其他的過濾通行證,因爲遊戲適用於手機,因爲這樣的步驟非常昂貴。事實證明,由於額外的矩陣計算開銷,移動設備上的緩慢移動,廣告牌的CPU相當昂貴。
你爲什麼用3D創建它?這些螺栓應該足夠明亮,以至於你可以用一個不斷面向觀察者的2D平面脫離,但限制在兩點之間旋轉。 – Blender 2011-12-27 03:47:34
然後螺栓需要根據距離延伸,這在視覺上並不是最佳的,因爲在我的情況下,距離可能會有很大差異。這個問題在「3D」中是一樣的,這就是爲什麼我正在考慮爲每個閃電建立一個自定義三角形列表。 – sinsro 2011-12-27 04:39:28