View Full Version : Revolution3D
Stoney
04-04-2006, 04:47 PM
I wonder if someone has tried out this Revolution3D (http://www.revolution3d.de)-engine. A delphi port can be downloaded here (http://www.revolution3d.de/mambo/index.php?option=com_docman&Itemid=54&task=view_category&catid=81&order=dmname&ascdesc=DESC)
Does anyone know how to use this engine? Is it compatible to Delphi's VCL or do I have to use the Windows API?
I just had a look at the demos from the SDK, which are really nice. :D
Stoney
06-04-2006, 04:18 PM
Slowly I know how to use Revolution3D. It is just compatible with Delphi 6 and higher, FreePascal or Lazarus had not been tested, perhaps I'll do that later.
My results (after a lot of hard work ;) ): It is possible to activate R3D via VCL or API, both ways are quite easy. And I got it to show a simple dark-blue window, which can be closed through pressing ESC key.
Here is a little code to play with (for API development):
program R3D_Initialization;
uses Windows,
SysUtils,
R3DClasses,
R3DEnum,
R3DType;
var Engine: ^TR3D_Engine;
Pipeline: ^TR3D_Pipeline;
Control: ^TR3D_Control;
bRun: Boolean = True;
iHandle: Integer;
Procedure R3DMain(hWnd: HWND);
Var bFreeMode: Boolean;
Begin
New(Engine);
New(Pipeline);
New(Control);
If MessageBox(hWnd, 'Do you want to init without the dialog?', '', mb_YesNo) = ID_YES Then bFreeMode := True Else bFreeMode := False;
If MessageBox(hWnd, 'Do you want to run this tutorial in fullscreen mode?', '', mb_YesNo) = ID_YES Then Engine.SetRenderTarget(hWnd, R3DRENDERTARGET_FULLSCREEN) Else Engine.SetRenderTarget(hWnd, R3DRENDERTARGET_WINDOW);
If Engine.InitializeMe(bFreeMode) < 0 Then Halt(0);
While bRun Do
Begin
If Control.Keyboard_GetKeyState(R3DKEY_ESCAPE) Then bRun := False;
Pipeline.Renderer_Clear;
Pipeline.Renderer_Render;
Pipeline.Renderer_Display;
End;
Engine.TerminateMe;
// Free all those pointers
Dispose(Engine);
Dispose(Pipeline);
Dispose(Control);
End;
begin
// Needed in Delphi to load Revolution3D correctly
// Exit, if libary is not loaded
If Not R3DLibLoad Then Halt(0);
// Create window and set handle to Revolution3D
iHandle := R3DWindowCreate('Revolution3D Initialization', 0, 0, 640, 480, False);
R3DMain(iHandle);
// Needed in Delphi to unload Revolution3D correctly
R3DLibUnLoad;
end.
I think I will soon add a simple tutorial on my homepage.
Firlefanz
07-04-2006, 06:30 AM
What Api does it use? DX9?
What features does it have?
The screens look good but I cannot find a good description of the engine and its features and usage, but it looks quite interesting. :D
Firle
Stoney
07-04-2006, 06:52 AM
Yes, it is using DirectX9. And the Revolution3D delphi port can be combined with Clootie's DirectX headers.
The features I know about:
- 2D sprites handling
- Lightmaps
- Bumpmaps
- Blending
- Loads all kinds of models (MD2, 3DS, ...)
- Primitives
- Text output
I think there are even more features, but these listed features are shown with the samples from the SDK.
Well, the usage with Delphi is quite a problem: There are no samples or tutorials of how to use Revolution3D with Delphi or I hadn't find any. :?
Firlefanz
07-04-2006, 08:22 AM
Too bad. Let us know about your own project or if you find any good Delphi samples. :wink:
Firle
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.