rendering APIs

If you are a new Irrlicht Engine user, and have a newbie-question, this is the forum for you. You may also post general programming questions here.
Post Reply
BMF
Posts: 62
Joined: Mon Jul 16, 2007 11:10 am
Location: Spain
Contact:

rendering APIs

Post by BMF »

Hello people,

I'm fairly new to the Irrlicht engine, and wanted to hear more about the 6 rendering APIs Irrlicht supports.

I have some questions, too.

1. From my experience, software renderers run quite slowly, and the image gets.. weird. I didn't find a use for them, could you enlighten me with examples of situations where I could need these?

2. What's the use of the null device?

3. My application automatically closes when I choose a Direct3D renderer, and it happens the same to everyone I've sent it to. Do I have to include some DLL's in the package, or something? I don't know what I'm missing.

EDIT: Found this topic. Might just be what I need, but I've not tested it yet.

4. After all, I guess that for my game, I'll just have to decide if I use D3D or OpenGL. Is it wise to make the game do some test at startup to know which one will perform better? Is that even possible? (Preferably without the user noticing the test is taking place) If not, what do I do? I know that in some machines OpenGL will perform better, but in others, D3D will own. So, should I just choose one by default, and let user change... or what? The test at startup idea sounds good to me, but I'm not sure.
If it's a good idea, I found this topic. Is that a good solution?

Thanks in advance!
Last edited by BMF on Tue Jul 24, 2007 9:54 am, edited 1 time in total.
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

1. software renderers would be used when nothing better (like opengl or directx) is available, but they're rubbish basically. Though the burning one is quite good apparently.

2. the null device i've used to get the desktop resolution of the pc the program is running on, that's all really, don't think it has much of a use otherwise.

3. yes you need to include 2 directx .dlls, not sure where they come from though i'm afraid.

4. not sure if you could do a good test of which would work best on the system it's being run on so the best thing to do is let the user choose from an options menu so they can see which fits best. obviously not great for people who dont know the difference between them or what they even mean but it's the best way of handling it i think.

EDIT:
4. that topic you linked to looks like the best way of auto choosing i guess. It's something i thought of but wondered if it would work well, you could try it out and see how it performs for you and whether it creates a long waiting time for the user or anything.
Image Image Image
BMF
Posts: 62
Joined: Mon Jul 16, 2007 11:10 am
Location: Spain
Contact:

Post by BMF »

1. software renderers would be used when nothing better (like opengl or directx) is available, but they're rubbish basically. Though the burning one is quite good apparently.

2. the null device i've used to get the desktop resolution of the pc the program is running on, that's all really, don't think it has much of a use otherwise.
Thanks, that's what I thought. Not much use for me right now.
3. yes you need to include 2 directx .dlls, not sure where they come from though i'm afraid.
I see.. I'll look for them. If anyone knows which are the needed .dlls, info would be greatly appreciated! =)

EDIT: Found this topic. Might just be what I need, but I've not tested it yet.
4. not sure if you could do a good test of which would work best on the system it's being run on so the best thing to do is let the user choose from an options menu so they can see which fits best. obviously not great for people who dont know the difference between them or what they even mean but it's the best way of handling it i think.

4. that topic you linked to looks like the best way of auto choosing i guess. It's something i thought of but wondered if it would work well, you could try it out and see how it performs for you and whether it creates a long waiting time for the user or anything.
Yeh, I'll see how fast the test can be done, and how it affects the user, then decide what to do. I'm wishing the test takes place really fast and I can use it. =P

Also, letting the user decide which one to use, as you mentioned, is a bad way, I think. I just don't like the idea of people who don't know what renderers are needing to try them to get the best result.. so yeah, I'd rather use some kind of test, just the first time you run the app. Then store the result somewhere, and we're ready to go.
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

I think this download (http://www.gprogs.com/gg.Irrlicht/IrrDX_v1_1.zip) has the two dlls that i used with irrlicht for DX support. That's all you need is the two dlls and place them in the directory with the executable.
Image Image Image
sudi
Posts: 1686
Joined: Fri Aug 26, 2005 8:38 pm

Post by sudi »

well u don'T need any dlls......
just download the current dx sdk and link the libs into irrlicht and recompile. thats basicly it. then u don't need any dlls. when using visualstudio u don't have to do this because there dx is already compiled.
i actually don't know why this seams so hard. when u read the command line message of irrlicht saying directx is not compiled in this dll.....hmmm what should u do then.
We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by renovation:tinkering,improving,planting flower beds.
Acki
Posts: 3496
Joined: Tue Jun 29, 2004 12:04 am
Location: Nobody's Place (Venlo NL)
Contact:

Post by Acki »

BMF wrote:Also, letting the user decide which one to use, as you mentioned, is a bad way, I think. I just don't like the idea of people who don't know what renderers are needing to try them to get the best result..
right, but people who know what they are for would like to choose it on theyr own... ;)
I think a really good way would be this:
on first start make this test and choose the best driver
also make an option menu where the user can change the settings plus a button "auto detect"
so both user types are satified... ;)
while(!asleep) sheep++;
IrrExtensions:Image
http://abusoft.g0dsoft.com
try Stendhal a MORPG written in Java
evilbobthebob
Posts: 10
Joined: Wed Jul 11, 2007 11:03 am
Location: UK

Post by evilbobthebob »

Actually, I find the null device very useful to check whether my meshes and textures are loading properly.
Bwahahahaha...the world is mine.


Maybe.


Well, maybe not.
BMF
Posts: 62
Joined: Mon Jul 16, 2007 11:10 am
Location: Spain
Contact:

Post by BMF »

JP wrote: I think this download (http://www.gprogs.com/gg.Irrlicht/IrrDX_v1_1.zip) has the two dlls that i used with irrlicht for DX support. That's all you need is the two dlls and place them in the directory with the executable.
Thanks man, I'll just try those. Hope they work for version 1.3.1, which is the Irrlicht version I'm using. The files I found earlier were for 1.3, and didn't work.
Sudi wrote:well u don'T need any dlls......
just download the current dx sdk and link the libs into irrlicht and recompile. thats basicly it. then u don't need any dlls. when using visualstudio u don't have to do this because there dx is already compiled.
i actually don't know why this seams so hard. when u read the command line message of irrlicht saying directx is not compiled in this dll.....hmmm what should u do then.
The current dx sdk? You mean that +400MB file from microsoft.com?
Acki wrote: right, but people who know what they are for would like to choose it on theyr own... Wink
I think a really good way would be this:
on first start make this test and choose the best driver
also make an option menu where the user can change the settings plus a button "auto detect"
so both user types are satified...
That sounds like the best approach, indeed. ^^
evilbobthebob wrote: Actually, I find the null device very useful to check whether my meshes and textures are loading properly.
Ah, you are right. Thanks!

So I still didn't manage to get directx renderers to work, but I've not tried JP's file yet. My hopes are in there. =P
rooly
Posts: 224
Joined: Tue Oct 25, 2005 4:32 pm
Location: Louisiana, USA, backwater country
Contact:

Post by rooly »

you can find various "lite" versions of the dx sdk around. in fact i have one on the irc dump:

http://irrlichtirc.g0dsoft.com/rooly/MS_DX9_SDK.7z

*note*
you'll need 7zip to get it, but thats a good thing anyway.
When banks compete, you win.
When ISPs compete, you win.
When electronics retailers compete, you win.
When governments compete...you get drafted.
SwitchCase
Posts: 170
Joined: Sun Jul 01, 2007 11:41 pm
Location: Manchester, UK

Post by SwitchCase »

You dont need to download the dx sdk... you can download a recompiled irrlicht dll with d3d. The only problem is, i can't remember where.
BMF
Posts: 62
Joined: Mon Jul 16, 2007 11:10 am
Location: Spain
Contact:

Post by BMF »

JP wrote:I think this download (http://www.gprogs.com/gg.Irrlicht/IrrDX_v1_1.zip) has the two dlls that i used with irrlicht for DX support. That's all you need is the two dlls and place them in the directory with the executable.
I'm afraid that works for Irrlicht 1.1, but not for 1.3.1, which is the version I'm using.
rooly wrote: you can find various "lite" versions of the dx sdk around. in fact i have one on the irc dump:

http://irrlichtirc.g0dsoft.com/rooly/MS_DX9_SDK.7z

*note*
you'll need 7zip to get it, but thats a good thing anyway.
Thanks, I got it already. Now I have the lib and the include folders, but don't really know which header files I need to include, and which lib's I need to link to. :/
SwitchCase wrote: You dont need to download the dx sdk... you can download a recompiled irrlicht dll with d3d. The only problem is, i can't remember where.
Noone seems to remember. :(

Please guys, I need some help here. Surprisingly, I've not been able to get the directx renderers to work yet. Does someone know where to find a recompiled irrlicht dll with d3d? Searching gives no result... I'm quite surprised, since this should be a fairly common problem.. I thought.

Thanks for the replies though. ;)
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

Not sure if this one will work: http://www.gprogs.com/irrlicht.mod/IrrDX_v1_3.zip

Got that from the same website

If that doesn't then i'd have thought the irrlicht .dll in irrlicht-1.3.1\bin\Win32-VisualStudio should work as i can run all the samples in that folder with DX (though maybe the PC i'm on has DX dlls somewhere else).
Image Image Image
bitplane
Admin
Posts: 3204
Joined: Mon Mar 28, 2005 3:45 am
Location: England
Contact:

Re: rendering APIs

Post by bitplane »

BMF wrote: 1. From my experience, software renderers run quite slowly, and the image gets.. weird. I didn't find a use for them, could you enlighten me with examples of situations where I could need these?

2. What's the use of the null device?
The software renderers allow you to render on platforms where you don't have any access to 3d hardware, for example on a web server, or the ps2.

The null device allows you to use Irrlicht where you don't want a window, or haven't decided to create one yet.

Some example uses I can think of:
Command line mesh converter, which can load all the mesh formats irrlicht can load and export them to a new format.
An image generation/manipulation tool, which can use meshes and images to generate output for anti-spambot captchas, or display previews and stats of meshes as they are uploaded to the web.
A distributed raytracer which loads scenes and uses the collision algorithms to generate pretty pictures.
The server-side part of your game, which doesn't need to be rewritten to exclude irrlicht code.
Submit bugs/patches to the tracker!
Need help right now? Visit the chat room
BMF
Posts: 62
Joined: Mon Jul 16, 2007 11:10 am
Location: Spain
Contact:

Post by BMF »

JP wrote:Not sure if this one will work: http://www.gprogs.com/irrlicht.mod/IrrDX_v1_3.zip

Got that from the same website

If that doesn't then i'd have thought the irrlicht .dll in irrlicht-1.3.1\bin\Win32-VisualStudio should work as i can run all the samples in that folder with DX (though maybe the PC i'm on has DX dlls somewhere else).
Thanks JP, I owe you one! The file you mention there didn't work, but the IrrDX_v1_3_1 did. Too bad I thought that site was outdated when you first linked me to it. It did ask for a d3dx9_31.dll file, I downloaded it and DirectX9's renderer started working. DirectX8 doesn't work yet, though. But what's the point in using DX8 when you can use DX9? For outdated computers or something?
bitplane wrote: The software renderers allow you to render on platforms where you don't have any access to 3d hardware, for example on a web server, or the ps2.

The null device allows you to use Irrlicht where you don't want a window, or haven't decided to create one yet.

Some example uses I can think of:
Command line mesh converter, which can load all the mesh formats irrlicht can load and export them to a new format.
An image generation/manipulation tool, which can use meshes and images to generate output for anti-spambot captchas, or display previews and stats of meshes as they are uploaded to the web.
A distributed raytracer which loads scenes and uses the collision algorithms to generate pretty pictures.
The server-side part of your game, which doesn't need to be rewritten to exclude irrlicht code.
Thank you very much for the explanation and examples, bitplane! I so want to see a Irrlicht game on a PS2. :P
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

DirectX8 is used on the old XBox, that's probably why it's still in.
Post Reply