Strange DTS transparency issues (Geforce 440 Go)
by Fenrir Wolf · in Torque Game Engine · 05/25/2004 (10:39 am) · 16 replies
Hi folks, me again. I'm having some strange issues with Torque on a certain system that I use for testing, and I'm wondering if anyone might have an idea as to how to fix it.
Transparency with DTS objects seems to be borked. For example, the textures on trees are very washed out and translucent -- almost invisible. It's like the OpenGL blending modes are screwed up.
Example #1: How Torque looks on a GeForce 440 Go system
Example #2: Here's how its supposed to look (GeForce FX 5200)
Yeah, I know you're thinking -- 440 Go? That's a laptop chipset! Yes it is, but it's the closest thing I've got a cheap, low-end Nvidia chipset. (I've tested this on a machine that runs a Geforce FX 5200 and a Geforce 4 Ti 4600, and both look just fine.) The driver is an ancient version: 28.46. Ouch, and there's nothing I can do about it, since Nvidia doesn't support the Go chipset in their drivers anymore.
I poked around in prefs.cs but didn't see anything that would pertain to my issue. Maybe this is a bug in the older version of the chipset or drivers?
(Here is the console.log. If you look at it, you'll notice I try switching modes around to see if it would help.)
Also, if you want to try this out on your own, you can download my little test application here.)
Transparency with DTS objects seems to be borked. For example, the textures on trees are very washed out and translucent -- almost invisible. It's like the OpenGL blending modes are screwed up.
Example #1: How Torque looks on a GeForce 440 Go system
Example #2: Here's how its supposed to look (GeForce FX 5200)
Yeah, I know you're thinking -- 440 Go? That's a laptop chipset! Yes it is, but it's the closest thing I've got a cheap, low-end Nvidia chipset. (I've tested this on a machine that runs a Geforce FX 5200 and a Geforce 4 Ti 4600, and both look just fine.) The driver is an ancient version: 28.46. Ouch, and there's nothing I can do about it, since Nvidia doesn't support the Go chipset in their drivers anymore.
I poked around in prefs.cs but didn't see anything that would pertain to my issue. Maybe this is a bug in the older version of the chipset or drivers?
(Here is the console.log. If you look at it, you'll notice I try switching modes around to see if it would help.)
Also, if you want to try this out on your own, you can download my little test application here.)
#2
05/25/2004 (11:12 am)
...
#3
The trees are Bravetree's Tree Pack. They're nice trees, but they do indeed have some LOD issues. Since I got the trees in .MAX format, I can't easily open them up with my editor of choice (Lightwave) and fix that. I've requested .3DS versions of the files, but so far haven't heard back from BT.
Glad you like the demo! I'm slowly trying to replace all of the included Torque graphics and such with my own. (Not that I think Torque's included stuff is bad, but I'd feel more proud of my game if it was mostly my own stuff...)
05/25/2004 (12:24 pm)
Hmmmmmmm... Well, thank you for testing this Joseph. I'll just chalk it up to ancient drivers and not spend any more time on trying to diagnose it.The trees are Bravetree's Tree Pack. They're nice trees, but they do indeed have some LOD issues. Since I got the trees in .MAX format, I can't easily open them up with my editor of choice (Lightwave) and fix that. I've requested .3DS versions of the files, but so far haven't heard back from BT.
Glad you like the demo! I'm slowly trying to replace all of the included Torque graphics and such with my own. (Not that I think Torque's included stuff is bad, but I'd feel more proud of my game if it was mostly my own stuff...)
#4
05/25/2004 (12:49 pm)
@David - where did you send the request for 3ds versoins? I wonder if it got eaten up by our spam filter. Regardless, you can send an email directly to joe at bravetree dot com and he'll get you the trees in 3ds format (assuming you're really who you are...jk :).
#5
05/25/2004 (12:57 pm)
BTW, hard to really make trees that don't pop. We experienced this problem on Field & Stream's Trophy Hunting 4 & 5 (done with Tribes 2 engine). What we did was use a mesh close up and a billboard in the distance, and we alpha blended in between. We were able to get fast frame rates on old hardware (TNT2's and the ilk) with no popping as you walked through forests of hundreds of trees. Unfortunately, our forest code did not get covered in the deal that sent the Tribes 2 engine to GarageGames. But some of the remnants of it can be found in the code (the alpha transition code is still in TS and the billboard as last detail can be found in tsLastDetail.cc). One could probably still piece together a forest renderer using this same technique.
#6
As for LOD -- Hey, that sounds cool. I'll definately start to dig in those hinted areas. I plan on having very large forests in my next game and anything to help ease the fillrate burden is good. (My only real issue with the BT trees is one of them, not sure which one, has a very obvious box-like trunk for it's last LOD that I'd like to try to fix.)
On another note, I managed to shave off nearly 4 megs from that demo just by converting all non-alpha textures to JPG. Doesn't looke as good visually, but it's nice to know I can squeeze some more megs out of a small distribution...
05/25/2004 (1:09 pm)
@Clark: Thanks... Heck, maybe MY spam filter ate it, too. I get so much spam these days.. *sigh* Okay, will sending my order confirmation # from the GG website be enough to prove I yam who I yam? :)As for LOD -- Hey, that sounds cool. I'll definately start to dig in those hinted areas. I plan on having very large forests in my next game and anything to help ease the fillrate burden is good. (My only real issue with the BT trees is one of them, not sure which one, has a very obvious box-like trunk for it's last LOD that I'd like to try to fix.)
On another note, I managed to shave off nearly 4 megs from that demo just by converting all non-alpha textures to JPG. Doesn't looke as good visually, but it's nice to know I can squeeze some more megs out of a small distribution...
#7
I sent in a patch a while ago to fix the billboard code.
I also sent in a further patch that fixed the texturing of the shapes (when the shapshots were being taken), but i don't know if that was ever commited.
If anyone is interested, the blender exporter supports the export of these billboards.
EDIT: the max exporter also supports these; Check in the exporter source for "BB::" references.
05/25/2004 (1:20 pm)
@Clark:I sent in a patch a while ago to fix the billboard code.
I also sent in a further patch that fixed the texturing of the shapes (when the shapshots were being taken), but i don't know if that was ever commited.
If anyone is interested, the blender exporter supports the export of these billboards.
EDIT: the max exporter also supports these; Check in the exporter source for "BB::" references.
#8
I got your email and responded to it last week. I am assuming a spam eater at it. Email me directly at joe@bravetree.com
05/25/2004 (2:58 pm)
David, I got your email and responded to it last week. I am assuming a spam eater at it. Email me directly at joe@bravetree.com
#9
I'll send you another email!
05/25/2004 (3:34 pm)
@Joe: Sorry about that. Didn't mean to sound like you guys never read your email. I kind of suspected my over-zealous spam filter got it... Damn spam -- my mailbox is pretty much unusable because of it. :/I'll send you another email!
#10
@David: I have the same chipset. I will give your test app a go and post results here.
-s
05/25/2004 (3:53 pm)
@Clark: ahhh, cool, didnt know there was a last LOD as a billboard and the alpha blending?!! tres cool...@David: I have the same chipset. I will give your test app a go and post results here.
-s
#11
@Stephen: Thanks, the more testers the merrier! :)
05/26/2004 (9:45 am)
@Clark: I found the code you were talking about. There seems to be code for both the TSLastDetail and also for alpha transitions. But I'm not sure if any of it is enabled, or requires a property set to enable. Still looking.@Stephen: Thanks, the more testers the merrier! :)
#12
Look at my plan here
You require a specially crafted detail level to be inserted into your shape; Its subshape being -1, and its objectDetail value to be a packed set of parameters (see encodeBillboard in the blender exporter source).
As mentioned in my plan, texturing does not work properly in stock torque; Email me for a patch.
05/26/2004 (9:54 am)
@David,Look at my plan here
You require a specially crafted detail level to be inserted into your shape; Its subshape being -1, and its objectDetail value to be a packed set of parameters (see encodeBillboard in the blender exporter source).
As mentioned in my plan, texturing does not work properly in stock torque; Email me for a patch.
#13
What about alpha transistions between LOD levels? Do you know how that works? Items still "pop" on my build of Torque. (Based upon HEAD, about two weeks old.)
05/26/2004 (10:03 am)
Oh, hey, James, thanks. I was actually taking some tree models last night and making billboards for their lowest detail level -- But I see now that Torque can do all of this for me, automatically.What about alpha transistions between LOD levels? Do you know how that works? Items still "pop" on my build of Torque. (Based upon HEAD, about two weeks old.)
#14
Alpha transitions occur in between regular detail levels and billboard detail levels; Going to the billboard, the billboard is gradually faded in, untill the billboard detail is reached - in which case, the shape dissapears.
I don't think this occurs between regular detail levels though.
05/26/2004 (12:56 pm)
David,Alpha transitions occur in between regular detail levels and billboard detail levels; Going to the billboard, the billboard is gradually faded in, untill the billboard detail is reached - in which case, the shape dissapears.
I don't think this occurs between regular detail levels though.
#15
Of course, the jumpiness that the detail selection system seems to exhibit might ruin the effect. I'll test it more later once I get home.
05/26/2004 (1:19 pm)
That's true. Normally, yes, that's how it behaves. But I've been source digging and I see it's possible to enable it for regular detail levels by just changing the smAlphaInDefault/smAlphaOutDefault settings in the TSShape::init(). Whether or not it looks OK I'm not sure. This, of course, puts extra load on the engine when rendering normal meshes, but it might be a neat toggle for those with high-end graphics cards. ("Enable smooth detail switching.")Of course, the jumpiness that the detail selection system seems to exhibit might ruin the effect. I'll test it more later once I get home.
Torque Owner Redacted