• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
yoursort

OpenGL ES vs. Direct3DMobile

12 posts in this topic

Hi, for my bachelor thesis I want to develop a small 3D engine for the PocketPC (2003 and WM5). I think there are only 2 APIs for this: OpenGL ES and D3DM. I´ve been playing around with those two 3D APIs for a few days. I´ve tried some tutorials with basic stuff, e.g. initialization, render a textured cube and so on. The GLES samples are fine, they are running in an acceptable framerate on my iPAQ 1950 (300MHz). But the D3DM samples are very slow! A one triangle sample runs under 10 fps (the samples are from msdn). Before I tried the samples D3DM was my favourite because I can write in C# (I like the class hierarchy of the CompactFramework) and I wrote some DirectX stuff before. But now GLES seems to be the better one. What do you think? Do you have any experience with these APIs? Can I use GLES under C# (are there wrapper classes for it?) Why is D3DM so slow? Thx! [Edited by - yoursort on January 13, 2006 4:32:51 AM]
0

Share this post


Link to post
Share on other sites
The iPAQ series are based on the 'Bulverde' processor (intel PXA270 class), which features a hardware 3D engine made by Imagination Technology (aka PowerVR MBX-S). I suspect the OpenGL ES driver is using the 3D hardware, where D3DM has been left in its original software version.
0

Share this post


Link to post
Share on other sites
I don't think the Ipaq 1950 has any hardware support for 3D, you're probably thinking of the Axim 50v, which has the PowerVR chip. The PXA270 doesn't have any specific 3D support, so both D3DM and GL ES should be running completely in software.

Having said that, I don't know why one is slower than the other. I do remember that Intel provides an XScale optimized GL ES library mostly for the transformation part of the pipeline, so if your GL ES implementation uses the Intel libs maybe that's the difference.
0

Share this post


Link to post
Share on other sites
I also think that my iPAQ has no hardware acceleration.
And I have a 300MHz Samsung SC32442 processor, not an Intel XScale, so I cannot use the XScale optimized libraries. I use the normal "vincent" library from sourceforge.net.
0

Share this post


Link to post
Share on other sites
I wrote a few sample programs in both OGLES and D3DM which displayed from one to 16 triangles, with optional toggles for lighting, texturing and transparency. On my iMate Jam (O2 XDA to most of you) the performance was around 7-8 times better in OGLES with a single triangle and no options. With all options and 16 triangles OGLES was fairly slow but closer to 20 times faster than D3DM. This was running Windows Mobile 2003- apparently Windows Mobile 5.0 based devices are supposed to have much better D3DM support so the performance hit might not be as bad but it's still pretty clear in my mind that OGLES is the way to go.
0

Share this post


Link to post
Share on other sites
Are you using C# for the D3D app, and native C++ for the OpenGL-ES app? Unless a lot has changed in the PocketPC world, I wouldn't count on doing any realtime 3d with C# on that platform (without hardware acceleration, at least).
0

Share this post


Link to post
Share on other sites
I've performed similar tests using Hybrid and Vincent OpenGL ES drivers on Intel XScale platforms and D3DM outperformed both of them.

If I had to guess I'd say that this isn't a problem with D3DM per-se, but rather the particular implementation of the D3DM driver on your iPaq. It has a Samsung CPU, right? If so, it wouldn't use the fast Intel XScale driver that I tested.

BTW, D3DM wasn't available on WM2003 devices, so I have no idea how you were testing it.

0

Share this post


Link to post
Share on other sites
@ AVigesaa:

Yes that´s right, I´m using c++ for GL|ES and c# for D3DM. I cannot imagine that writing managed code can causes a heavy performance reduction on a so simple example programm, but I should try the unmanaged d3dm samples to check out the perfomance with c++.

@ don:

Yes I have Samsung processor in my iPAQ but I thought these are 100 % compatible to XScales?!
Maybe it doesn´t uses the optimized implementation.
I´m running Mobile 5 and not 2003. I have no answer how Anonymous Poster tested d3dm on a 2003 device.

Do you have any good resources for GL|ES and D3DM? I found www.typhoonlabs.com and http://www.zeuscmd.com/ very usefull.

Thx for your replies.
0

Share this post


Link to post
Share on other sites
Yes, I would say that using C# is responbsible for a lot of the speed difference between the two. I'd like to see your results using unmanaged c++/D3DM.
0

Share this post


Link to post
Share on other sites
yoursort:

You can determine which D3DM driver you have by calling IDirect3DMobile::GetAdapterIdentifier.

The Intel XScale has some additional instructions over the common ARM instruction set. Their D3DM driver uses these and as such won't run on non-Intel CPUs. Besides, you can't really blame Intel for their driver failing to run on a competitor's CPU. :)

If I can find a 1950/1955 around here I'll try some of my benchmarks and post results to this thread. Single triangle type of benchmarks don't mean much though unless your game only renders a single triangle.

AVigesaa:

The apparent performance difference between using C++ and C# would vary depending on what else is going on in the system. For example, if you're drawing very little it will appear like the C# overhead would be quite large, however once the majority of the time per-frame is spent elsewhere (i.e. in a software rasterizer filling pixels) I would imagine that the difference in the API interface will be a minimal portion of the time it takes to execute your render loop.
I do agree with you though that if you're trying to compare OpenGL ES to D3DM that you should use the same native interface with the two APIs.

0

Share this post


Link to post
Share on other sites
Just a follow-up after I got my hands on an HP rx1955 iPaq:

Well there's no point in me running benchmarks like I had promised. This device is using the D3DM Reference driver as it's D3DM driver. I can't begin to tell you how bad of move this is. This driver should never end up on production devices as it's only used for driver verification and software development testing purposes. It's similar to the D3D Reference Rasterizer supplied with the DX SDK, in that it's designed to generate proper reference images - not for performance (nor is it supposed to be redistributed).

How HP was allowed to ship this as their D3DM driver is beyond my understanding because as far as I know, Microsoft forbids this sort of thing. Perhaps HP will offer an OS update in the future for this device that will include a legit D3DM driver.

0

Share this post


Link to post
Share on other sites
Yes, Dell Axim x50v and x51v have an integrated Intel 2700g card with a Power MBX-lite 3d processor (without vertex processing: is only a rasterizer). You can achieve a quite interesting frame rate in high resolution (480x640) (20-30 fps with textured, filtered, 10.000+ tris scenes). The drawback is that you have to use a sick and old OpenGL ES 1.0 Common Lite fixed-only library delivered by PowerVR (www.pvrdev.com). Old and sick because they supported OpenGL 1.1 on evey platform except of the WM5... And because they don't answer to emails and faxes... And other amazing junks like "32 bit Z buffers" and other funny bullshit. :P

On your iPaq you should use the Rasteroid (ex a. k. a. Gerbera) by Hybrid (www.hybrid.fi). This is a software (but very stable, clean and optimized) implementation of both OpenGL 1.0/1.1 Common and Common Lite profiles. This software is copyrighted but free for non commercial projects. Moreover, their site and the Hybrid staff is really cooperative: just have a check on their forum to gather more information or to obtain answers directly from the Rasteroid developers.
0

Share this post


Link to post
Share on other sites
First thx for all your replies!

@avigessa:
There are no noticeable speed differences for the little example programms between c++ and c#.

@don:
A while ago I checked my D3DM driver and didn´t thought about the reference driver because I thought every device with no hardware acceleration uses the reference driver.
But of course every vendor can write an optimized specific device driver. I hope there will be an OS update soon.

No, I do not blame Intel for an driver failing to run on a competitor's CPU. :)
But I thought that I´ve read something like: Samsung-CPUs are XScale-compatibe. But maybe that´s wrong.

@Anonymous Poster:
Until now I only used the vincent implementation but I will give the rasteroid implementation a try.

By now I´ve got a bit time until I have to decide the topic of my bachelor thesis. I only wanted to play a bit with the different APIs to see which fits best for me (especially for my device because I´ve got no money for another one ;)

[Edited by - yoursort on February 3, 2006 7:36:38 AM]
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0