Perfect Tile System - Do you guys want this for the Marketplace?

OK, it’s been a while without any updates, so I’ll try to let you guys in on what I’m doing now:

caner_ozdemir posted a novel iterative parallax solution (found in this thread: POM material - Rendering - Unreal Engine Forums ), and I wanted to get it working with my system. If it can be integrated, the results would be the same as the standard bump-offset parallax displacement, but without any artifacts at all. Unfortunately, just as I expected, the ability to tile a ton of different assets over each other at different scales is coming in the way of this being a good idea. Parallax occlusion mapping currently is supported, but not recommended for glass or metallic tiles. The iterative parallax was made into a material function. I tried making parallax occlusion into a material function, but for some reason I’m having trouble referencing a texture object inside of it. Again, check out that thread if you’re interested in these new developments. Daniel W responded saying there will be a new material node coming in 4.8 to push pixels in with depth so parallax occlusion materials can perform post-process ambient occlusion and shadow correctly.

In the meantime, I also implemented a custom Ambient Occlusion map if you want to have nice AO textures working with this system. Stay tuned for further updates!

Hello! Big progress today: I found out a way to fully integrate advanced parallax (both iterative parallax and parallax occlusion) with the advanced local tiling features and tile distortion. This means you can now render wooden panels that shift UVs per-panel with parallax occlusion and retain the full breadth of tiling textures independently of one another in X and Y directions. Simply put, there is no absolutely no limitations imposed on materials using advanced displacement. I am progressing further on making the displacement work for other maps as well.

I sincerely apologize for the delays. I have not had a good chunk of time to develop this shader, and now that it is overblown with features, it is becoming very daunting to do so. I can’t wait to make the demonstration/ad video: it will be amazing!

0bf7645fd8bd67bbc06c7f40375d78cfe0973179.jpeg

Logged into the forums for the first time just to tell you that this is one of the most awesome projects I’ve seen on here. Keep up the amazing work!

This is… wow. That material graph is just insane. Even if I don’t think I need this, I’m going to grab it when I have the cash spare just as a thank you for your work!

Oh gosh, wow, thank you so much, Amsirahc! You have no idea how happy that comment made me, and I’m actually kind of shocked that you registered with the community just to compliment my work! I have to say though, not all of this shader system is absolutely positively mine: you’ll have to thank Ehamloptiran for the parallax occlusion code, and caner_ozedmir for the iterative parallax code. Those features would not have been in this system if it wasn’t for the work they shared with the community. If you stick around here, I’m sure you’ll find incredible projects all over the place, and users willing to share snippets of code that can really help you out a lot.

And thank you apisonedgift for your equally supportive comment! Believe me, there is so much you can do with this system, I guarantee you will find a use for it! But even if you can’t use the shader at all, nor the assets, there’s still a couple material functions included that will help you out: an RNM normal mapping blend that is similar in function to UE4’s BlendAngleCorrectedNormals, but with 2 less instructions, and caner_ozdemir’s iterative parallax, which fixes distortion issues with the basic parallax bump offset. In simpler terms, it lets you use nicer normal map blending and displacements on flat surfaces.

So, BIG NEWS - I am just a few more shots away from finishing the promotional video, which includes demonstrations and advertisement. It took a heck of a lot of memory to record and edit everything at 1080p 60 FPS, but it’s totally worth it! I’ll do my best to get the video up tonight, but unfortunately, it’s going to need some time. On top of this, I just finished describing every single feature of this system in the user guide. The last thing that I’m doing right now is changing the font of the banner display used in the level to Century Gothic. I’ll need to re-record a few shots of the level, but after that both the guide and the video will be done, and the project will be submitted to Epic for inclusion in the Marketplace! I am aiming to have this thing submitted by the end of next week!

e06533cf362928212212ff572401476cd680fb0b.jpeg

Alright guys, it’s finally finished! I submitted my pictures and video of the Perfect Tile System to Epic for inclusion in the Marketplace! It’s only a matter of time now before we get an official response! I thank you all for your incredible patience.

And I’m also happy to finally be able to reveal to you this trailer! Please watch in 720p 60 FPS or higher if possible:

Looks amazing… and THAT is how to make an exciting trailer for a dev asset! Nicely done :slight_smile: What price did you end up submitting it for (if I may ask XD)?

Haha, thank you, apoisonedgift!

The submitted price is $14.99. Even though the final system is WAY more complicated than I originally intended, I also wanted to make a material pack that was affordable for everyone to use. There’s so many different uses for this type of system, I’m sure most people will find something that makes the cost worth it :slight_smile:

Now, I do plan on making more assets and selling expansion packs if this thing really takes off, and I already have ideas for improving the shader beyond this, but if it doesn’t sell enough, I have other projects on mind as well. We’ll see how things go :slight_smile:

That was a pretty epic trailer!

Good luck on your sales. If I can think of way to use this I will pick it up! :slight_smile:

Haha, thanks! What kind of projects are you working on?

$14.99?! You’re crazy haha. Just REMAKING that shader would warrant more than that… Not that I’m complaining XD Day one purchase for me :slight_smile: Great work.

Haha, yes! Well, to be fair I only remade the parts that seemed to get out of hand as I went along, so, I didn’t really start from scratch each time. Glad this will be a day one purchase for you!

A hexagonal map generator. If I could feed array data to set each individual hexagon it could be useful/interesting, but probably not worth it in the end. I will keep it in mind. :slight_smile:

Yeah, this is only for shader work. You can make hexagonal TMs and complex materials with hexagon shapes, but that’s about it. One user posted a simple pixel-to-hexagon material setup, and I contemplated integrating it with this, but I’m not sure how to help you with a hexagon map generator other than being able to supply materials that tile into hexagon shapes.

Yeah, I would need a way to input an array with up to 80K members into a material parameter collection during runtime. I don’t think that can be done in a dynamic way right now, and I sure as hell am not manually inputting 80K entries into a param collection… :stuck_out_tongue:

Wow, that looks really cool! I’m actually thinking about using it in one of my next game projects where I want to aim towards a slighty stilized environment.

Yeah, Zeustiak, that sounds like something pretty far outside my specialty. I wish I could help you, but I don’t think I can.

Thanks, TidB! It is possible to get some neat styles with a system like this. The hues preset in particular lets you use any texture you want to randomize the colors of tiles. I’ll keep everyone here updated on new happenings, I think you’ll be interested in some of the new features.

So, I have good news and awkward news. I received word from Epic that they would like to view these assets in the engine. Unfortunately, after reviewing the requirements myself, the texture density was way too high. I had to double the size of my entire map, and I’m going through and fixing the texture density to be more appropriate. One thing lead to another, and while working I found out a huge gamma correction issue that absolutely needed to be fixed, and it now screwed up the colors of everything in the project. But the end result is a texture that looks appropriate in Photoshop will also look appropriate in this system. I apologize I didn’t catch any of this sooner, and the final colors and tiling will look a bit different than what you saw in the trailer. I’m taking care of these issues right now.

In the meantime, I also managed to add a few new features! More on this later :slight_smile:

Mariomguy, you seem to be the man whom might know how to texture my highpoly brick wall. In the pic I have the UV map was just flattened to do a test on frame rate with the Oculus Rift. But when I was in the editor it actually looked good with no tilling happening. now that I have done the UV’s properly, how would I go about doing the random pattern on the bricks with the material.

Here is the pic of the building with the flattened UV

Because I used the concrete grime texture from the starter content and the UV map was just random positioning in 3ds max it gave the bricks in the wall random colors. Any help with this would help in making the lowpoly meshes the same texture pattern.

Hi seandennis! If you’re modeling each brick out with polygons, you’re going to run into problems with UVs, texturing, and, of course, performance. Flat UVs would cause pixel stretching: yes, even the best displacement methods (POM and tessellation) will stretch the pixels, but you’d still be stuck with stretching along basic polygon lines as opposed to a more fluid displacement method through displacement maps. You’ll also have issues with lightmaps as there will be plenty of very dark inset edges meeting very bright spots, and this can cause a lot of light and shadow bleeding all over your model. And it will not be possible to color each brick individually unless you make a custom texture capable of doing that.

Unfortunately, my system is a tiling material, not a high poly object material, but for a good reason. It actually colors each brick individually as opposed to tiling a huge blurry texture at random over it. The generation is provided by a noise map where each pixel (or two pixels) represents a single brick. You can’t do that in a controlled way with random UVs where the bricks are scattered all over the place. There is no way to ensure each brick has its own appropriate normal map, either. So, your building looks OK from a distance, but I bet if we got up close there’d be tons of issues with the texture blurring out and the individual bricks themselves remain undefined, without proper normals. And no, I don’t mean tiling a normal map over it, but ensuring the normal map is appropriate for each individual brick.

Now, realtime graphics are just a fake way of achieving good results. No, you won’t have a perfect 3D displaced mesh using the methods I described, but the results will be so darn convincing and run so fast, I doubt you’ll still say you need a 3D high poly brick wall. And you really don’t. You just need a wall that looks very good.

Ideally, you can just model a flat wall and be able to make a convincing material surface with tiling repeated assets and controlled variation along with proper displacement and normal mapping methods for a more consistent and reliable result. This is exactly what my system provides. With less space than what’s necessary for a single 1k map, I can get you enough variation to cover that entire building and make sure each brick has its own proper normal and texture map. If you want displacement, there’s different tiers of parallax displacement, and if you want vertex displacement, you can try tessellation. The benefit of tessellation is your lightmaps won’t be affected, and you have more precise control over the LODs, along with how deep your displacement insets and how it tiles. You can pretessellate your mesh in order to give it more vertices ahead of time and reduce strain on the shader to spawn polygons. This will give you much more consistent, reliable, and flexible results than the method you described, and it will still be fairly easy to render. With less polys, it definitely would be.

Hello everyone! The project is finally up on Trello! It’s under the Blueprints tab… it’s not really a blueprint, more like a master material, but please go there and vote for it!

Unfortunately, the images on Trello are highly outdated, and the video was replaced. My apologies, I did not understand the gamma issues prior to this, and I also fixed the tiling so it conforms to the metric standard. I sent in new images and the new video link to see if they can update the Trello card, but in the meantime, take a look at the final trailer and screenshots for this project!