[GELÖST] perlin noise
Übersicht

Boris1993Betreff: [GELÖST] perlin noise |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das liegt scheinbar an der Integer-Division:
Code: [AUSKLAPPEN] Local l:Float = w/freq
Code: [AUSKLAPPEN] Local l:Float = Float(w) / Float(freq)
|
||
Boris1993 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich danke dir Jolinah ![]() Den gleichen Fehler hatte ich sogar schonmal. Sowas übersieht man wirklich leicht und dann findet man den fehler auch nicht so schnell |
||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hehe, das kenn ich... sowas ist immer ärgerlich ![]() |
||
Boris1993 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast dein Bild nicht in die Galerie sondern ins Archiv hochgeladen ![]() |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group