Page 1 of 10 123 ... LastLast
Results 1 to 10 of 92

Thread: Irr4Delphi (update - 18/12/08) Irrlicht with vBO's

  1. #1

    Irr4Delphi (update - 18/12/08) Irrlicht with vBO's

    Irrlicht wrapper with IrrLicht 1.5 ...

    main features :

    て「High performance realtime 3D rendering using Direct3D and OpenGL [more]
    て「Platform independent. Runs on Windows95, 98, NT, 2000, XP, Linux, OSX, Solaris, and others.[more]
    て「Huge built-in and extensible material library with vertex and pixel shader support [more].
    て「Seamless indoor and outdoor mixing through highly customizeable scene management. [more]
    て「Character animation system with skeletal and morph target animation. [more]
    て「Particle effects, billboards, light maps, environment mapping, stencil buffer shadows, and lots of other special effects. [more]
    て「.NET language binding which makes the engine available to all .NET languages like C#, VisualBasic, and Delphi.NET.
    て「Two platform and driver independent fast software renderers included. They have different properties (speed vs. quality) and feature everything needed: perspective correct texture mapping, bilinear filtering, sub pixel correctness, z-buffer, gouraud shading, alpha-blending and transparency, fast 2D drawing, and more.
    て「Powerful, customizeable, and easy to use 2D GUI System with Buttons, Lists, Edit boxes, ...
    て「2D drawing functions like alpha blending, color key based blitting, font drawing, and mixing 3D with 2D graphics.
    て「Clean, easy to understand, and well documented API with lots of examples and tutorials.
    て「Written in pure C++ and totally object oriented.
    て「Direct import of common mesh file formats: Maya (.obj), 3DStudio (.3ds), COLLADA (.dae), Blitz3D (.b3d), Milkshape (.ms3d), Quake 3 levels (.bsp), Quake2 models (.md2), Microsoft DirectX (.X)... [more]
    て「Direct import of Textures: Windows Bitmap (.bmp), Portable Network Graphics (.png), Adobe Photoshop (.psd), JPEG File Interchange Format (.jpg), Truevision Targa (.tga), ZSoft Painbrush (.pcx)... [more]
    て「Fast and easy collision detection and response.
    て「Optimized fast 3D math and container template libraries.
    て「Directly reading from (compressed) archives. (.zip, .pak, .pk3)
    て「Integrated fast XML parser.
    て「Unicode support for easy localisation.
    て「Works with Microsoft VisualStudio 7.0-9.0び「, Metrowerks Codewarrior, Bloodshed Dev-C++, Code::Blocks, XCode, and gcc 3.x-4.x.
    て「The engine is open source and totally free. You can debug it, fix bugs and even change things you do not like. And you do not have to publish your changes: The engine is licensed under the zlib licence, not the GPL or the LGPL.

    Irrlicht 1.5 new
    て「Vertex Buffer Objects, i.e. storing meshes on the GPU
    て「Joystick support on all platforms
    て「Added support for collada 1.4 and LWO files
    て「32bit indices for large meshes
    て「Added an .obj writer
    て「Improved software rasterizer (burning video)
    て「Improvements for dynamic lights, particle systems, LMTS, PNG and PCX loading and writing
    て「Added FSAA for OpenGL
    て「OGRE .mesh loader improvements
    て「Nicer and faster terrain rendering
    て「Volume lights
    て「Various improvements for the WindowsCE port
    て「Shared depth buffers for RTT in D3D
    て「Added a font creation tool for Linux



    SDK Download


    delphi new features

    Node with coldet colission .

    Code:
    function Coldet_Create(Static:boolean):IColdet;cdecl ;external IRR_DLL;
    procedure Coldet_Free(model:IColdet);cdecl ;external IRR_DLL;
    
    function  Coldet_ColideWithModel(A,B:IColdet):boolean;cdecl ;external IRR_DLL;
    function  Coldet_RayHit(A:IColdet; origin,direction:ivec3):boolean;cdecl ;external IRR_DLL;
    function  Coldet_CameraRayHit(A:IColdet;CameraNode:ISceneNode;dist:integer=1000):boolean;cdecl ;external IRR_DLL;
    function  Coldet_SphereHit(A:IColdet; origin:Ivec3; radius:single):boolean;cdecl ;external IRR_DLL;
    procedure  Coldet_SetTrasformByNode(A:IColdet;Node:ISceneNode);cdecl ;external IRR_DLL;
    procedure  Coldet_SetTrasformByMatrix(A:IColdet;matrix:pointer);cdecl ;external IRR_DLL;
    procedure  Coldet_AddTriangle(a:IColdet;t1,t2,t3:ivec3);cdecl ;external IRR_DLL;
    procedure  Coldet_AddTrianglesFromNode(a:IColdet;Node:ISceneNode);cdecl ;external IRR_DLL;
    procedure  Coldet_AddTrianglesFromMesh(A:IColdet;meshA:IMesh);cdecl ;external IRR_DLL;
    procedure  Coldet_Rebuild(A:IColdet);cdecl ;external IRR_DLL;
    procedure Coldet_CollisionNormal(A:IColdet;var normal:ivec3);cdecl ;external IRR_DLL;
    procedure Coldet_CollisionPoint(A:IColdet;var point:ivec3;global:boolean=false);cdecl ;external IRR_DLL;
    procedure Coldet_CollisionTri(A:IColdet;var triangle:ITriangle;ModelSpace:boolean=false);cdecl ;external IRR_DLL;
    procedure Coldet_CollisionTris(A:IColdet;var t1,t2:ITriangle;ModelSpace:boolean=false);cdecl ;external IRR_DLL;
    procedure Coldet_CollisionTrisIndex(A:IColdet;var t1,t2:integer);cdecl ;external IRR_DLL;
    direct render mode (OpenGL Style)
    Code:
    function  IRRBegin(primitiveType:E_PRIMITIVE_TYPE ):boolean;cdecl ;external IRR_DLL;
    procedure IRRVertex3f(x,y,z:single);cdecl ;external IRR_DLL;
    procedure IRRNormal3f(x,y,z:single);cdecl ;external IRR_DLL;
    procedure  IRRTexCoord2f(tu,tv:single);cdecl ;external IRR_DLL;
    procedure  IRRColor3f(r,g,b:single);cdecl ;external IRR_DLL;
    procedure  IRRColor4f(a,r,g,b:single);cdecl ;external IRR_DLL;
    procedure  IRRColor4i(a,r,g,b:integer);cdecl ;external IRR_DLL;
    procedure  IRRColor3i(r,g,b:integer);cdecl ;external IRR_DLL;
    function  IRREnd():boolean;cdecl ;external IRR_DLL;
    Matrix

    Code:
    procedure  IRRApplyMatrix;cdecl ;external IRR_DLL;
    procedure  IRRLoadIdentity;cdecl ;external IRR_DLL;
    procedure  IRRTranslatef(x,y,z:single);cdecl ;external IRR_DLL;
    procedure  IRRRotatef(a,x,y,z:single);cdecl ;external IRR_DLL;
    procedure  IRRScalef(x,y,z:single);cdecl ;external IRR_DLL;
    function   IRRPushMatrix:boolean;cdecl ;external IRR_DLL;
    function   IRRPopMatrix:boolean;cdecl ;external IRR_DLL;
    Node with simples physics,collide and response
    (i'm working on this)
    Code:
    function Body_Create:IBody;cdecl ;external IRR_Dll;
    procedure Body_Free(body:IBody);cdecl ;external IRR_Dll;
    procedure Body_Update(body:IBody ;time:single);cdecl ;external IRR_Dll;
    
    procedure Body_SetCanSleep(body:IBody ;value:boolean);cdecl ;external IRR_Dll;
    procedure Body_SetAwake(body:IBody );cdecl ;external IRR_Dll;
    
    procedure Body_GetTransform(body:IBody;matrix:PCmatrix4);cdecl ;external IRR_Dll;
    procedure Body_GetTransformArray(body:IBody;matrix:PCmatrix4);cdecl ;external IRR_Dll;
    
    
    procedure Body_ClearAccumulators(body:IBody );cdecl ;external IRR_Dll;
    procedure Body_CalculateDerivedData(body:IBody );cdecl ;external IRR_Dll;
    
    procedure Body_SetBlockInertiaTensor(body:IBody;halfSizes:ivec3;mass:single);cdecl ;external IRR_Dll;
    procedure Body_SetInertiaTensorCoeffs(body:IBody;halfSizes:ivec3);cdecl ;external IRR_Dll;
    
    function Body_GetRealVelocity(body:IBody):single;cdecl ;external IRR_Dll;
    procedure Body_SetOrientation(body:IBody;r,i,j,k:single);cdecl ;external IRR_Dll;
    procedure Body_AddForceAtBodyPoint(body:IBody; force,point:ivec3);cdecl ;external IRR_Dll;
    procedure Body_AddForceAtPoint(body:IBody;force,point:ivec3);cdecl ;external IRR_Dll;
    function Body_GetTransformDirection(body:IBody;x,y,z:single):ivec3;cdecl ;external IRR_Dll;
    function Body_GetDirectionInWorldSpace(body:IBody;x,y,z:single):ivec3;cdecl ;external IRR_Dll;
    function Body_GetDirectionInLocalSpace(body:IBody;x,y,z:single):ivec3;cdecl ;external IRR_Dll;
    function Body_GetPointInWorldSpace(body:IBody;x,y,z:single):ivec3;cdecl ;external IRR_Dll;
    function Body_GetPointInLoaclSpace(body:IBody;x,y,z:single):ivec3;cdecl ;external IRR_Dll;
    procedure Body_SetAngularDamping(body:IBody ;value:single);cdecl ;external IRR_Dll;
    procedure Body_SetDamping(body:IBody;linearDamping,angularDamping:single);cdecl ;external IRR_Dll;
    
    procedure Body_AddTorque(body:IBody;x,y,z:single);cdecl ;external IRR_Dll;
    procedure Body_SetLinearDamping(body:IBody;value:single);cdecl ;external IRR_Dll;
    procedure Body_SetVelocity(body:IBody;x,y,z:single);cdecl ;external IRR_Dll;
    procedure Body_SetAcceleration(body:IBody;x,y,z:single);cdecl ;external IRR_Dll;
    procedure Body_SetPosition(body:IBody;x,y,z:single);cdecl ;external IRR_Dll;
    procedure Body_AddForce(body:IBody;x,y,z:single);cdecl ;external IRR_Dll;
    procedure Body_SetMass(body:IBody;mass:single);cdecl ;external IRR_Dll;
    procedure Body_AddRotation(body:IBody;x,y,z:single);cdecl ;external IRR_Dll;
    procedure Body_SetRotation(body:IBody;x,y,z:single);cdecl ;external IRR_Dll;
    procedure Body_AddVelocity(body:IBody;x,y,z:single);cdecl ;external IRR_Dll;
    function Body_GetRotation(body:IBody ):ivec3;cdecl ;external IRR_Dll;
    function Body_GetRealRotation(body:IBody ):ivec3;cdecl ;external IRR_Dll;
    function Body_GetPosition(body:IBody ):ivec3;cdecl ;external IRR_Dll;
    function Body_GetPositionX(body:IBody ):single;cdecl ;external IRR_Dll;
    function Body_GetPositionY(body:IBody ):single;cdecl ;external IRR_Dll;
    function Body_GetPositionZ(body:IBody ):single;cdecl ;external IRR_Dll;
    function Body_GetVelocity(body:IBody ):ivec3;cdecl ;external IRR_Dll;
    function Body_GetAcceleration(body:IBody ):ivec3;cdecl ;external IRR_Dll;
    
    ///colider
    procedure Geom_Calculate(Geom:IGeom);cdecl ;external IRR_Dll;
    procedure Geom_Free(Sphere:IGeom);cdecl ;external IRR_Dll;
    function Geom_CreateSphere(radius:single):IGeom;cdecl ;external IRR_Dll;
    function Geom_CreatePlane(NormalX,NormalY,NoarmalZ, distance:single):IGeom;cdecl ;external IRR_Dll;
    function Geom_CreateBox( SizeX, SizeY, SizeZ:single):IGeom;cdecl ;external IRR_Dll;
    procedure Geom_SetBody(Geom:IGeom;Body:IBody);cdecl ;external IRR_Dll;
    
    function  Geom_BoxHitPlane(Box,Plane:IGeom):boolean;cdecl ;external IRR_Dll;
    function  Geom_BoxHitBox(One,Two:IGeom):boolean;cdecl ;external IRR_Dll;
    function  Geom_BoxHitSphere(One,Sphere:IGeom):boolean;cdecl ;external IRR_Dll;
    function  Geom_SphereHitPlane(Sphere,Plane:IGeom):boolean;cdecl ;external IRR_Dll;
    function  Geom_SphereHitSpher(Sphere,Two:IGeom):boolean;cdecl ;external IRR_Dll;
    function  Geom_SphereHitTruePlane(Sphere,Plane:IGeom):boolean;cdecl ;external IRR_Dll;
    
    function Geom_SphereHitFloor(Sphere:IGeom;y:single=0):boolean;cdecl ;external IRR_Dll;
    function Geom_BoxHitFloor(Box:IGeom;y:single=0):boolean;cdecl ;external IRR_Dll;
    Particles with simples physics,collide and response

    Code:
    //particles 
    function  Atom_Create():IAtom;cdecl ;external IRR_Dll;
    procedure Atom_Free(Particle:IAtom);cdecl ;external IRR_Dll;
    procedure Atom_SetVelocity(Particle:IAtom;x,y,z:single);cdecl ;external IRR_Dll;
    procedure Atom_SetAcceleration(Particle:IAtom;x,y,z:single);cdecl ;external IRR_Dll;
    procedure Atom_SetPosition(Particle:IAtom;x,y,z:single);cdecl ;external IRR_Dll;
    procedure Atom_AddForce(Particle:IAtom;x,y,z:single);cdecl ;external IRR_Dll;
    procedure Atom_SetMass(Particle:IAtom;mass:single);cdecl ;external IRR_Dll;
    procedure Atom_SetDamping(Particle:IAtom;damping:single);cdecl ;external IRR_Dll;
    procedure Atom_ClearAccumulator(Particle:IAtom);cdecl ;external IRR_Dll;
    procedure Atom_Update(Particle:IAtom;time:single);cdecl ;external IRR_Dll;
    function  Atom_GetPosition(Particle:IAtom):ivec3;cdecl ;external IRR_Dll;
    function  Atom_GetVelocity(Particle:IAtom):ivec3;cdecl ;external IRR_Dll;
    function  Atom_GetAcceleration(Particle:IAtom):ivec3;cdecl ;external IRR_Dll;
    function Atom_GetPositionX(Particle:IAtom):single;cdecl ;external IRR_Dll;
    function Atom_GetPositionY(Particle:IAtom):single;cdecl ;external IRR_Dll;
    function Atom_GetPositionZ(Particle:IAtom):single;cdecl ;external IRR_Dll;



































    ps: terrain on irrlicht 1.5 have same problems and vbo's :cry:
    Never underestimate the power of Delphi.
    <br />There's those who play games,...and then there's who make games...

  2. #2

    Irr4Delphi (update - 18/12/08) Irrlicht with vBO's

    the header is complete?
    From brazil (:

    Pascal pownz!

  3. #3

    Irr4Delphi (update - 18/12/08) Irrlicht with vBO's

    Looks good! But where to get the DLL?

  4. #4

    Irr4Delphi (update - 18/12/08) Irrlicht with vBO's

    Quote Originally Posted by arthurprs
    the header is complete?
    ei cara


    ja falta pouco mas podes testar
    http://www.megafileupload.com/en/fil...licht-rar.html
    Never underestimate the power of Delphi.
    <br />There's those who play games,...and then there's who make games...

  5. #5

    Irr4Delphi (update - 18/12/08) Irrlicht with vBO's

    new demo

    shadows,reflection,particles,mesh,water and light





    [pascal]
    program SkyBoxeAndMeshFxS;


    uses
    SysUtils, IRRLICHT in 'IRRLICHT.pas';



    var

    font:IFont;
    texture:ITexture;
    ps,model,bill,Light,water,room,camera:ISceneNode;
    meshhil,mesh,meshmodel:IAnimatedMesh;
    anim:IAnimator;


    finished:boolean=false;
    EEvents:TEngineEvents;


    Save8087CW: Word;



    begin

    Save8087CW := Get8087CW;
    Set8087CW($133F);

    Device_Init(EDT_DIRECT3D9,800,600,16,false,true,tr ue);
    Render_SetResizeAble(true);
    Device_SetWindowCaption('IRRLICHT 4 Delphi');
    Render_SetDebug(true,true);
    Device_SetCursorVisible(true);



    font:=Font_Load('../../media/fonthaettenschweiler.bmp');

    texture:=Texture_Load('../../media/irrlichtlogo.BMP');




    camera:=Scene_AddFPSCamera;
    Node_SetPosition(camera,80,80,-600);
    Scene_AddSkyBox(
    '../../media/irrlicht2_up.jpg',
    '../../media/irrlicht2_dn.jpg',
    '../../media/irrlicht2_lf.jpg',
    '../../media/irrlicht2_rt.jpg',
    '../../media/irrlicht2_ft.jpg',
    '../../media/irrlicht2_bk.jpg');


    mesh:=Scene_AddMesh('../../media/room.3ds');
    Mesh_MakePlanarTextureMapping(mesh,0.00;
    room:=Scene_AddOctTreeSceneNode(mesh);
    Node_SetMaterialTexture(room,0,'../../media/wall.jpg');
    Node_SetSpecularColor(room,Color(0,0,0,0),0);





    meshhil:=Scene_AddHillPlaneMesh( 'myHill',20,20,40,40,0,4,4,10,10);
    water:=Scene_AddWaterSurface(meshhil,vect(0,7,0),Z EROVECT,ADDVECT,3.0,300.0,30.0);
    Node_SetMaterialTexture(water,0,'../../media/stones.jpg');
    Node_SetMaterialTexture(water,1,'../../media/water.jpg');
    Node_SetMaterialType(water,EMT_REFLECTION_2_LAYER) ;


    Light:=Scene_AddLight(1200.0,ZEROVECT,color(256,25 6,200,255));
    anim:=Scene_CreateFlyCircleAnimator(vect(0,150,0), vect(0,1,0),250,0.001);
    Node_AddAnimator(light,anim);

    bill:=Scene_AddBillboard(50,50,ZEROVECT,CWHITE,lig ht);
    Node_SetMaterialTexture(bill,0,'../../media/particlewhite.bmp');
    Node_SetMaterialFlag(bill,EMF_LIGHTING,false);
    Node_SetMaterialType(bill,EMT_TRANSPARENT_ADD_COLO R);


    meshmodel:=Scene_AddMesh('../../media/dwarf.x');
    model:=Scene_AddNodFromMesh(meshmodel,vect(-120,-10,-140),ZEROVECT,vect(2,2,2));
    Anim_SetAnimationSpeed(model,150);
    Node_SetMaterialFlag(model,EMF_NORMALIZE_NORMALS,t rue);
    Node_AddShadowVolume(model);
    Scene_SetShadowColor(color(150,0,0,0));
    Node_AddShadowVolume(model);




    ps:=Scene_AddParticleSystem(vect(-70,60,40),ZEROVECT,vect(2,2,2),false);

    Par_SetParticleSize(ps,20,20);

    Par_AddBoxEmitter(ps,-7,0,-7,7,1,7,vect(0,0.06,0),

    color(0,255,255,255),

    color(0,255,255,255),80,100,800,2000);


    Par_AddFadeOutParticleAffector(ps);


    Node_SetMaterialTexture(ps,0,'../../media/fire.bmp');

    Node_SetMaterialFlag(ps,EMF_LIGHTING,false);
    Node_SetMaterialFlag(ps,EMF_ZWRITE_ENABLE,false);
    Node_SetMaterialType(ps,EMT_TRANSPARENT_VERTEX_ALP HA);





    while (Device_Run) and (not finished) do
    begin
    Device_GetEvents(EEvents);


    Render_BeginScene(true,true,0,0,0);
    Scene_DrawAll;
    Texture_DrawD2ImageColor(texture,800-89,600-32,0,0,88,31,color(255,255,255,255),false);
    Render_EndScene;

    if EEvents.loopKeyInput.Key=27 then finished:=true;
    end;

    Device_Stop;
    Set8087CW(Save8087CW);

    end.[/pascal]
    Never underestimate the power of Delphi.
    <br />There's those who play games,...and then there's who make games...

  6. #6

    Irr4Delphi (update - 18/12/08) Irrlicht with vBO's

    I'd really love to test it, but I can't because it can't find an entry point in my Irrlicht.dll. I've got the latest one (I suppose so); I downloaded it from official website with the latest SDK.

    Can you send me your DLL?

  7. #7

    Irr4Delphi (update - 18/12/08) Irrlicht with vBO's

    Quote Originally Posted by Brainer
    I'd really love to test it, but I can't because it can't find an entry point in my Irrlicht.dll. I've got the latest one (I suppose so); I downloaded it from official website with the latest SDK.

    Can you send me your DLL?
    put all files in

    root -> irrlicht-1.4\bin\Win32-VisualStudio
    Never underestimate the power of Delphi.
    <br />There's those who play games,...and then there's who make games...

  8. #8

    Irr4Delphi (update - 18/12/08) Irrlicht with vBO's

    Ah, I see. I just copied the DLL from this directory to another one.
    Anyway, looks very good! Keep up the great work. I hope Irrlicht will support DX10 soon.

  9. #9

    Irr4Delphi (update - 18/12/08) Irrlicht with vBO's

    Interesting.
    I'll take a closer look at it when I get home.
    I'll be great to use Irrlicht with Delphi
    Imagine I've written something clever here inspiring you to make something awesome. If that happens give me credits

  10. #10

    Irr4Delphi (update - 18/12/08) Irrlicht with vBO's

    ..but the last sample do not work

    Par_SetParticleSize();
    Par_AddBoxEmitter() :?:

Page 1 of 10 123 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •