Update bugs?

Blitz3D Forums/Blitz3D Programming/Update bugs?

Pongo(Posted 2004) [#1]
I saw this when the update came out:


Only problem is that multitexturing and alpha/masked textures no longer work :(



but have not seen anything mentioned since. Is this a problem still, or has it been fixed? I don't want to grab the update until I know this has been resolved.


Gabriel(Posted 2004) [#2]
There's a long thread about this in the B3d Bug Reports forum. It's a feature/bug issue, and I think it's been around since before 1.86. From what I can see, neither have been broken, they just behave differenrly now. Check the thread and see if it's something that would bother you.

http://www.blitzbasic.com/Community/posts.php?topic=28008


jhocking(Posted 2004) [#3]
The problem isn't with either alone (multitexturing and alpha transparency still work fine separately) but rather when you attempt to combine them. And even there it works fine if you are layering an alpha texture onto a normal color texture. The only problem is if you are layering multiply or add blended textures over an alpha texture, which is just as well because even before the latest update that only worked on certain hardware.

I was pretty scared when I saw that same post so I tested those features myself after updating. Fredborg was being unclear in his language; like I said, those features work fine individually but things get weird when you attempt to combine them.


Paolo(Posted 2004) [#4]
I'm afraid that "new limitation - bug fixed" will make me fix to v1.85.

It is a completely unuseful "fix".

So now in v1.86 you CAN NOT have an Alpha lightmapped element anymore... it is incredible... :(

Paolo.


Gabriel(Posted 2004) [#5]
So now in v1.86 you CAN NOT have an Alpha lightmapped element anymore... it is incredible... :(


Could you do that in 1.85? I've been trying to do precisely that and the alpha remains 1.0 Which is why I figured it was pre-1.85 that this "broke"/"was fixed".


jhocking(Posted 2004) [#6]
Like I said, it only ever worked on certain hardware. Even if it works on your computer it is recommended that you don't because the effect is not widely compatible.

The issue is that different videocards support different amounts of multitexturing built-in. Blitz can emulate more levels of multitexturing, but doing so precludes mixing multiply blending and alpha transparency. Many people are pushing for him to provide a command to determine the multitexturing capabilities of the users card and turn the effect on/off as appropriate, but in the meantime you're best off simply not doing multiply blending on top of alpa textures.


fredborg(Posted 2004) [#7]
I think it was meant to be like it is now, due to some issues with older graphics cards. But it was incredibly useful to have alpha+multitexturing working, for a lot of different things.


jhocking(Posted 2004) [#8]
Come to think of it, I already have a setting in my games' settings menu so that players can turn multitexturing on/off (for speed optimizing.) This would just be another thing players could turn off if their hardware can't handle it.


Gabriel(Posted 2004) [#9]
Joe : Yeah, but the videocard I'm using has 8 render pipelines, so it should be working, and indeed I've had it working in the past. So I was just curious whether it was 1.85 or 1.86 that changed it. If it was 1.86, it's just a bug in my code.

Fredborg : yes it is incredibly useful to be able to multitexture an alpha'ed texture. There should at least be a way to read the card's ability and use it if the card supports it.

I was planning on using the effect to have the floor of the bowling alleys in ABB lightmapped and also reflections, but cube map reflections are poor, they really only seem to work if the geometry is just so, and my bowling alley evidently isn't.

Seems as though I have to choose between reflections and lightmaps, or pray for a 1.87 that gives us options.


Pongo(Posted 2004) [#10]
Ahh,... thanks for the responses,... I'll check out the bug thread and go grab the update.


jhocking(Posted 2004) [#11]
Why are you using alpha transparency on the floor of your bowling alley? You could isolate the alpha tranparent parts to a separate surface and only apply the lighmap to the solid parts. Isolating the alpha parts is usually a good idea anyway because of draw order issues.


Gabriel(Posted 2004) [#12]
In order to make the entire floor shiny. It's cliche and not an effect I particularly like, but I know I'll be asked 1,000 times to add it if I haven't already, so I figured the easiest way to make the entire floor shiny is to duplicate key geometry, flip it around the y axis and give the floor 0.75 or 0.8 opacity.


jhocking(Posted 2004) [#13]
Oh yeah, I didn't think of that. Hm, one trick to try is using multiply blend mode for the floor instead of alpha transparency. I'm not sure what effect that'll have, layering a multiply blended texture over a multiply blended base texture, but it's worth a shot.

Another option would be the technique from the "real mirrors" demo. Can't find the link (sorry) but the technique was pretty simple. You render the scene with a camera placed just below the floor facing up (the the floor is made of one-sided polygons it won't interfere with the rendering,) copy this to the texture on the floor, render the scene again from the player's view, and then flip. This is a lot like using cube mapping for reflections, except since the reflective surface is flat and unchanging you can just use regular texture mapping instead of cube mapping.


Sledge(Posted 2004) [#14]

In order to make the entire floor shiny. It's cliche and not an effect I particularly like, but I know I'll be asked 1,000 times to add it if I haven't already, so I figured the easiest way to make the entire floor shiny is to duplicate key geometry, flip it around the y axis and give the floor 0.75 or 0.8 opacity.



This is the EXACT way I got a shiny floor up and running for an FPS tech demo and I had the EXACT same problem... you can't lightmap the floor. I considered baking the lightmap on to the texture (acceptable for a dark, brooding game) but unless you use some sort of tiled system that's going to leave you with a very low-res texture stretched over the one surface that, because it's a bowling game, people are going to spend a lot of time staring at.

The only thing I can think of, off the top of my head, is to carry the lightmap on a separate version of the geometry which is overlayed on top of the non-lightmapped "proper" geometry. The lightmap geometry has a floor of its own so will lay a shdow over the alpha'd floor that you add; the "proper" geometry has no floor of its own, allowing players so see through to the reversed "reflection"; the reflection geometry is rendered with a lightmap but no floor of its own (it would be superfluous). That's THREE versions of essentially the same geometry, but if your scene is low poly enough it *might* still be preferable to rendering another scene and applying it as a texture.


Gabriel(Posted 2004) [#15]
Thanks guys, those are both good suggestions. I'll explore a little and see what I can come up with.


Skitchy(Posted 2004) [#16]
Try loading the lightmap using LoadTexture() and re-applying it to the model. There has always been a problem with alpha+mulltiply with regard to the native .b3d file loader. I found it when I was writing the exporters for LightBulb, but doing what I described used to fix it (for me anyway).


Gabriel(Posted 2004) [#17]
Try loading the lightmap using LoadTexture() and re-applying it to the model. There has always been a problem with alpha+mulltiply with regard to the native .b3d file loader. I found it when I was writing the exporters for LightBulb, but doing what I described used to fix it (for me anyway).


Yep, I figured that was probably the reason it wasn't working in 1.85, but I'll have to update to 1.86 in order to get blended vertex weights going, so I'm going to have to find something that will work with Mark's new way of handling this.