Alistair,
Option 1 will have the most sex-appeal (after the new Option4). While
porting your code from OpenGL to DirectX will be some pain, the performance
might not suffer a lot. It will depend how much of 3D visualization is done
by your code vs. just calling an OpenGL or DirectX API. If you do a lot of
the visualization in your own code, then performance will definitely suffer
a lot, but if most visualization is done by the API, you will be almost be
as fast as before. The managed APIs for DirectX in .NET are just wrappers
for the native DirectX-API, that is why you wonīt see much of a speed
penalty.
Take a decent look on the port of Quake 2 to the .NET-platform at
www.codeproject.com/managedcpp/Quake2.asp. The .NET version of Quake
2 is almost as fast as the original native-code version (just about 20%
slower), and the reason is that most of the performance comes out of DirectX
and not out of the managed code.
Option 2: well, if you donīt like C++, then stay with Delphi and Option 1 or
Option 4 ...
Option 3: I donīt think that Borland is going to develop a Win64-Delphi
compiler anytime soon. They would actually have to develop two compilers,
one for AMD64 and one for Itanium64. I donīt think that Borland currently
sees a big enough market opportunity there to start developing these two
compilers. Maybe two years from now, but not today.
There is an Option4, similar to Option1.
Port to Delphi.NET, but keep working with OpenGL. Please donīt forget that
you can still call Native-APIs such as OpenGL from .NET managed code using
p-invoke etc. An easy way is to use some already existing OpenGL-wrappers
for .NET, such as Tao.OpenGL at
sastools.com/b2/post/79394189 or CsGL
at
sourceforge.net/projects/csgl. As soon as the .NET-runtime for
Win64 is released by Microsoft, your .NET application will then take
automatically advantage of 64bit (and the 64bit OpenGL-API on WinXP64, of
course).
Best regards,
Peter
"Alistair Ward" <
XXXX@XXXXX.COM>writes
Quote
I am currently working on a 3D visualization product, developed using
Delphi
and OpenGL. 3D graphics performance is critical for our app.
We are hitting the address space limits of Win32 and are considering our
future options. I don't see a clear path forward for us, and am interested
in what others have to suggest.
Current platform Delphi 7 and OpenGL
Future Options:
1) Delphi .NET and DirectX 9. We would stay coding in Delphi, but have to
port all our OpenGL code to DirectX. We have serious concerns about the
performance implications, but this should move us onto 64 bit platforms as
soon as the 64 bit .Net runtime is available.
2) Port to C++, and stick with OpenGL. Change language to C++ and continue
generating native Win32/Win64 apps. We really don't like the idea of
changing to C++. I thought I had seen the last of it when I converted to
Delphi (v2) several years ago...
3) Pray Borland produce a native Win64 version of Delphi (for Opteron of
course)...
The first 2 options are obviously doable, but neither is really desirable.
The 3rd option is best and easiest for us, but we're relying on Borland to
produce something they have never announced, and frankly, I don't expect
it
to happen.
Have I missed any options??
Alistair Ward
Forum 8 NZ Ltd.