the scene > demoscene

pc demolari

<< < (6/17) > >>

ghost:

--- Alıntı yapılan: anesthetic;14141 ---benim izleyeceğim yöntem şu olurdu: t0 anında explosion p0 noktasında başlasın ve yayılma hızı v olsun.

objeyi çizerken p0 merkezli ve (t-t0)*v yarıçaplı küre patlamanın tamamen gerçekleştiği hacim olacak. yani p0 merkezli ve giderek yarıçapı büyüyen bir küre.

vertex shader ile küçük poligonlara bölünmüş objede bu kürenin içinde olan her vertexi kürenin yüzeyindeki en yakın noktaya gönderirim.
...
--- Alıntı sonu ---



akla daha yatkin hakaten.

nightlord:

--- Alıntı yapılan: anesthetic;14141 ---vertex shader ile küçük poligonlara bölünmüş objede bu kürenin içinde olan her vertexi kürenin yüzeyindeki en yakın noktaya gönderirim.

bu sayede parçalanmanın yarısı, yani parçalanan büyük objenin parçalanmış kısmının görünmeme olayı halledilmiş oldu. geri kalan kısmı, yani parçalanma bölgesinde dağılan edevatlar göstermeyi de büyük objenin küçülmesinden bağımsız bir şekilde, etrafa rasgele (giderek açılan tabi) prizmalar dağıtarak hallederim.

--- Alıntı sonu ---

Ben tam anlamadim. Eger kurenin icinde kalan vertexleri kurenin yuzeyine gonderirsen gorunmelerini engellemis olmayacaksin gibi geliyor bana sadece objenin kure icinde kalan bolumu balon gibi sisiyor olmayacak mi? Sonucta Nested'da kurenin yuzeyine gonderilen vertexler gorunmeye devam ediyor.

Dagilan edevat ile ilgili ise particle system'lere benzer bir durum oldugunu dusunuyorum ben. her edevat prizmasinin t= t0_piece aninda buyuk objeyle alligned olarak baslamasi ve sonrasinda da hafif variationlarla, ivme, hiz ve pozisyonlarinin update edilip. rotationlarin da fiziksel dayanak olmaksizin oldugunu saniyorum.

Dolayisiyla ben olsam edevat prizmalari icin buyuk bir vertex bufferda her vertex basina bazi extra fieldlarda su bilgileri saklardim:
- ait oldugu prizmanin local orijini
- ait oldugu prizmanin patlamadan once gorunen bir vertexi mi degil mi (buna originally visible vertex diyelim)
- ait oldugu prizmanin t0_piece yani patlama anini
- prizmanin x exseni etrafi rotasyon hizi (rot_spd_x)
- prizmanin y exseni etrafi rotasyon hizi (rot_spd_y)
- prizmanin z exseni etrafi rotasyon hizi (rot_spd_z)
- prizmanin ustundeki a_init, v_init vektorleri


daha sonra vertex shadera her frame sunlari gecirirdim:
- t
- buyuk objenin x y z eksenlerine yaptigi aci (yani bir nevi buyuk objenin rotasyon matrisi)
- buyuk objenin x y z pozisyonu

sonra da vertex shaderda
-t_local = t - t0_piece
--t_local negatif ise ve originally visible degil ise hide vertex (!?)
--t_local negatif ise ve originally visible ise render edicez
--t_local pozitif ise t_local, rot_spd_x, rot_spd_y, rot_spd_z, kullanip bunlari buyuk objenin rot_x, rot_y, rot_z si ile toplayarak prizmanin rotasyon matrisini hesapla
- t_local, a_init, v_init ve buyuk obje pozisyonlarini kullanarak prizma pozisyonunu bul
- pozisyon ve rotasyon bilgilerini kullanarak ModelToWorld matrisini olustur, vertexi carp ve dunyaya yerlestir

Boylece prizmalarin inital pozisyonlarinin buyuk objede alligned olmasi garantilenmis olur. butun hesaplamalar vertex shaderda oldugu icin cok hizli olur ve cpuya yuklenmez.

Fakat benim problemim bir vertexi (ve ona bagli olan poligonlari) render etmemek istedigimde bunu yapacak optimum bir yol bulamamis olmam. Aklima gelen tek sey. pixel shader'a her vertexten 1 veya 0 bir value gecirip, ps'da o value 1 mi diye bakmak (eger ucgenin koselerinden biri 0 ise poligondaki pixeller icin interpolasyon degeri 0dan kucuk olur). Ama bu cok inefektif olur.

O yuzden anes'in bunu nasil yapmayi planladigini merak ettim zaten :)

Bi de tabi o buyuk vertex bufferi hazirlamak gibi de guzel bi problem var

anesthetic:

--- Alıntı ---Ben tam anlamadim. Eger kurenin icinde kalan vertexleri kurenin yuzeyine gonderirsen gorunmelerini engellemis olmayacaksin gibi geliyor bana sadece objenin kure icinde kalan bolumu balon gibi sisiyor olmayacak mi? Sonucta Nested'da kurenin yuzeyine gonderilen vertexler gorunmeye devam ediyor.
--- Alıntı sonu ---


objenin küre içinde kalan kısmı içe çöküyor olmalı. kum havuzuna düşen basket topunun kumlarda yaptığı değişiklik gibi. küreyi dışarıdan büyütmemiz gerekiyor dememin sebebi buydu.

obje küçük ve obje yüzeyi değişken ise (greetlerdeki harfler gibi) bu basıklık küreye daha çok benzeyecek. görünüp görünmemesi ise önemli değil çünkü harfin hem önünden hem arkasından basılacak (ve önden baktığımızda arkayı boş göreceğiz).

obje büyük ve obje yüzeyi geniş düz parçalardan oluşuyorsa (binalar gibi) hem basıklık küreye benzemeyecek (fazla eğrisel olmayacak) hem de görünmeleri sorun teşkil edecek.

ama binanın birazcık içine karlı görüntü kaplamalı büyük bir blok koyarsak sorun kalmaz gibi geliyor bana :) bu blok basıklığın önüne geçeceği için içeri bastırdığımız kısım tamamen kayboluyor hissi verecek (kaybolmuş vertexlere sahip üçgenleri piksel shaderda çizdirmemek gibi yollar gerekmeyecek).

GnoStiC:
debris'in yeri ayri tabi ama halen cogu pc intro/demo'su beni 199x (x=0,1,2,3) yillarinda yayinlanmis Amiga ECS demolari kadar etkilemiyor..

resident'in 7d7'de yayinlayacagi (amin) pc demosunu 4 gozle bekliyorum.. izledikten sonra mest olacagimizdan (mest'ed) eminim :)

i have had it with these motherfucking demos on my motherfucking pc!

skate:
@anes: ben anladım senin kastettiğin yöntemi ancak sanırım debris'te nightlord'un düşündüğü yöntem kullanılmış.
 
bu arada seamlerle ilk tanışmam çok geç oldu benim (2004-2005 falan). PC'de aklıma gelen hoş bir efekt planı sırf bu yüzden suya düşmüştü. Deneme yanılma kadar öğretici başka birşey bilmem zaten hayatımda :)

Navigasyon

[0] Mesajlar

[#] Sonraki Sayfa

[*] Önceki Sayfa

Tam sürüme git