A.I. High Resolution Texture Design (Wave Function Collapse #9)

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ม.ค. 2023
  • 2023-01-21. 3rd video that showcases a bunch of higher resolution texture renders from the example images. The images at the start are my own design. The inputs at the end are actually NES game textures (and one from Doom 1993). Many of these have flaws that confuse the Wave Function Collapse (WFC) algorithm, so they have difficulty avoiding getting into a infinite loop situation where the pattern generation cannot break free.
    The algorithm works best when there are few colors, and you give it the proper wrapping and mirroring constraints to build what you want. The rock textures are a great example. You can add details to the textures as a second pass, after WFC creates the basic structure of the texture.
    Playlists:
    --------------------
    - Voxel Software 3D: • Voxel Engine #8 - Corr...
    - Ray Casting 3D: • 3D Ray Casting Engine:...
    - Graph-All Calculator 2D: • Graph-All Calculator #...
    - Parallax Side-Scroll Shooter 2D: • The First Pixel: Dev V...
    - Road Pseudo 3D: • Pseudo 3D Road #8 - in...
    - Arena Shooter 2D: • Arena Shmup Demo #3 - ...
    Websites:
    ---------------------
    - GitHub: github.com/JDoucette
    - Indie Game Studio: xona.com
    - Blog: thefirstpixel.com
  • เกม

ความคิดเห็น • 10

  • @erictsang0
    @erictsang0 5 หลายเดือนก่อน +1

    the one at 7:00 i find super fascinating!
    i want to somehow use this to produce levels for some game that i am working on
    but like most projects i start, there is a 99% chance that it will never be finished.
    watching your VFC videos are fascinating and inspiring :D thanks for sharing them!

    • @JDoucette
      @JDoucette  5 หลายเดือนก่อน

      Hey Eric. Thanks for taking a look. Once I understood the limitations of this algorithm, after testing many textures -- limitations due to the restrictions of the rules, in how it is never allowed to break them for even a single pixel (perhaps something that could be altered!) -- I started looking for NES game textures that would have a better chance at producing something nice -- figuring their limited color palette would give the algorithm freedom. Procedural texture generation was this project's original goal. That texture you like is from an NES game, Darkman.

    • @JDoucette
      @JDoucette  5 หลายเดือนก่อน

      Level design is one of WFC's ideal usages... and it doesn't even have to be that complicated. You can make the input texture a few colors, and then let it spit something out, then you can do a 2nd pass yourself to turn the result into the level you want. In other words, let the algorithm do the high level design, and then handle the details (or even fix-ups) yourself!
      I wish you luck on your game... if you make any progress on it, I'd love to see it.

  • @djarcas
    @djarcas ปีที่แล้ว +2

    Of all the things I haven't understood recently, I haven't understood this the most.

    • @JDoucette
      @JDoucette  ปีที่แล้ว +2

      Ha ha, thanks for making me smile. Think of this like a human drawing an image, or creating a design -- except you have no grand design to follow, you're just making it up as you go. Sort of like drawing a maze. You make a few corridors, and then you add onto it. The design flows from limited possibilities attached to what you already decided on. Here, the possibilities are not endless -- they can only be the little squares you see on the left side. And those squares are created from the source image. You could skip the source image -- throw it away -- and give this algorithm the little squares directly, and it'd try to design using those constraints.

    • @djarcas
      @djarcas ปีที่แล้ว

      @@JDoucette I've been following AI stuff intently for ages, but usually I've been seeing the results, and very little 'under the hood'. Good stuff.

    • @JDoucette
      @JDoucette  ปีที่แล้ว +1

      @@djarcas Thanks. Most people would likely not call this AI, since it's a procedural algorithm, and AI requires some form of intelligence that generally requires self-learning in some way. But calculators were considered AI, and chess engines still are, and they don't require self-learning to play "smart" chess. I don't generally worry about the terms. I think it's neat that this algorithm is making those textures & designs, and I'm not telling it exactly how -- I'm just telling it to be consistent with the original image. I could see a method of reinforcement learning that could allow it to do this better, or more efficient, and that would be AI, but that's not required to get a result.

    • @JDoucette
      @JDoucette  ปีที่แล้ว +1

      @@djarcas I also have more ideas on how to re-work this algorithm from scratch, and to dump the strict restrictions -- i.e. for it to be OK if adjacent patterns don't exactly match, which allows it to be more free. Then it could revisit the ugly mess it made, and try to fix them up. An example of this is Iterative Partial Match (IPM) algorithm. There are so many ways to do this. If you're a coding, I encourage you to jump in. It can be fun to try even as a hackish, non-optimized program! :)

    • @MrPangahas
      @MrPangahas ปีที่แล้ว

      @@JDoucette how do you begin with this, not a programmer so I don't really know how to initiate the one in github depo.