Decals on an Intel 82855/82852

Problems building or running the engine, queries about how to use features etc.
Post Reply
Oogst
OGRE Expert User
OGRE Expert User
Posts: 1034
Joined: Mon Mar 29, 2004 8:49 pm
Location: the Netherlands
Contact:

Decals on an Intel 82855/82852

Post by Oogst » Sat May 27, 2006 10:08 am

For The Blob I have implemented decals. Currently they work on all cards I have seen them on, except for the Intel 82855/82852, which is an onboard laptop-thingy. On this card the decals flicker incredibly. Flickering cannot be caught on a screenshot, but this one at least shows how only part of the trace is visible:

Image

I am creating the decals by putting them on exactly the same position as the surface and then using the depth-function parameter in the material-pass like this:

Code: Select all

material paintTrace
{
	technique
	{
		pass
		{
			cull_hardware none
			depth_write off
			depth_bias 10
			scene_blend alpha_blend
			texture_unit
			{
				texture PaintTrace.tga
				filtering linear linear linear
			}
		}
	}
}
The owner of the laptop found a complete specification of his GPU here.

What am I doing that is not compatible with that Intel 82855/82852?

Thanks in advance!
Last edited by Oogst on Sat May 27, 2006 4:40 pm, edited 1 time in total.
0 x
blog.oogst3d.net: my dev blog and portfolio
Ronimo Games: my game dev company
Awesomenauts: platforming MOBA (PC/Mac/Linux/XBox360/PS3/PS4)
Swords & Soldiers: side-scrolling RTS (PS3/Wii/PC/Mac/Linux/iPhone/iPad/Android)
Proun: abstract racing game (PC)
Cello Fortress: mixing game and live cello performance

User avatar
Frenetic
Bugbear
Posts: 806
Joined: Fri Feb 03, 2006 7:08 am

Post by Frenetic » Sat May 27, 2006 11:05 am

It says somewhere on the Ogre site that "niche" chips like the Intel one you're talking about aren't directly supported, because chips like those have so many quirks/bugs/limitations that an inordinate amount of time would be spent trying to get the engine to work around them. When it comes to Intel chipsets and the like, it may be a case of What You See Is What You Get.

Anyways. At a glance, your problem could be that the the hardware in question either doesn't support z-bias, or its z-buffer doesn't have enough bit-depth to work properly in your case. I'm not sure what a solution would be, except maybe to try and work out a method where you can disable depth-testing for the decal materials.
0 x

genva
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 1603
Joined: Wed Oct 20, 2004 7:54 am
Location: Beijing, China

Post by genva » Sat May 27, 2006 4:48 pm

I might have some idea or might not.

What's render system that the program run on?
0 x

Oogst
OGRE Expert User
OGRE Expert User
Posts: 1034
Joined: Mon Mar 29, 2004 8:49 pm
Location: the Netherlands
Contact:

Post by Oogst » Sat May 27, 2006 4:58 pm

It runs in DX9-mode. Does that mean your idea is valid or broken?
0 x
blog.oogst3d.net: my dev blog and portfolio
Ronimo Games: my game dev company
Awesomenauts: platforming MOBA (PC/Mac/Linux/XBox360/PS3/PS4)
Swords & Soldiers: side-scrolling RTS (PS3/Wii/PC/Mac/Linux/iPhone/iPad/Android)
Proun: abstract racing game (PC)
Cello Fortress: mixing game and live cello performance

genva
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 1603
Joined: Wed Oct 20, 2004 7:54 am
Location: Beijing, China

Post by genva » Sat May 27, 2006 5:17 pm

Yes, the idea is valid :wink:. Can you try with OGL? If not, change the code in OgreD3D9RenderSystem.cpp about line 1951 from

Code: Select all

bias_float /= 250000.0f;
to

Code: Select all

bias_float /= N;
where use smaller value for N (e.g. 65536, 32768, ... down to 1, or negative number, and for this type card only). Hope this can help you, but without warranty.
0 x

Oogst
OGRE Expert User
OGRE Expert User
Posts: 1034
Joined: Mon Mar 29, 2004 8:49 pm
Location: the Netherlands
Contact:

Post by Oogst » Sat May 27, 2006 6:12 pm

Would that fix break on other cards? What is being changed there exactly? I want to have one build for all computers, so if this fix breaks for all cards except this one, it is not useable for me.
0 x
blog.oogst3d.net: my dev blog and portfolio
Ronimo Games: my game dev company
Awesomenauts: platforming MOBA (PC/Mac/Linux/XBox360/PS3/PS4)
Swords & Soldiers: side-scrolling RTS (PS3/Wii/PC/Mac/Linux/iPhone/iPad/Android)
Proun: abstract racing game (PC)
Cello Fortress: mixing game and live cello performance

genva
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 1603
Joined: Wed Oct 20, 2004 7:54 am
Location: Beijing, China

Post by genva » Sat May 27, 2006 6:24 pm

A value pick up careful might make all card works. Value between 4096..65536 are strong recommended. In fact, I have idea to pick up a more robust value here, but can't find all cards/drivers to test with :wink:.
0 x

Oogst
OGRE Expert User
OGRE Expert User
Posts: 1034
Joined: Mon Mar 29, 2004 8:49 pm
Location: the Netherlands
Contact:

Post by Oogst » Sat May 27, 2006 8:51 pm

Still, what exactly is that value? Is the bias-value in the material multiplied by this?
0 x
blog.oogst3d.net: my dev blog and portfolio
Ronimo Games: my game dev company
Awesomenauts: platforming MOBA (PC/Mac/Linux/XBox360/PS3/PS4)
Swords & Soldiers: side-scrolling RTS (PS3/Wii/PC/Mac/Linux/iPhone/iPad/Android)
Proun: abstract racing game (PC)
Cello Fortress: mixing game and live cello performance

Post Reply