Author Topic: Stochastic texturing to avoid texture tiling  (Read 38896 times)

2019-03-26, 14:45:07

Fluss

  • Active Users
  • **
  • Posts: 553
    • View Profile
Stumbled upon this article: https://blogs.unity3d.com/2019/02/14/procedural-stochastic-texturing-in-unity/

It allows to tile stochastic or near stochastic textures with no visible repetition. Would be insanely useful to have such a tool in Corona. Especially for large surface areas, such as road, concrete walls etc...

Here is the full paper: https://drive.google.com/file/d/1QecekuuyWgw68HU9tg6ENfrCTCVIjm6l/view

2019-03-27, 17:12:46
Reply #1

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8833
  • Let's move this topic, shall we?
    • View Profile
    • My Models
+1
Would love to see this in Corona!
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2019-03-27, 17:28:14
Reply #2

PROH

  • Active Users
  • **
  • Posts: 1219
    • View Profile
+1 This would be realy useful :)

2019-03-27, 21:20:12
Reply #3

Noah45

  • Active Users
  • **
  • Posts: 437
  • press *1
    • View Profile
+1 seems simple, that's why i'm not a programmer
Retail Illustrator  (for ever' 80's )
3DMax 2020/Corona Version: 6DB

2019-03-27, 21:24:39
Reply #4

sebastian___

  • Active Users
  • **
  • Posts: 200
    • View Profile
What about this tutorial ?
It involves 3ds max too .. hmmm and at min 47.20 the guys also uses Corona.

(in the Unity blog post they said a limitation of that method is you can't use visible tiled textures like bricks. The method below works with bricks too)

« Last Edit: 2019-03-27, 21:30:58 by sebastian___ »

2019-03-27, 22:24:38
Reply #5

lupaz

  • Active Users
  • **
  • Posts: 956
    • View Profile
What about this tutorial ?
It involves 3ds max too .. hmmm and at min 47.20 the guys also uses Corona.

(in the Unity blog post they said a limitation of that method is you can't use visible tiled textures like bricks. The method below works with bricks too)


That takes much more time. You need several different maps to use in Multitexture.

+1 For the OP's suggestion.

2019-03-28, 11:32:35
Reply #6

Fluss

  • Active Users
  • **
  • Posts: 553
    • View Profile
Yeah, definitely not the same process. Here, it is as simple as putting a map in the shader, activate the feature and hit render. This would be insanely useful with maps such as Megascans, or almost any scanned texture, which look great but are highly repetitive when tiled.

2019-08-06, 11:01:04
Reply #7

Ink Visual

  • Active Users
  • **
  • Posts: 169
    • View Profile
So hasn't this feature just been implemented into FStorm?
I'd love to see it in Corona, I can't stress enough how useful it would be.


2019-08-06, 15:02:24
Reply #8

lupaz

  • Active Users
  • **
  • Posts: 956
    • View Profile

2019-08-06, 17:58:55
Reply #9

Jpjapers

  • Active Users
  • **
  • Posts: 1650
    • View Profile
Was about to post those fstorm pics. Its crazy how Andrey just comes up with an idea. Develops it quickly and then often within a couple of days theres a new version of fstorm with that feature working properly.

2019-08-07, 00:14:34
Reply #10

arqrenderz

  • Active Users
  • **
  • Posts: 994
  • https://www.behance.net/Arqrenderz1
    • View Profile
    • arqrenderz
Fstorm is doing brick texture  usable with this.

2019-08-07, 11:04:40
Reply #11

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8833
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Can someone explain how this Fstorm sorcery works? In original paper it is said, that this method works best on stochastic textures and fails to deliver on clear geometric patterns. Brickwork texture is probably worst case scenario, yet in Fstorm example it works just perfectly! How on earth Karba pulls those magic tricks again and again? Did he sell his soul to devil?
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2019-08-07, 12:31:07
Reply #12

Jpjapers

  • Active Users
  • **
  • Posts: 1650
    • View Profile
Can someone explain how this Fstorm sorcery works? In original paper it is said, that this method works best on stochastic textures and fails to deliver on clear geometric patterns. Brickwork texture is probably worst case scenario, yet in Fstorm example it works just perfectly! How on earth Karba pulls those magic tricks again and again? Did he sell his soul to devil?

Im guessing given the controls he has implemented you can perhaps choose not to rotate the map and given bricks are a standard size maybe you can offset it in specified increments so the blend can do its thing. Sort of like a triplanar map blending between two textures crossed with the UVW Randomiser functionality.

2019-08-07, 14:21:10
Reply #13

Ash.

  • Active Users
  • **
  • Posts: 15
    • View Profile
Been asking this for a few years over at the vray forums. Hopefully the fact that Karba did it and you guys are asking for it will spark the flame to implement this both in Corona and Vray. Here's hoping :)

2019-08-07, 15:32:26
Reply #14

Jpjapers

  • Active Users
  • **
  • Posts: 1650
    • View Profile
Been asking this for a few years over at the vray forums. Hopefully the fact that Karba did it and you guys are asking for it will spark the flame to implement this both in Corona and Vray. Here's hoping :)

Youd hope but we have been asking for geopattern, dslr tonemapping and a PBR material for a long time too

2019-08-08, 11:30:34
Reply #15

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12754
  • Marcin
    • View Profile
Logged as a feature request. Probably cannot be expected in V5 as it is going to be mainly a maintenance release.

(internal id=383770135)
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2019-08-08, 16:13:28
Reply #16

Ash.

  • Active Users
  • **
  • Posts: 15
    • View Profile
Nice it's been considered AND you guys have a feature request list. Maybe poke the Vray guys to make one as well, or at least if they have one, to be a bit more open about it :)

2019-08-08, 16:35:35
Reply #17

Giona

  • Primary Certified Instructor
  • Active Users
  • ***
  • Posts: 156
  • 3D - MTB - Photography
    • View Profile
    • Giona Andreani 3D Visualization

2019-08-15, 16:38:17
Reply #18

l.croxton

  • Active Users
  • **
  • Posts: 62
    • View Profile
Probably a little off with this but the random brick thing may sort of work like the using of Max's tiles to create a procedural brick texture. It looks like some of the bricks in that example are cut in half. Not sure if anyone knows this method (probably do) but you basically randomly place a brick texture which features 2 halves of a brick with mortar in the middle and then a full brick underneath.

Then using tiles to generate a random series of black and white alphas to show/hide the textures. So perhaps he has something similar to that? As its been said he may be using a grid to generate and then within that he is just randomly overlaying the texture.

Probably isn't how he is doing it..., but its a method anyone can use to create a totally procedural brick texture with just 6 different brick maps. Pretty basic, but it works fairly well. Plus since its Max tiles doing the distribution you can have really high res or low res maps in the slots so its pretty customizable.

2019-08-16, 21:52:05
Reply #19

Tanakov

  • Active Users
  • **
  • Posts: 831
  • Corona is faster than diarrhea
    • View Profile
    • https://www.behance.net/Gringott
Been asking this for a few years over at the vray forums. Hopefully the fact that Karba did it and you guys are asking for it will spark the flame to implement this both in Corona and Vray. Here's hoping :)

Youd hope but we have been asking for geopattern, dslr tonemapping and a PBR material for a long time too

My first request for that was somewhere around A4 or A5 stage of Corona, so they are not really keen on that

Also that would be a great feature, but isnt this already possible using OSL?
Using Corona since 2014-01-02
https://www.behance.net/Gringott

2019-10-08, 12:26:23
Reply #20

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8833
  • Let's move this topic, shall we?
    • View Profile
    • My Models
I installed Fstorm demo just for this feature alone. Didn't like Fstorm itself at all, but random tiling is just some magic, really! Definitely would love to have it in Corona. The only downside (a big one), that it doesn't work with displacement.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2019-10-10, 11:35:38
Reply #21

Jpjapers

  • Active Users
  • **
  • Posts: 1650
    • View Profile
I installed Fstorm demo just for this feature alone. Didn't like Fstorm itself at all, but random tiling is just some magic, really! Definitely would love to have it in Corona. The only downside (a big one), that it doesn't work with displacement.

Im yet to try it. Could you bake the randomised map down to file like with procedural maps or is it created at render time?

2019-10-10, 12:18:13
Reply #22

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8833
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Hm, i could try that, but is there any point in doing that? The main benefit of tiling randomizer, is to cover unlimited area with reasonable resolution texture. By baking to texture, you'll just loose that.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2019-10-10, 12:55:50
Reply #23

Jpjapers

  • Active Users
  • **
  • Posts: 1650
    • View Profile
Hm, i could try that, but is there any point in doing that? The main benefit of tiling randomizer, is to cover unlimited area with reasonable resolution texture. By baking to texture, you'll just loose that.

The point would be that you could generate a big enough randomised map to cover the area you need. then use that baked map in corona only using fstorm to generate the large scale seamless texture.

2019-10-10, 14:45:30
Reply #24

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8833
  • Let's move this topic, shall we?
    • View Profile
    • My Models
You can do that in photoshop, with much better result. Also texture rendered by Fstorm wouldn't be seamless, so you'd have to render reaaally large textures, which is hardly practical. Anyways, i did the test and the answer is YES and... NO. You can render it...

1. from material editor, but it's ruined by strange artifacts
2. normally with texture assigned to a plane and with neutral lighting, but the demo has watermarks. Also it looks that there is some tonemapping applied, even if i explicitly turn it off (might be that i'm missing something there)
3. as a render element, but for some reason it has applied strange gamma (could be because it's demo, or because i'm missing something)

In any case, i don't see a point to dig into this further.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2019-10-12, 21:32:24
Reply #25

v.p.vlasenko

  • Active Users
  • **
  • Posts: 71
    • View Profile
+1 to have that in corona

but as for now max users starting from v2019 can use OSL Randomized bitmaps




« Last Edit: 2019-10-14, 12:32:32 by v.p.vlasenko »

2019-11-28, 13:14:51
Reply #26

JViz

  • Active Users
  • **
  • Posts: 139
    • View Profile
    • Behance
Been asking this for a few years over at the vray forums. Hopefully the fact that Karba did it and you guys are asking for it will spark the flame to implement this both in Corona and Vray. Here's hoping :)

Youd hope but we have been asking for geopattern, dslr tonemapping and a PBR material for a long time too

the fact that Andrey Kozlov did it, does not mean others will be able to. the guy is a genius. check out his tone mapping, the best in the world actually. I imagine him have an idea think about it for like 5 minutes, start coding, no revisions, then the feature is out, just like that. he's the Tesla of the render engines world.
Although a purist, my work is anything but.
https://www.behance.net/ImageInnate

2019-12-11, 05:33:19
Reply #27

Mariopex

  • Active Users
  • **
  • Posts: 10
    • View Profile
    • StratoStorm
+1 This is the most useful feature! Beside the fact that you would save so much memory too by instancing the same image across a floor!
CD & TD @ StratoStorm

2019-12-19, 13:57:15
Reply #28

Ink Visual

  • Active Users
  • **
  • Posts: 169
    • View Profile
Poliigon created blender plugin doing pretty much what we ask for here.
I believe it doesn't do such a good job with brick textures, but it supports displacement which is something that Fstorm actually doesn't, as far as I'm aware?
Anyways, I'm sure Corona developers will be able to introduce it in the newest version too! Fingers crossed!

2019-12-19, 15:27:41
Reply #29

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8833
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Poliigon created blender plugin doing pretty much what we ask for here.

Not exactly. It can be seen from the video, that poliigon's solution lacks one crucial thing - blending! It isn't seamless in any ay. We can already achieve something similar with Corona uvw randomizer :]
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2019-12-19, 17:58:18
Reply #30

Fluss

  • Active Users
  • **
  • Posts: 553
    • View Profile
To clarify things, the original request is not a node to tile a bitmap. This technique is applied to the whole mesh so there is no repetition at all.  There is a lot of misinterpretation here. Look at the link in the original post.



Also, they improved some stuff since the original paper :

"Preprint and OpenGL demo of "Procedural Stochastic Textures by Tiling and Blending" by @afrenchdutch (GPU Zen 2), an improved implementation of our HPG 2018 paper. Faster precomputations, improved mipmapping and support for DXT texture compression."
https://eheitzresearch.wordpress.com/738-2/

« Last Edit: 2019-12-19, 18:11:29 by Fluss »

2019-12-19, 19:44:48
Reply #31

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8833
  • Let's move this topic, shall we?
    • View Profile
    • My Models
To be honest, i like Fstorm's implementation better. It might be not as good with stochastic textures, as technique from the paper, but it works even with textures that has strong pattern. It's more versatile and that's what really matters.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2020-02-28, 11:05:49
Reply #32

Alexandre Besson

  • Active Users
  • **
  • Posts: 132
  • http://www.alexandre-besson.com
    • View Profile
    • Alexandre Besson portfolio

2020-03-11, 13:51:55
Reply #33

Duron

  • Active Users
  • **
  • Posts: 106
    • View Profile
    • Portfolio

2020-03-11, 15:15:05
Reply #34

Fluss

  • Active Users
  • **
  • Posts: 553
    • View Profile
To be honest, i like Fstorm's implementation better. It might be not as good with stochastic textures, as technique from the paper, but it works even with textures that has strong pattern. It's more versatile and that's what really matters.

Well, a solution for both case would be nice tho !

2020-04-16, 17:43:23
Reply #35

Fluss

  • Active Users
  • **
  • Posts: 553
    • View Profile




Everybody is jumping into the train

2020-04-24, 22:04:45
Reply #36

moriah

  • Active Users
  • **
  • Posts: 24
    • View Profile
Apparently Vray is developing this feature, so my guess is Corona will follow the lead?

2020-05-28, 16:56:11
Reply #37

Vlad_the_rant

  • Former Corona Team Member
  • Active Users
  • **
  • Posts: 107
  • Vladimir
    • View Profile
This has been implemented and will be in Corona 6.

2020-05-29, 11:03:06
Reply #38

Ink Visual

  • Active Users
  • **
  • Posts: 169
    • View Profile
This has been implemented and will be in Corona 6.

That's brilliant! Thanks a lot guys, cannot wait to use it in production, it'll be a huge time saver in shaders preparation!

2020-05-29, 11:38:22
Reply #39

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12754
  • Marcin
    • View Profile
Also, the playground thread for testing and showcasing is here: https://forum.corona-renderer.com/index.php?topic=29598.0
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us