Using OGRE material or two textures?

Forum for general chit-chat or off-topic discussion.

Moderators: CEGUI MVP, CEGUI Team

User avatar
pjcast
Quite a regular
Quite a regular
Posts: 47
Joined: Wed Jan 12, 2005 12:06

Using OGRE material or two textures?

Postby pjcast » Sun Dec 19, 2004 03:43

I know how to put an OGRE texture to an Image and have it rendered in CEGUI windows. However, the functionality I am looking for now is using more complex texture combinations like you might find in a material script.

What I have is a OGRE material with two texture layers. The first texture layer is a video being decoded to an alpha channel of a texture, and the second texture layer is a different video being decoded to RGB channels. And the two textures are blended together. This allows one to use another video as a dynamic alpha mask to alpha out parts of the other movie.

Now, this works well on OGRE overlays and meshes. Though, I would like to apply it to an Imageset. Any suggestions on how to combine two textures into a Window/imageset/staticimage, or how to get an OGRE material working on an Imageset? :?

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Using OGRE material or two textures?

Postby CrazyEddie » Sun Dec 19, 2004 10:45

This is currently beyond what is possible.

However, I believe it will be fairly simple to add full Ogre::Material support to the Ogre gui renderer module. The theory being that it's no more difficult to pass in a Material than what it is to pass in a Texture; I'll just need to add a tiny bit of structure to support this.

Due to the fact that the work I've done over the last three days has gone so well, and I'm therefore further ahead than I thought I would be, I may try to get this functionality in there for you either late this afternoon or sometime tomorrow.

CE.

User avatar
pjcast
Quite a regular
Quite a regular
Posts: 47
Joined: Wed Jan 12, 2005 12:06

Using OGRE material or two textures?

Postby pjcast » Sun Dec 19, 2004 17:59

Wow, that would be wonderful :D But don't hurry on my account.

Did I ever tell you that your the man CE? Well, your the man.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Using OGRE material or two textures?

Postby CrazyEddie » Mon Dec 20, 2004 12:00

This will take a bit longer than I first anticipated. I have the required surrounding structure in place to choose between a texture or material, but it currently appears that actually using a material at the (low) level that CEGUI operates turns out to be just a little more complicated than I had imagined :shock:

CE.

User avatar
pjcast
Quite a regular
Quite a regular
Posts: 47
Joined: Wed Jan 12, 2005 12:06

Using OGRE material or two textures?

Postby pjcast » Mon Dec 20, 2004 19:15

No worries, if it is not feasible to use materials at the CEGUI level, that is ok. I will just see about using an Overlay for complex material, and just play normal movies on CEGUI. :wink:

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Using OGRE material or two textures?

Postby CrazyEddie » Mon Dec 20, 2004 22:22

Cool :)

I'd definately like to get this support in there at some stage, though I think it's a much bigger job than I originally thought; I'll have to put in on the back-burner for a while ;)

CE.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Using OGRE material or two textures?

Postby CrazyEddie » Tue Jan 11, 2005 21:38

Hi,
I am getting an assertion failed window as soon as I quit Ogre (dbgheap.c, _CrtIsValidHeapPointer(pUserData)).

Hi :)

I'll need to get a call-stack / backtrace to determine where this is coming from. Also which compiler is this with, and if you're on VC++, are you using the VC++ native STL or STLport?

I'm currently unable to reproduce this using things as they are out of the box on VC7.1 with native STL which is my main test platform on Win32. The above information may help track down the cause in your case.

I want to make a window with small windows inside, which display a texture that has been loaded from the filesystem. I haven't figured out (yet) how to do it. I noticed that it is possible to dynamically add new images to an imageset, but I don't no if that's the direction to go. Any suggestions to help me on my way?

If the textures are existing image files, then yes you're on the right track. What you need to do is create a CEGUI::Texture from the image (via the renderer module), then create an Imageset using the newly created CEGUI::Texture, and finally define an Image on the Imageset that describes the area you wish to display (all of that can be done in about 3 lines of code, and sounds worse than it is ;) ). You can then use the Imageset/Image combination on a StaticImage widget to display the texture within a window. :)

(@CE, nice job btw. It is very flexible).

Thanks, glad you like things so far :)

CE.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Using OGRE material or two textures?

Postby CrazyEddie » Wed Jan 12, 2005 09:20

Okay, in the debugger there is a window labelled 'call stack'; this enables us to see all the functions called that led to the assert (on other systems, like Linux, this is known as a backtrace).

The assert can be caused by the Ogre memory manager, although that issue has been fixed for a little while; so this should not be the problem. Another possibility is that there may be a missing _STLP_DEBUG define on the projects (check this in the settings for the project, under C++ -> preprocessor).

If you still have no luck, I'll see if I can reproduce it here; although it may not be until the weekend.

CE.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Using OGRE material or two textures?

Postby CrazyEddie » Fri Jan 14, 2005 11:18

This is the same error as everyone else was getting a while back. This is supposed to be fixed, and I can attest to that on VC7.1. I'll need to double-check this on VC6 over the weekend.

Thanks for your patience ;)

CE.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: Using OGRE material or two textures?

Postby CrazyEddie » Sun Jan 16, 2005 10:15

Okay I have tested CVS-HEAD with VC6 using demo 7 and there are no problems with the system itself that cause that assert (I do currently have a couple of minor compilation problems which I'll fix in a minute).

At first I thought there was an issue, though this turned out to be me using the wrong copy of the Xerces DLL, so you may wat to check that the libs and DLLs that are being picked up are the right versions; it's especially easy to get a mis-match if you've started off with one of the pre-compiled binary demos as these contain DLLs intended for VC7.1, so you need to remember to replace these with 'your' versions unless you're using the exact same compiler and config.

CE.


Return to “Offtopic Discussion”

Who is online

Users browsing this forum: No registered users and 6 guests