Irrlicht 1.8.1 for Blitz
BlitzPlus Forums/BlitzPlus Programming/Irrlicht 1.8.1 for Blitz
| ||
![]() ![]() ![]() ![]() ![]() Find new release here: bIrrlicht Wrapper Ed Musolino (AquaLung) ======================================================================= |
| ||
Yeah it does work on Blitz 3D :) It is Great and all need is Document and tutorials then you are on way... p.s. Of course it does take time to do them all |
| ||
Re-download from 1st post, added converted terrain and fog example. Be sure to add the updated decls to userlibs. Use ALT + F4 to exit this example. AquaLung |
| ||
I think this is really cool! If you do have a C++ problem, it won't hurt to ask. Sounds like it's under control though. The only thing you should plan around possibly being really difficult in advance are callbacks, if it uses them. |
| ||
I run the terrain program but I get error saying Function irraddterrain not found It is alright now :-D Very good and so fast :) |
| ||
![]() Works here, Blitz3D 1.106 |
| ||
Indeed works in Blitz3D as well, without changes to the source. Bit surprised that the includes don't even need conversion to ".BB" format to work there. Only thing I couldn't get is how to end the terrain example without getting dirty. LOL |
| ||
Nice update. |
| ||
Ah well the quick and dirty route: Alt-F4.. :-) Forgive my ignorance, but I was trying to make the cam follow an entity to create a 3rd person cam, similar to: EntityParent MD2Mesh,OurCamera but got a MAV when used: IrrSetNodeParent MD2Mesh,OurCamera Anybody knows this is possible in some way or is it just not meant to work like that? |
| ||
BTW: the shading on the MD2(self) and BSP is quite impressive. I think this deserves an entry in the Blitz3D section too(it does work), cos appears some people are avoiding Blitz+ as if it has the plague(based on the low amount of comments round here on such an awesome project) LOL |
| ||
Nice!! BlitzPlus and Blitz3D ![]() |
| ||
Yep, cool huh? I've added the skybox example to this one too and looks pretty impressive, almost a full game. LOL Btw, model has the following animation modes(and perhaps more, I dunno): STAND, RUN, JUMP, ATTACK, FLIP, SALUTE, WAVE, POINT. Found them playing with below command: IrrPlayNodeMD2Animation( SceneNode, IRR_EMAT_STAND ) |
| ||
![]() |
| ||
Now we only need controls(up,down,left,right,jump,crouch,shoot, launch grenade),colission detection, gates opening/closing and an enemy with AI or UDP multiplayer to add and there we have it: QuakeBlitz.. :-) (can't wait) |
| ||
model has the following animation modes(and perhaps more, I dunno): STAND, RUN, JUMP, ATTACK, FLIP, SALUTE, WAVE, POINT. MD2s normally have the following animation sequence: "stand", "run", "attack", "pain1", "pain2", "pain3", "jump", "flip", "salute", "taunt", "wave", "point", "crstnd", "crwalk", "crattack", "crpain", "crdeath", "death1", "death2", "death3" They don't have to - technically the file format can support whatever list of animations you want - but it's a de-facto standard because it's the sequence used by Quake II. |
| ||
impressive for Blitz 3D with Direct x 9! |
| ||
Just wondering what 3D Models does Irrlicht used apart from .MD2? |
| ||
To me what bothers me is why not use the same commands of Blitz3D, and would be much easier to implement and begin again to learn how commands, which is confusing me. |
| ||
why not use the same commands of Blitz3D Because this is not a "new" thing for the Blitz community. Irrlicht is a separate engine, completely unrelated to Blitz3D, with its own history and its own (bigger) community. Since Irrlicht is not B3D, and doesn't work like B3D, giving it a layer with the same commands would be highly misleading and make things even more difficult, because the layer wouldn't fit. (People have tried, in the past; the general impression is that it just doesn't work as well.) Use this userlib if you want to use Irrlicht. |
| ||
Ok Thanks You Yasha!! Some documentation about commands?? |
| ||
Most of the commands in the decls may not work as of yet, you may even crash out. They are there just because of a direct translation between the freebasic includes and a decls for blitz. Some of the commands may work unmodified but the only ones that have been tested are the commands used in the converted examples. Still alot of work to be done. |
| ||
Well, AquaLung as you can see you have caught our undivided attention and enthusiasm. Hope you can pull it off, but looks like you are onto something really good here. |
| ||
Dunno if already possible, but a 3rd Person Cam example with collision detection would be great. (beg-beg) ;-) |
| ||
Hmm,radio silence for 5 days, hope I wasn't asking for too much, cos this really seems like a VERY cool project. |
| ||
I'm still here, I have to find time around work to play with this. Time is hard to come by when you have to work your life away. LoL AquaLung . |
| ||
I know exactly what you mean. :-) |
| ||
Updated first post. I see Irrlicht released an engine update on 11/20 ver 1.8.1 that contains bug fixes. I will add it to the next release. @ hotshot Just wondering what 3D Models does Irrlicht used apart from .MD2? Reference the Irrlicht Documentation to see what models are supported. Irrlicht Documentation . |
| ||
Hey, I was going to give you encouragement and thanks for your work... Keep it up! I have a lot to learn! XD Thank you! Ricky.- |
| ||
Thanks Ploppy, awsome! Can't believe the speed at which your are doing this. Gathered the commands you've published on the forum up till now and it's a pretty huge list(counted 182, correct me if I'm wrong). I dunno how many commands Blitz3D currently has, but I appears you're well on your way of doing the complete rewrite! |
| ||
Woopa wrong forum, please ignore and delete.. |
| ||
Pretty awsome too btw. There are currently two great projects, each with it's own special appeal actually. One foccussing on DX9 and the other Irrlicht(DX/OpenGL). Stunningly running at the same time. Where were you guys all those years? :-) Amazing, but very humbling.. As Rickychus so accurately put it: "Lots to learn". |
| ||
PowerFull men =) |
| ||
Updated 1st post! |
| ||
Working marvelously, in both Blitz+ & Blitz3d. However for example 44_Example_Animating_Joints.bb to work in Blitz3d, only a semicolon is needed to ignore the Notify command(as it's a Blitz+ only command). Like so in this line: ; Notify "Unable to get joint node" Still going strong. |
| ||
api_messagebox(0, msg$, title$, 0) ;) |
| ||
I've combined the following examples and merged into one(very messy): 04_Example_3DModel.bb/bp 05_Example_BSPMap.bb/bp 08_Example_ShadowsAndLights.bb/bp 09_Example_Skybox.bb/bp 10_Example_TerrainAndFog.bb/bp 12_Example_Collision.bb/bp 30_Example_Animated_Water.bb/bp I've added some crude 3rd person controls to see how would hold up in an actual 3rd person game like situation. Cam: Cursorkeys and mouse | 3rd person: W,A,S,D and spacebar. I realise these controls are far from perfect(collision is not handled properly and so is movement and animation), I just couldn't think of another quick way to do it. *** If anybody can put up a better way, please do. *** |
| ||
Crashes for me even in debug mode. Even with the code file in the right place... :/ |
| ||
@Guy Fawkes: Weird, works fine with me in both Blitz3d and Plus. Did you download the latest (02-12)? |
| ||
i have 1.8.1. |
| ||
I don't know, but perhaps the version number refers to the Irrlicht version, not to the Blitz release by Aqualung? How does it crash, any error codes, freezes up -what happens-? What OS/Blitz version did you try it with? |
| ||
Windows 7 (x64) but 32 bit programs work on it no problem. unfortunately, your above example crashes completely silently.. even from debug >.< |
| ||
Powerfull. Animated objects: B3D files (.b3d, r, skeleton) Microsoft DirectX (.x, r) (binary & text, skeleton) Milkshape (.ms3d, r, skeleton) Quake 3 models (.md3, r, morph) Quake 2 models (.md2, r, morph) |
| ||
Unfortunately the Blitz debugger is not of much use when using an external graphics addon. You can get an Irrlicht log file by doing either of the followiing: 1 Use DebugView from sysinternals. 2 Create a new text file and name it START.bat Edit this file and add the following line: "NAME OF YOUR EXECUTABLE.exe" > Irrlicht.txt Save this file and run it. Upon exiting your .exe, Irrlicht will dump a log to this file. I noticed in Rick's sample, he is using a modified heightmap file "./media/terrain-heightmapMod.bmp" If this file does not exist on your PC Irrlicht will crash out. You must be very careful that files exist or you will have issues. I think the log procedure above will show if it fails to load a texture or image but maybe not the way it is used in this terrain command. You may want to check if a file exists with the FileType command before certain Irrlicht commands which use a direct path to a file in it. Once I get the keyboard and mouse somewhat workable, I will release a simple 3rd Person Demo. AquaLung P.S. Version 1.8.1 is the version of Irrlicht, not the Engine Wrapper. Just always make sure to use the latest release in the 1st post, a lot of things are changing fast in the DLL's. . |
| ||
Ah, sorry GF. Forgot I leveled the mid of the terrain heightmap a bit to have a place for the BSP model to live in. Can be done very quickly in MSpaint or so by putting in a black square or circle with blurred edges in the middle of it. That's probably the cause indeed. Thanks AquaLung, that will be super cool. I'll be looking forward to that. |
| ||
Ah well, here's a heightmap image ![]() Not very sophisticated, but to show the idea, end result below: ![]() Don't ask me how I got it onto the stairs, but takes a lot patience as controls aren't working properly: ![]() All in all, I think it shows a lot of potential even with my crappy code. ;-) |
| ||
I know it take lots of work but can the texture itself can improve if you can? |
| ||
BEAUTIFUL! And yea, but you need to make the texture much more real as in HD if you want that, HotShot. |
| ||
New update released, see 1st post! |
| ||
Wauw Aqualung! Absolutely love this, thanks thanks thanks. Love the grassy stuff(very handy), the clouds(beautiful, great for flight) and sphere terrain too(amazing, I can see a space game coming up). The line below I find quite intriguing: "; Create a type for players for future network expansion" Questions: 1) Does this mean you have some networking stuff up your sleeve too? 2) Do you have any plans for including physics and/or a particle engine? Again many thanks, this is great stuff, I'm sure everyone will agree. |
| ||
Irrlicht has a built in particle engine, I want to get that working next. The Freebasic version of the wrapper also tied into newton physics, this will be looked at later down the road. I am a one man team. Lol Also looking to add a 3D sound library like Irrklang or something similar. AquaLung |
| ||
I think I'm in love with this library now! :D And OMG! SUNFLARES?! Do you think you can add a total day / night system with animated star texture and light fade?! :O |
| ||
I think once this library is more developed it will be possible. |
| ||
Can hardly wait to see it. |
| ||
^ WHAT HE SAID^10000000! =D |
| ||
I just went ahead and re-uploaded to correct some issue's in the 3rd Person Demo. Also added angled keyboard controls. AquaLung |
| ||
Hey AquaLung! Many and varied your progress.Very good work! I'm using the IDE (IDEAL with B+), and for each execution of your examples, IDEAL returns a lot of errors, not serious (Examples run fine): **********>> Created: 11/12/2013, 9:24:18<<*********** IDEal version :0.8.94 App. Path :C:\Program Files\IDEal File Name :Mod_Compiler Method Name :ParseError Error Description :Procedure call or argument is not valid Error Number :5 Error Line :0 Error Source :IDEal OS Info : Version:6.1 Build:7601 Files opened :2 ************************************************************** 7 errors in the execution of the example "Blitz-Irrlicht 3rd Person Demo.bb", maybe this information will help. Itīs IDEAL time to retire? :( Thanks, Keep it up Ricky.- PS: I like the walking animation, is hypnotic! :) |
| ||
Hi, Aqualung. Can you please make it so that a variable can control whether or not you want "auto cam rotation" ? That auto thing it does when you're trying to right click / look around is quite annoying. Thank you! |
| ||
@Guy Did you change the screen resolution? If so, re-download. I corrected this issue. @rickychus I don't use IDEAL so I'm not sure how it interacts with the execution of a program. I have not seen these errors in debugview. |
| ||
Yea, it works in everything ABOVE 800x600 :( |
| ||
@GF: Seems to be working ok at 800x600 now. @Aqualung: One thing that caught my attention in the LensFlare example: ;simply add the lens flare object and then move it to the position of the ;lightsource that causes the effect, you may have to cast a ray out to this ;point and see if it strikes a node that might be obscuring the light. ;in this case you would make the lens flare invisible. Sounds like a good idea. In Blitz3d I would use the LinePick command for this. Now my question of course: what command can we use for casting a ray in Irrlicht? |
| ||
@Rick Nasher, that's not what I'm saying. I'm saying anything ABOVE 800x600 does NOT work with the camera fix. :( My screen is 1366x768.... |
| ||
@Guy Fawkes I tested your dim of 1366x768 on my end and works normal. Something else must be the issue. Have you changed anything else in the demo? @Rick Nasher Not sure, I will let you know when I get to those commands. |
| ||
@AquaLung, no I have not. The ONLY thing I changed was the screen resolution... :( |
| ||
Uhuh, just tried at 1280x800 and think I know what you mean GF. Suddenly camera seems to be trying to auto reposition itself when using mouse controls to run around when zoomed in more closely(shoulder/neck breathing view). Which doesn't (or seem to) happen in 1024x768 or lower. |
| ||
^ SEE?! I TOLD you! :( |
| ||
No need to get all worked up about it GF. ;-) Probably has something to do with the min/max values/algorithm.. Don't think has something to do with the wrapper. You haven't tried altering code to see what happens I guess? If so, with what results? |
| ||
Yes, I tried different values, and it only made the auto camera problem faster and worse... :( |
| ||
Power Full!! |
| ||
You have done one heck of a good job on this wrapper. I hope you keep it up, I would love to be able to do 3d stuff in B+ rather than having to use B3d. |
| ||
Is there an alternative download link? None of my browsers will allow me to access the current 'http://fbe.am/pIk' link.. thanks |
| ||
http://filebeam.com/da9a80ccfb7656a5ca0076b0c207acd1 Try this |
| ||
Thanks Guy Fawkes, works fine. |
| ||
Great sfx additions. |
| ||
How about that good old Linepick? ;-) |
| ||
Another vote of thanks to Aqualung for this brilliant port. I tried porting the Freebasic wrapper myself to Blitzmax a while back but got stuck when trying to write the glue code for the various types such as IRR_VECTOR and keyboard commands. |
| ||
Thanks. I decided to rewrite the entire wrapper with friendlier Blitz style commands. I'm making alot of progress but still need more time. Watch for a new release in a month or so. Should be much easier to remember the shorter commands. AquaLung. . |
| ||
Cool, can't wait to see it AquaLung. |
| ||
:D |
| ||
Updated first post. AquaLung . |
| ||
Great, I'll check it tomorrow cos just reinstalled windows, still need to install Blitz. I'm very eager to see this stuff. |
| ||
This is great. Thanks for your work and interest. |
| ||
Any chance encrypt the game data? (Models, textures etc) |
| ||
Let me check the Irrlicht API and see if it supports passwords for the addziparchive command. AquaLung . |
| ||
It appears to support passwords. Let me add it in and I'll do some testing. I'll let you know. AquaLung . |
| ||
Really good work, thank you. Nice clouds from only one 16x16 Pixel Picture in example 51. |
| ||
@AquaLung =) |
| ||
Passwords for iAddZipFile has been added and will be in next release. AquaLung . |
| ||
That's great, I have a lot of questions to see if you can add functionality to the library, but I guess you know what I mean and everything is set as your mind. Always grateful. |
| ||
can it do Volume clouds? sorry if I am not saying right but I am sure you know what I mean |
| ||
Is it possible to change screen resolution, without deleting the scene?? |
| ||
I have not tested it but u should be able to save the scene, stop and restart irrlicht then load the scene. Not sure if the library is complete enough to do this yet. When I get time I can run some tests. May be easier to write a function that loads all your scene nodes and if the screen res is changed, just call the function again after stopping and restarting irrlicht. |
| ||
Questions, you may remove the credits that appear at the bottom of the screen? |
| ||
Eventually, yes. |
| ||
@Hotshot2005 Clouds are currently limited by the the command options of iCreateClouds(texture%,lod%,depth%,density%). |
| ||
@Aqualung(took a bit more time to reinstall my stuff): Pretty cool! Linepick stuff is working, appreciate the new Blitz-like syntax and additional FX. especially water and shadows. It all really came together nicely. BTW: What is "vcredistmin_x86.exe" supposed to do? |
| ||
That's just the Visual C Redistributable if your getting any missing DLL errors. If you have no DLL errors, you don't need it. AquaLung . |
| ||
Ah OK, well couldn't use that exe anyway as I'm on Win7 X64. |
| ||
Great port, but I've never been impressed by this engine. The graphics look dated, anyone have anything to showcase that might drop a jaw? |
| ||
I kind of disagree. From what I have quickly witnessed this userlib provides you with many raw tools needed for even for games of today. In my opinion if you're looking for jaw-droppedness all you need is a bit of imagination to make the most of an already extensive list of commands. This userlib, beit a wrapper seems very streamlined and solid. |
| ||
Tools do not make creative decisions, no matter the tool, blame the lousy worker tools and good worker making art regardless of the tool. |
| ||
I just wondering....It is possible to make Bump mapping of castle or does it take lots of work to do it? I have managed put castle in with clouds above it! |
| ||
@Hotshot2005: Ah nice, just what I was planning to do too(did it before with an earlier version as you can see in above thread). Wanna publish/share the code too and save us some work on that? |
| ||
Ok Rick; A EXAMPLE OF PUTTING THINGS TOGETHER(Castle with Clouds above!) ;; Converted to Blitzplus and Irrlicht 1.8.1 by AquaLung (2013) ;; //////////////////////////////////////////////////////////////////////////// ;; Includes for extension libraries Include "bIrrlicht.bp" ;; //////////////////////////////////////////////////////////////////////////// ;; global variables ; irrlicht objects Global BSPMesh% Global BSPNode% ; irrlicht objects Global Terrain% Global TerrainNode% Global TerrainTexture0% Global TerrainTexture1% Global Camera% Global CameraNode% Global CloudTexture% Global CloudNode% Global X# Global Y# Global Z# Global TerrainHeight# ;; //////////////////////////////////////////////////////////////////////////// ; start the irrlicht interface iIrr3D( 800, 600, 32, False ) ; send the window caption iAppTitle( "Example 05: BSP Map" ) ; first we add the pk3 archive to our filing system. once we have done this ; we can open any of the files in the archive as if they were in the current ; working directory iAddZipFile( "./media/map-20kdm2.pk3", IRR_IGNORE_CASE, IRR_IGNORE_PATHS ) ; load the BSP map from the archive as a mesh object. any polygons in the mesh ; that do not have textures will be removed from the scene! BSPMesh = iLoadOctreeMesh( "20kdm2.bsp" ) ; add the map to the scene as a node. when adding the mesh this call uses a ; mechanism called an octtree that if very efficient at rendering large amounts ; of complext geometry most of which cant be seen, using this call for maps ; will greatly improve your framerates BSPNode = iAddOctreeMeshNode( BSPMesh ) ; add a first person perspective camera into the scene that is controlled with ; the mouse and the cursor keys. if however you capture events when starting ; irrlicht this will become a normal camera that can only be moved by code Camera = iCreateFPSCamera(0,100.0,0.5,-1,0,0,0,0.0) ; the clipping distance of a camera is a distance beyond which no triangles are ; rendered, this speeds the scene up by not showing geometry that is in the ; distance and too small to see however our terrain is so huge we need to ; extend this distance out iCameraRange( Camera, 12000, 1.0 ) ; reposition and rotate the camera to look at a nice part of the map iPositionNode( Camera, 1750, 149, 1369 ) iRotateNode( Camera, 4, -461.63, 0 ) ; load the cloud image in as a video texture CloudTexture = iLoadTexture( "./media/cloud4.png" ) ; add the clouds to the scene ; the first parameter is the level of detail, higher values add more structure ; to the cloud when it is closer to the camera ; the second parameter sets the number of child clouds created higher values ; create more structure ; the third parameter defines how many clouds are created CloudNode = iCreateClouds( CloudTexture, 3, 1, 500 ) ; switch the fog on the clouds to prevent the clouds popping up in the distance iNodeMaterialFlag( CloudNode, IRR_EMF_FOG_ENABLE, True ) ; raise the clouds into the sky iPositionNode( CloudNode, 0,2700,0 ) ; slowly rotate the clouds to simulate drift across the sky iRotationAnimator( CloudNode, 0, 0.01, 0 ) ; add a fog to the scene to gently fade the clouds out in the distance iCameraFog ( 128,128,255, IRR_EXPONENTIAL_FOG, 0.0,4000.0, 0.5 ) ; hide the mouse pointer iHideMouse() ; erase the canvas with sky-blue Before rendering iCameraCLSColor( 128, 255, 255 ) ; ----------------------------------------------------------------------------- ; while the irrlicht environment is still running While iRun() And (Not iKeyHit( KEY_ESCAPE )) ; begin the scene iBeginScene() ; draw the scene iDrawScene() ; end drawing the scene and display it iEndScene() Wend ; ----------------------------------------------------------------------------- ; Stop the irrlicht engine and release resources iEndIrr3D() End Now then one got me stump...how I get make sure the player is on the ground as then it wont fall through the land if you know what I mean :) |
| ||
Ah but you didn't put in the terrain just yet.. :-) how I get make sure the player is on the ground as then it wont fall through the land if you know what I mean :) Using LinePick which is now supported I believe? I think the "Blitz-Irrlicht 3rd Person Demo.bp" example should be a good base to put the castle on and then adjust character control a bit to use linepick and/or collisions. I'll need to look into it. Didn't yet cos just got my laptop back up and running. |
| ||
I try to run Blitz-Irrlicht 3rd Person Demo but it say Function iklanginit not found how do I fixed that? |
| ||
It is alright now and I have managed it...It work :) |
| ||
Can someone show me an example of how to extract tri and vertex info from a mesh. I think I need to use these commands but I'm not sure what the function parameters are. iCopyMeshVerticesFrom(mesh%,frame%,verticies%,meshBuffer%) iCopyMeshIndicesFrom(mesh%,frame%,indicies%,meshBuffer%) iMeshVertexCoords(mesh%,frame%,vertexCoord%,groupAmount%,startPos%,endPos%,meshbuffer%) Also is it possible to change the keys for iCreateFPSCamera. I want to use WASD instead of the arrow keys. edit: what/where are the commands for controlling non-MD2 animations? I'm using Blitzmax btw |
| ||
I have a problem, User lib not found. copied the files to userlibs but does not work, any suggestions? |
| ||
@Yue: I have bIrrlicht.decls and bIrrKlang.decls in: C:\Program Files (x86)\BlitzPlus\userlibs\ No need to copy anything else, just leave the dll's in the directory where you unpacked _bIrrlicht Release.rar. This works fine when using Windows7 x64, which I believe you're having too. Or are you trying to use something else, like BlitzMax? |
| ||
I've managed to solve the problem, for some reason it works with framework 4.0 and I have repaired and working properly. |
| ||
I have the following problems, do not load b3d model textures and not to encourage them. Greetings. |
| ||
Download file on the first post is corrupted. Is there any other place where I can get it? |
| ||
Further to my previous post I've been playing around with birrlicht and found a couple of answers at least. 1. To animate non-MD2 models you use the misleadingly named command iAnimateMD2(node%,mode%,speed#,first_frame%,last_frame%,transition#) 2. To change the fps camera to use WASD keys you can do this (Blitzmax code) I haven't revisited the mesh commands yet @Jedive - I could only get the download link to work by using Chrome Some of the GUI dll function call names are wrong in the decls file Here's a list of the correct ones I've found so far iCreateWindow iButton iScrollBar iListBox iListBoxItem iEditBox iCheckBox |
| ||
Updated, see first post. |
| ||
very welcome additions, both the gui as the zipfile example. |
| ||
Hey Aqualung, is the source for this available? A C-style interface to Irrlicht would be tremendously useful in all sorts of non-Blitz contexts (weird request from someone with his own Irrlicht wrapper, but mine relies on SWIG which gives it a rather punishing auto-generated translation layer that I'd rather avoid). |
| ||
SOURCE AquaLung . |
| ||
Thanks. This should be quite helpful. |
| ||
is there a way to generate a mesh in code? i.e. an addvertex command and an addtriangle command? also a UV chords set command?if so, could someone post an example of how to create a simple mesh, give it UV chords and then create several instances of said mesh? |
| ||
MichiGamian. The 'iCreateMesh' function should serve that purpose...at least in the freebasic version it does.I don't know if that work with this wrapper.(the vertices% and indices% arguments should be pointers that point to arrays or memory banks or something) |
| ||
Hello AquaLung, awesome work. This seems to be a great port for B+/B3D. I'm interested in trying this one out. But the wrapper code you posted is for Freebasic? Can you post the latest wrapper sources for Blitz Irrlicht v1.8.1? How do I recreate the bIrrlicht.dll wrapper? Thanks. |