OpenGL tel kafes


18

Hayır, glPolygonMode'u aramıyorum. Bir yöntem, muhtemelen bu retro tarzı tel kafes nesneleri aramak için üretecek bir GLSL gölgelendirici arıyorum. Herhangi bir öneri?

Vector Tanks gibi bir şey vardı.

http://toucharcade.com/wp-content/uploads/2009/01/picture-111-300x204.png

Tercihen çözüm OpenGL ES 2.0 üzerinde de çalışmalıdır.

Herhangi bir ipucu ve işaretçiler (NULL sürece) takdir!

Yanıtlar:



5

Dave dediğim gibi dokular, kullanmanızı tavsiye ediyoruz. Acı verici bir şey olabilir, ama çok daha iyi performans sağlar diye düşünüyorum.

Kenar algılama algoritmalarını aramayı deneyebilirsiniz . Kafeslerinizi düz renkler ve orta alfa değerleri (hafif saydamlık için) ile köşe rengi renklendirme kullanarak oluşturursanız ve daha sonra bir kenar algılama gölgelendiricisi kullanırsanız, yeterince iyi görünebilir. Aynı olmayacaktı, ama daha da hoşunuza gidebilir; ya da olmayabilir.

Aksi takdirde, iki geçişli bir çözüme bakıyorsunuz, yarı saydam çokgenler çiziyorsunuz (yine, köşe renklerini orta alfa değerine sahip düz bir renge ayarlayın), sonra glPolygonMode (GL_LINE) ayarlayıp glLineWidth'i istediğiniz gibi ayarlayın (belki de nesneye göre) ) ve çokgenleri tekrar çizin.

Biraz geç oldu ve bunu okumakta zorlanıyorum, ancak bir forum tartışması bu PDF'yi gösteriyor: Tek geçişli Tel Kafes Oluşturma . Alakalı değilse özür dilerim.


+1: Dokuları bir şekilde üretmenin bir yolunu bulsaydım daha kolay olurdu. Daha sonra OpenGL ES hedeflemesi (iStuff) nedeniyle glPolygonMode kullanılamaz.
Kornel Kisielewicz

2

Muhtemelen peşinde olduğun şey olmadığını biliyorum, ama Vector Tanks sadece dokulu modeller kullanıyor gibi görünüyor. Doku tel çerçeve görünümü verir, gölgelendiricileri desteklemeyen iPod touch'ımda çalışır.


Biliyorum, biliyorum, ama Subversion'un resimlerini de yapıştırabilirim ve dokuları hiç kullanmaz (AFAIK)
Kornel Kisielewicz

2

Bunu yapmanın tek yolu Tron 2.0'daki gibi yüksek çözünürlüklü, çoğunlukla siyah dokular. Dokular neredeyse evrensel olarak ya kalın, renkli bir kenarlığa sahip düz bir siyah ya da basit bir Perlin gürültü dokusudur.

Işıma etkisini elde etmek için bazı basit son işlemler uyguladılar .


+1: Makaleyi biliyordum, ama hatırlattığınız için teşekkürler - bu gerçekten iyi bir makale (ve yaşadığım ikinci soruna yardımcı oluyor - parlıyor).
Kornel Kisielewicz

1

Piksel gölgelendiricisinde bir tür basit mesafe işlevini deneyebilirsiniz. Belki barycentric koordinatlar gibi bir şey (köşelerde farklı RGB depolayın ve rasterleştirici işin çoğunu sizin için yapacak).

Daha sonra piksel gölgelendiriciniz, geçerli pikselin bir çokgenin neresinde olduğu hakkında ihtiyaç duyacağı bilgilere sahip olacaktır - bir tepe noktasına yakın, bir kenara yakın veya ortasında ...

Uygulamada bunu dokulaştırmanın daha kolay olacağını düşünüyorum.


1

Buna ne dersiniz: Modelinizi alın ve anahat olarak görünmesini istediğiniz kenarları eğin. Tüm eski yüzler koyu saydam yeşilken, parlak opak yeşil ile oluşturulan yüzleri renklendirin.

Bu, hiç piksel gölgelendiricisinin kullanılmasını gerektirmez. (Aslında doku da yok; sadece yüz renkleri.) Sizin açınızdan bir sorun olabilecek veya olmayabilecek bazı model ön işlemler gerektirir.

Eğimli yüzey görünüme dik olduğunda anahattı göremezsiniz. Bu sizi rahatsız ederse, eğimli yüzeyi biraz dışarı çıkarabilir, ekstrüzyonu eğimdeki gibi renklendirebilirsiniz. Daha ince ve daha kalın çizgiler yapmak için farklı derecelerde eğim verme ve ekstrüzyonla oynayabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.