Jump to content
Sign in to follow this  
oktyabr

Ground surface texture tiling?

Recommended Posts

Hi,

I've been through Beton's tutorial on ground textures (thanks Beton!) and he expresses the ideal size to be 2048x2048 as smaller (1024x) will tile more? I've also read the V3 documentation and still can't seem to figure out the answers to these questions:

1) is the size of the texture the only factor in how much it will tile? If not what other factors? i.e., what methods can be used to stretch a ground texture as far as possible, thus reducing that artificial tiling look?

2) what is the largest that can be used? What's the largest YOU have used?

Thanks in advance!

Share this post


Link to post
Share on other sites
1) is the size of the texture the only factor in how much it will tile? If not what other factors? i.e., what methods can be used to stretch a ground texture as far as possible, thus reducing that artificial tiling look?

Hmm.. I'm probably stepping outside the realm of knowing here.. but..

I believe you can effect it with the Texture Layers settings. (no clue if anything functions beyond Base(active) layer..)

2) what is the largest that can be used? What's the largest YOU have used?

Can't say that I've used anything to the point of production, but the largest I've seen and recall being able to use is 2k. You can use 4k with models, I don't think you can with the maps.

That being said, there are somewhat reasonable concerns with utilizing 4k texures anyway. So I'd say stick with the 2k.

Not sure how up to speed you may or may not be on image editing and whatnot. But there are things that can be done to reduce/minimize the tiling effect. Images of what you're working with would be helpful in that regard.

.

Edited by Gnome_AS
i cant type today

Share this post


Link to post
Share on other sites
Hmm.. I'm probably stepping outside the realm of knowing here.. but..

I believe you can effect it with the Texture Layers settings. (no clue if anything functions beyond Base(active) layer..)

Can't say that I've used anything to the point of production, but the largest I've seen and recall being able to use is 2k. You can use 4k with models, I don't think you can with the maps.

That being said, there are somewhat reasonable concerns with utilizing 4k texures anyway. So I'd say stick with the 2k.

Not sure how up to speed you may or may not be on image editing and whatnot. But there are things that can be done to reduce/minimize the tiling effect. Images of what you're working with would be helpful in that regard.

.

Thanks for the reply Gnome_AS!

I'm up to par with GIMP, not a master of bit pushing but I can usually find a way to get done what needs to happen... The images are really nothing special, just your basic sand with enough variation in it that it isn't just solid yellowish-white. Close up it looks fine but even the slightest variations can give up the "tiling" if you know what to look for.

I've used GIMP to make a "seamless" tile and that works well, but it's almost as if my textures are too small, maybe a meter squared in game... and I've seen other maps where the tiling is evident, if you look for it, but the tiles seem much bigger so it doesn't just "jump out at you" like mine do.

The test run I've been working with is a 5120x5120 sat and mask, the terrain is 1024@5m/pixel, base is 20x20 (40x40 gives me an "invalid"), and my textures are 2048x2048

Share this post


Link to post
Share on other sites

My guess is ground texture scale is probably related to the uvTransform class in its RVMAT, though I've never messed with it on purpose so I can't say for sure.

class uvTransform
{
  aside[] = {10,0,0};
  up[]    = {0,10,0};
  dir[]   = {0,0,10};
  pos[]   = {0,0,0};
 };

While we don't get to see the RVMATs for BIS' own island textures, these values seem to be what most custom islands use, and since the BI tools usually work in meters I would hazard a guess it makes the in-game texture size 10x10m. Try messing around with the numbers and reloading Buldozer and see what it gets you. Note that you need to change the values for both stages in the RVMAT, unless you want them to be different sizes on purpose.

Edited by cctoide

Share this post


Link to post
Share on other sites
My guess is ground texture scale is probably related to the uvTransform class in its RVMAT, though I've never messed with it on purpose so I can't say for sure.

class uvTransform
{
  aside[] = {10,0,0};
  up[]    = {0,10,0};
  dir[]   = {0,0,10};
  pos[]   = {0,0,0};
 };

While we don't get to see the RVMATs for BIS' own island textures, these values seem to be what most custom islands use, and since the BI tools usually work in meters I would hazard a guess it makes the in-game texture size 10x10m. Try messing around with the numbers and reloading Buldozer and see what it gets you. Note that you need to change the values for both stages in the RVMAT, unless you want them to be different sizes on purpose.

Ya, that is what my textures are set to by default. I haven't played with them yet but rather than 10x10m they look more like 1x1m!!!!!! :(

---------- Post added at 10:11 PM ---------- Previous post was at 09:16 PM ----------

tried changing the numbers in the rvmat from "10" to "1", just as an experiment. Deleted the contents of my "Layers" folder, fired up V3, reimported the sat and mask lco.pngs, let it rebuild, fired up buldozer, no visual difference at all, for better or worse!

Binarizing it right now and will try to get a screenshot in game.

Share this post


Link to post
Share on other sites

clicky things:

th_ss91.jpg

th_ss78.jpg

th_ss73.jpg

th_ss93.jpg

th_ss100.jpg

My rvmat for that rock stuff (note: changed the "1"s used in those screens back to "10")

ambient[]={0.89999998,0.89999998,0.89999998,1};
diffuse[]={0.89999998,0.89999998,0.89999998,1};
forcedDiffuse[]={0.02,0.02,0.02,1};
emmisive[]={0,0,0,0};
specular[]={0,0,0,0};
specularPower=1;
PixelShaderID="NormalMapDiffuse";
VertexShaderID="NormalMapDiffuseAlpha";
class Stage1
{
texture="OKTY\del_fuego\Data\okty_bas_detail_nohq.paa";
uvSource="tex";
class uvTransform
{
	aside[]={10,0,0};
	up[]={0,10,0};
	dir[]={0,0,10};
	pos[]={0,0,0};
};
};
class Stage2
{
texture="OKTY\del_fuego\Data\okty_bas_detail_co.paa";
uvSource="tex";
class uvTransform
{
	aside[]={10,0,0};
	up[]={0,10,0};
	dir[]={0,0,10};
	pos[]={0,0,0};
};
};

Edited by Oktyabr

Share this post


Link to post
Share on other sites

That looks about the same as Utes/Chernarurs/Sahrani... about 4m x 4m???... doesn't look too bad actually... a few rocks might help to break it up a but... I've noticed broad sweeps of rock texture looking crap on my own project actually... it's tricky to get textures that don't cause an obvious pattern - despite being "seamless"... some of the BIS textures are like that too - ok in small areas...

This bit in the Wiki has this to say... (using Sahrani Lite as an example)...

Textures

Each terrain type is represented at close distance by a colour only (CO) texture and a normal map (NO*). On SaraLite, each 1024x1024 pixel detail covers about 4m. Each pixel of the layer mask covers about 2m.

B

Edited by Bushlurker

Share this post


Link to post
Share on other sites

So what factors actually control how much a terrain tiles or rather the size of the tiles? I'd be surprised if there was no way to decrease the effect.

As I posted earlier that island is a 1024x1024 HF @ 5m with 10240x10240 sat and mask images so I figure that each pixel of the mask must cover 2m... but if those were in fact in direct proportion like that it would seem to make more sense to use a lower resolution mask so each pixel covers a larger distance (in my case a 1024 mask would be 5m per pixel) or a smaller HF with a higher scale to make up the difference?

Especially in the case of the mask image, where variation is more or less quite limited it seems like there should be a way to easy stretch a texture to cover more area.

Still hoping someone will pop out of the woodwork with a method(s) that will tile terrain textures larger?

Share this post


Link to post
Share on other sites

Ok, I think I actually found the answer myself. The amount a surface texture will tile is directly related to what you set your "Base Layer" ->edit to. I know the tutorials say to use 40x40 but they also work with a 10m cell size too. In the case of my example island I used a 1024x1024 terrain with 10240x10240 mask and sat lco's set to 5m/px, not 10m, (giving me a total island size of 5120x5120).

By doing this I removed "40x40" as a "valid" option when editing the "Base Layer" setting so I've been using 20x20, the largest it would let me use. As an experiment I compiled my island with this set to 5x5, the smallest valid value, and my surface textures tiled MUCH worse than before... in other words, they were much, much smaller tiles and repeated much more often. This also cut my FPS in game by about HALF! So as a rule of thumb, if you are concerned about FPS use the highest setting in "Base Layer" -> Edit that it will allow (it will show either "valid" or "invalid").

I never tried it with an "invalid" setting... I only presume that this would cause some error.

I also wonder why exactly it prevented 40x40 from being used? If I had used the same size sat and mask (10240) and set my cell size at 10m instead of 5 I should have been able to use 40x40 with less tiling but my island would have been 4x larger than I wanted it to be. If I would have used a 512x512 HF and (10x that) 5120x5120 sat and mask, with a 10m cell size, it should have let me use 40x40... my textures would not have tiled so badly but I would have also lost terrain resolution. ~shrug~

Anyone have any tips on how to get the best of both worlds?

Since I already have a 1024x1024 HF and a sat and mask 10x that size I think I'll rerun it with a cell size of 10m instead of 5 and see what happens... ;)

Edited by Oktyabr

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×