Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 23

Thread: mvNoise, Perlin noise - problem

  1. #11
    I happened to come across simplex-noise, and still unsure how fitting it is for gaming. It claims to be kind of simplified and optimized replacer for Perlin noise. Actually Simplex is made by Perlin himself in 2001.
    http://en.wikipedia.org/wiki/Simplex_noise
    Some Java source
    http://staffwww.itn.liu.se/~stegu/si...plexNoise.java

    Also, now that i think about it, i think this is 4D, where time is 4th dimension:
    http://mrl.nyu.edu/~perlin/homepage2...ise/index.html
    Last edited by User137; 29-06-2013 at 03:56 PM.

  2. #12
    PGDCE Developer Carver413's Avatar
    Join Date
    Jun 2010
    Location
    Spokane,WA,Usa
    Posts
    206
    I would be very interested in a pascal version of simplex as it supports up to 6D and it is needed in order to create seemless textures but I dont know much about java.
    http://www.gamedev.net/blog/33/entry...eamless-noise/
    Last edited by Carver413; 29-06-2013 at 04:22 PM.

  3. #13
    I've translated some 3d simplex noise implementation to pascal : http://laggyluk.com/?p=86

  4. #14
    PGD Staff / News Reporter phibermon's Avatar
    Join Date
    Sep 2009
    Location
    England
    Posts
    524
    If your shooter is already procedural and you wish to you perlin noise for say, a graphical effect then you should pre-generate a seemless perlin texture and then do texture fetches with wrap around coordinates. With a non even scale iterator you get all the smooth interpolation properties of perlin noise without the CPU hit for generation.

    If you really need true noise, perlin noise is an incredibly simple algorithm, you should be able to implement it yourself just by reading the wiki page.

    If you don't try to do these things then you rob yourself of an opportunity to learn more
    When the moon hits your eye like a big pizza pie - that's an extinction level impact event.

  5. #15
    While my problem is resolved, I need to point out that I rarely understand wiki pages on algorithms, as they usually involve some complex math. I also prefer tutorial-like resources to barebones, dry documentation. But I understand what you mean.

  6. #16
    I must agree with Darkhog that Wiki pages sometimes doesn't offer easy understandable explanations.
    While the base idea of wiki pages is to provide easy explanations to comon pepole I find it more and more often that they are written for more scientific audience (lots of scientific teminology). This of course make wiki explanations les understandable and actually forces you to read explanations for all that scientific terminology.
    So in the end you can quickly wind up reading half a dozen wiki pages just to understand one thing.

    Now as for Perlin noise generation the wiki article didn't helped me much to understand how it works. But I did managed to understand it quite good after readin Ken Perlins oficial explanation of Perlin Noise Generation. You can find it here:
    http://www.noisemachine.com/talk1/
    Another two great sites explaining how perlin noise works are:
    http://freespace.virgin.net/hugo.eli...s/m_perlin.htm
    http://webstaff.itn.liu.se/~stegu/TN...-math-faq.html

  7. #17
    Quote Originally Posted by laggyluk View Post
    I've translated some 3d simplex noise implementation to pascal : http://laggyluk.com/?p=86
    I appreciated the effort, but i still translated my own Your version was procedural, and didn't support 2D or 4D.
    https://code.google.com/p/nxpascal/s...rc/nxNoise.pas

  8. #18
    Quote Originally Posted by User137 View Post
    I appreciated the effort, but i still translated my own Your version was procedural, and didn't support 2D or 4D.
    https://code.google.com/p/nxpascal/s...rc/nxNoise.pas
    i did it for my own use to make it 2d you pass z = 0

  9. #19
    4D is fun too when you want to see 3-dimensional terrain bubble around like plasma At first i thought the extra dimension would be most feasible to use as seed, IE. for 2D world i'd use 3-dimensional noise where Z = seed. But i realized that i could alter the permutation table instead.

    So that's what i did now, adding seed: int64 parameter to constructor. Then masking the permutation bytes with xor and seed. Basically what it does is:

    Imagine seed was 4 bits (it's 64 bits really), for example seed=0110.
    Then i have original permutation byte-array, going for example
    100011011100... then make the seed wrap to same length:
    011001100110... and finally XOR them for final permutation:
    111010111010
    And final touch, because seeds 0 through 1000 still showed hardly any change, i multiply seed at beginning with some constant 85123154182917 number, to force more bit-changes. Looks fine for now.

  10. #20
    PGDCE Developer Carver413's Avatar
    Join Date
    Jun 2010
    Location
    Spokane,WA,Usa
    Posts
    206
    why put that multipler in there at all. maybe sometimes you want only subtle changes or you want to choose a different multiplier. anyway thanks for the post, I'll be sure to check it out when I have some time.

Page 2 of 3 FirstFirst 123 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •