Page 1 of 1

skinning shift problem

Posted: Fri Sep 14, 2007 7:39 am
by L0d3x
Howdie y'all!

I skinned the grass of coag to another surface type.
It all works well but sometimes when I'm in a game the new surface shifts back to the old coag grass...

Anyone know why this is hapenning and how I can fix this?

Posted: Fri Sep 14, 2007 7:40 am
by neodos
hi, when you save in DDS format check "generate Mipmaps"

Posted: Fri Sep 14, 2007 7:51 am
by L0d3x
Yes I had saved it like that the first time allready.
I am saving with 1 alpha channel, should I try with no alpha channel or is this irrelevant?

Posted: Fri Sep 14, 2007 7:55 am
by Prey
If that^^ doesn't work, then it is probably because the image has more than one level of detail. There is nothing out at the moment though that will actually fix the other detail levels, to my knowledge, so there's not a lot that can be done there... :?

Your only solution is to use I_F's 'Machinima Companion' tool, although technically it's not really a solution at all...

Posted: Fri Sep 14, 2007 8:08 am
by L0d3x
Okay I'll try using that companion tool, but I do have a question.
I've seen alot of coag snow mods, and I'm assuming they replaced the the grass with the snow. So my question is why don't those maps have any weird skin switches?

PS: I'll edit this once I tried the companion tool.

Posted: Fri Sep 14, 2007 8:13 am
by neodos
Maybe because the sbsp shader use more than one bitmap, and there's a secondary bitmap displayed when you are too far, maybe.

But the levels of details for bitmaps the the mipmap ;)

Posted: Fri Sep 14, 2007 8:19 am
by L0d3x
Forget about the edit, this is more convenient.
Using that companion tool did in fact solve my problem hurrah!

So now I know it was a LOD issue, I am wondering, instead of nulling all the bitmap LODs with that tool, is there a way I can only null the grass LOD?
And yes I am rather new at skinning...

Thanks for all your help so far!

Posted: Fri Sep 14, 2007 8:23 am
by Prey
neodos wrote:But the levels of details for bitmaps are the mipmap ;)
A mipmap can be referred to as a detail level, although in the case of Halo2 there's no point in doing that as it just confuses things, seeing as the game actually has pointers to different bitmaps for different LODs.

Code: Select all

> Bitm Tag
	> Submap chunks
		> Up to 6 LOD offset and sizes
			> # of mipmaps
L0d3x wrote:Forget about the edit, this is more convenient.
Using that companion tool did in fact solve my problem hurrah!

So now I know it was a LOD issue, I am wondering, instead of nulling all the bitmap LODs with that tool, is there a way I can only null the grass LOD?
And yes I am rather new at skinning...

Thanks for all your help so far!
Yes there is a way. Go look at the grass' bitm meta in an editor, and you should see some LOD offsets and sizes. Leave the first one, but for the rest (there should be another 5) put -1 for the offset, and 0 for the size.

Posted: Fri Sep 14, 2007 8:29 am
by CaptainPoopface
Prey wrote:Your only solution is to use I_F's 'Machinima Companion' tool, although technically it's not really a solution at all...
That may not be the case. I think you can eliminate the LODs for individual bitmaps in their [bitm] tag. This picture was originally posted by JacksonCougAr in another thread, and I've used it to kill that unwanted transition effect.

Image

What makes the Machinima Companion unattractive is that it removes the LODs for all bitmaps, so your Xbox renders every bitmap in its highest detail. It can cause freezing.

I am not clear on the distinction between LOD and mip maps in the context of bitmaps and would love an explanation. There are separate fields for them in Entity. As the picture above shows, there are three LODs, and 8 mip maps for that particular bitmap. :?: From what I've read, mip maps are substituted sequentially every time the size of the rendered image decreases by a factor of 2, until some atomic size is reached. The LOD sizes in this example are not related by multiples of 2.

Posted: Fri Sep 14, 2007 8:42 am
by L0d3x
Okay I did what prey just suggested and I am very glad to announce it works like a charm now! Oh I only did see 3 LOD's and applied it to them.

I did not have to edit any Mipmap stuff in entity!

Cheers and thanks alot guys!

Posted: Fri Sep 14, 2007 8:53 am
by Prey
CaptainPoopface wrote:That may not be the case. I think you can eliminate the LODs for individual bitmaps in their [bitm] tag. This picture was originally posted by JacksonCougAr in another thread, and I've used it to kill that unwanted transition effect.

[...]
L0d3x wrote:Using that companion tool did in fact solve my problem hurrah!
Thus, It was because the other detail levels are not being replaced. You should not not have to alter the mipmap count as that is replaced.

Also your plugin is wrong, as it is not displaying all detail offsets and sizes, here:

Code: Select all

    <int name="LOD1 Offset" offset="28" visible="True" />
    <int name="LOD2 Offset" offset="32" visible="True" />
    <int name="LOD3 Offset" offset="36" visible="True" />
    <int name="LOD4 Offset" offset="40" visible="True" />
    <int name="LOD5 Offset" offset="44" visible="True" />
    <int name="LOD6 Offset" offset="48" visible="True" />
    <int name="LOD1 Size" offset="52" visible="True" />
    <int name="LOD2 Size" offset="56" visible="True" />
    <int name="LOD3 Size" offset="60" visible="True" />
    <int name="LOD4 Size" offset="64" visible="True" />
    <int name="LOD5 Size" offset="68" visible="True" />
    <int name="LOD6 Size" offset="72" visible="True" />
CaptainPoopface wrote:What makes the Machinima Companion unattractive is that it removes the LODs for all bitmaps, so your Xbox renders every bitmap in its highest detail. It can cause freezing.
It doesn't actually remove the LODs, it just gives all the LOD pointers a value of -1.
CaptainPoopface wrote:I am not clear on the distinction between LOD and mip maps in the context of bitmaps and would love an explanation. There are separate fields for them in Entity. As the picture above shows, there are three LODs, and 8 mip maps for that particular bitmap. :?: From what I've read, mip maps are substituted sequentially every time the size of the rendered image decreases by a factor of 2, until some atomic size is reached. The LOD sizes in this example are not related by multiples of 2.
The additional LOD's are actually scaled by a factor of 2 relevant to the LOD before it, but this won't necessarily be recognised in the reported size as the mipmap count varies for each.

The purpose of these additional LODs, is memory. Once your far enough away from a texture, the next LOD down will be loaded into memory and used instead; cutting down the amount of mem. in use by the texture by approx. 50%

Posted: Fri Sep 14, 2007 9:05 am
by L0d3x
OK I fixed my plugin, thanks for that heads up!
I noticed all the other LOD offsets were -1 already and the sizes were 0 already. That's probably why it worked.

Oh and much thanks to you! I really learnt alot in a short time thanks to you guys!