2011-10-09 10 views
8

enter image description hereEğer dokulu çizgi çizin konusunda bazı kod (herhangi bir dil) paylaşır mısınız OpenGL ES

yılında "parlayan" çizgi çizmek için nasıl (yani, dört puan pürüzsüz olması veya etkisi gibi parlayan mavi çizgi olurdu OpenGL ES 1.0 kullanarak ekli görüntü gibi birçok noktadan oluşan).

doku 16x16 veya 1x16 pikselli bir GL_LINE_STRIP tekstüre edilmiş Ne çalışıyordu

, fakat başarılı.

+1

senin doku boyutu sihirli çizginin boyutunu artırmaz. Tekstüre çalışmanın yanlış bir fikri var. –

+0

Tamam, 2d puanlık bir diziye ve dokuya (veya OpenGL ES ile bu tür bir çizgi çizmek için ne gerekiyorsa) sahip olan bu etkiyi nasıl elde ederim? – michael

+1

Muhtemelen pixel shader kullanılarak yapılabilir. Çizginizi normal olarak çizin ve ardından 3 kez kutu bulanıklığını kullanın. – Rekin

cevap

5

ES 1.0 size işlemek-to-doku yaratıcı istediğiniz etkiyi elde etmek için kullanabilirsiniz, ancak bu dolgu oranı açısından masraflı olması olasıdır. Gamasutra parıltı Tron 2.0 oyunu sağlandı nasıl an (old) article var - o ES 1.0, sabit bir boru hattı gibi olduğu için DirectX 7.0 yorumlarınızı özellikle dikkat isteyeceksiniz. muhtemelen sadece ziyade ışıltı beri orijinal ile karıştırılarak daha Gauss görüntüyü görüntülemek istediğiniz durumda ilgilendiğiniz hepsi

makalenin Benim özetidir.

  • tüm satırları işlemek normal, katı saç çizgisi çizgileri olarak bir dokuya. Bu dokuyu kaynak doku olarak adlandırın.
  • Ben yatay bulanıklık doku arayacağım başka doku, için, diyelim ki, beş kere sadece render kaynak dokusunu alıp çizerek buna doğrusal yatay bulanıklık geçerlidir. Bir kopyayı opaklık 1.0 ile x = 0 ofsetinde çizin, iki kopya daha çizin - biri x = +1 ve bir de x = -1 - opaklık 0.63 ve bir son iki kopya - biri x = +2 ve bir x = -2'de 0.17'lik bir opaklıkla. Katkı harmanı kullanın.
  • , yatay bulanıklık dokusunu alarak ve temelde aynı adımları uygulayarak ancak x ofsetleri yerine y ofsetleri kullanarak, buna dik dikey bir bulanıklık uygular.

Bu opaklık sayıları, this page adresindeki 2d Gauss çekirdeğinden türetilmiştir. Çizgilerinizin dışına doğru düşmeyi etkilemek için onlarla oynayın. Eğer görünüşte on tam ekran dokulu ekliyoruz çizer artı bazı karetamponu takas:

burada yer alan ekstra maliyetler

Not. Multitexturing kullanarak muhtemelen daha az çekilişle kurtulabilirsiniz. Gölgelendirme yaklaşımı, tek geçişte yatay ve dikey adımlar yapabilir.