Hi!
First of all ive used CEGUI once briefly in a former project, but I don't have much indept knowledge about the limitations of CEGUI.
My new project is going to use a gui api on screen inside the 3d world. There is going to be several screens running at the same time.
What I was thinking about was if I could change the rendering target of CEGUI to a texture and then place it on the quad in 3d space. Then I would have to translate the 3d picking into the texture space of the quad. And connect all input through that.
My question is, would this be possible? First of all changing rendering surface to a texture, and then have several layouts and instances of the gui active.
Would I be better of writing my own stuff? Or maybe even change some in CEGUI's code?
I tried to search for something similiar, but couldn't find anything. But then again im a crappy searcher.
Using CEGUI as GUI in 3D [Solved, with images]
Moderators: CEGUI MVP, CEGUI Team
Using CEGUI as GUI in 3D [Solved, with images]
Last edited by tx on Thu Jan 18, 2007 16:10, edited 1 time in total.
Are you saying that you want to render the GUI in 3D, such as on one face of a cube that can rotate?
The "traditional" approach to a GUI is to draw it on top of the 3D world, always facing the camera.
>> There is going to be several screens running at the same time
Do you mean split screens? You can have multiple dialogs (Cegui::FrameWindow) active at once. What you would need to do is prevent each from leaving its region. One easy solution would be to create a fullscreen Cegui::Sheet having one Cegui::DefaultWindow per split.
For example, a 4x4 grid layout:
You would then add dialogs to one of the cells, such as "Grid_4x4/Cell_2x2" for the cell in the lower right. This dialog would be clipped by its parent, preventing it from appearing in a different cell.
Is this making sense or am I off the mark?
The "traditional" approach to a GUI is to draw it on top of the 3D world, always facing the camera.
>> There is going to be several screens running at the same time
Do you mean split screens? You can have multiple dialogs (Cegui::FrameWindow) active at once. What you would need to do is prevent each from leaving its region. One easy solution would be to create a fullscreen Cegui::Sheet having one Cegui::DefaultWindow per split.
For example, a 4x4 grid layout:
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<GUILayout >
<Window Type="DefaultWindow" Name="Grid_4x4" >
<Property Name="InheritsAlpha" Value="False" />
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1,0},{1,0}}" />
<Window Type="DefaultWindow" Name="Grid_4x4/Cell_1x1" >
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{0.5,0},{0.5,0}}" />
</Window>
<Window Type="DefaultWindow" Name="Grid_4x4/Cell_1x2" >
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0.5,0},{0,0},{1,0},{0.5,0}}" />
</Window>
<Window Type="DefaultWindow" Name="Grid_4x4/Cell_2x1" >
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0,0},{0.5,0},{0.5,0},{1,0}}" />
</Window>
<Window Type="DefaultWindow" Name="Grid_4x4/Cell_2x2" >
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0.5,0},{0.5,0},{1,0},{1,0}}" />
</Window>
</Window>
</GUILayout>
You would then add dialogs to one of the cells, such as "Grid_4x4/Cell_2x2" for the cell in the lower right. This dialog would be clipped by its parent, preventing it from appearing in a different cell.
Is this making sense or am I off the mark?
I don't want to render it on top of everything else. I want to render it to a texture then apply it to a side of a box for example. I might be able to render it first then take the backbuffer and copy it to a texture then clear the backbuffer and render the world. But im not sure thats very effecient.
Progress, it's now possible to run multiple windows, each "screen" capturing a window and it's children.
But only one window can have input focus.
But as the left is parent to the right moving the smallest window on left will move the small window in the right.
Pressing right mouse button will swap input focus from left to right or the opposite.
But only one window can have input focus.
But as the left is parent to the right moving the smallest window on left will move the small window in the right.
Pressing right mouse button will swap input focus from left to right or the opposite.
Taharez wrote:Coolness Definatly a nice effect, I too think it's one for the wiki. Any chance for more details on the project you're using this for?
Well yeah, im going to use it for a game im making. The "game" is a spaceship exploring the internet. At the bridge of the spaceship there will be different terminals containing scripted programs. Looking alot like Star Trek.
At the end the user will be able to to develop their own programs, spaceships and game scripts..
There will be more information on www.txdev.net soon
Hard to describe this project in such few words..
-
- Just popping in
- Posts: 1
- Joined: Fri Mar 02, 2007 02:51
- Location: the matrix
Return to “Offtopic Discussion”
Who is online
Users browsing this forum: No registered users and 12 guests