[GELÖST] perlin noise

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

Boris1993

Betreff: [GELÖST] perlin noise

BeitragMi, Jul 11, 2012 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Ich versuche mich gerade eine Perlin Noise Funktion zu schreiben. Das mit der Interpolation habe ich nach viel probieren auch hinbekommen, aber es gibt noch einen bug beim Berechnen der letzten Werte, den ich nicht so ganz verstehe. Meine Funktion berechnet Punkte 0 bis Bildschirmbreite und ca. die letzten 25 Pixel befinden sich alle auf der 0 Linie. Ich komm einfach nicht drauf woran das liegen könnte. Wäre nett wenn sich das einer mal anschaut.

Code: [AUSKLAPPEN]
SuperStrict
SeedRnd MilliSecs()

'-----------Init-------------
Const w:Int = 1024
Const h:Int = 768

Graphics w, h

'--------------Types/Variablen---------------
Type TPerlin
   Field frequency:Int
   Field amplitude:Int
   Field noise:Float[w]
   
   Global noiselist:TList = New TList
   
   Function Generate:TPerlin(freq:Int, amp:Int)
      Local p:TPerlin = New TPerlin
      Local random:Int[freq]
      Local l:Float = w/freq
      Local y:Float
      Local b:Float
      
      p.frequency = freq
      p.amplitude = amp
      
      
      For Local i:Int = 0 To freq-1
         random[i] = Rand(-1, 1)
         Print random[i]
      Next
      
      For Local sector:Int = 0 To freq-1
         b = random[sector]*amp
         For Local x:Int = 0 To l
            y:+b/l
            p.noise[sector*l+x] = y
         Next
      Next
      
      ListAddLast noiselist, p.noise
      Return p
   End Function   
   
   Function addnoises()
   
   End Function
   
   Method draw()
      For Local x:Int = 0 To 1023
         Plot x, h/2+perlin.noise[x]
      Next
   End Method
End Type

Global perlin:TPerlin = TPerlin.generate(24, 12)




'------------------------Hauptschleife--------------------------
While Not KeyHit(KEY_ESCAPE) Or AppTerminate()
   Cls
   
   perlin.draw()
   
   Flip
Wend

End



Edit:
Achja und kennt jemand vllt gute simplex noise beispiele? am besten in Bmax. Die Tutorials die ich mir angeschaut habe versteh ich nicht wirklich. am besten verstehe ich es wenn ich direkt aus den codes von anderen lerne

Lg
Boris
  • Zuletzt bearbeitet von Boris1993 am Mi, Jul 11, 2012 17:08, insgesamt einmal bearbeitet

Jolinah

BeitragMi, Jul 11, 2012 15:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Das liegt scheinbar an der Integer-Division:

Code: [AUSKLAPPEN]
Local l:Float = w/freq


Code: [AUSKLAPPEN]
Local l:Float = Float(w) / Float(freq)
 

Boris1993

BeitragMi, Jul 11, 2012 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich danke dir Jolinah Smile
Den gleichen Fehler hatte ich sogar schonmal. Sowas übersieht man wirklich leicht und dann findet man den fehler auch nicht so schnell

Jolinah

BeitragMi, Jul 11, 2012 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hehe, das kenn ich... sowas ist immer ärgerlich Wink
 

Boris1993

BeitragMi, Jul 11, 2012 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab noch ne weitere frage die jetzt zwar nicht zum thema gehört aber ich will desshalb nicht nochmal einen thread aufmachen

ich habe gerade ein galerie bild von meinem vbo voxelterrain gepostet doch jetzt find ich das nicht. wo kann man seine eigenen galeriebilder anschauen?

BladeRunner

Moderator

BeitragMi, Jul 11, 2012 16:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast dein Bild nicht in die Galerie sondern ins Archiv hochgeladen Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group