Ninfa3D Engine for BlitzMax

BlitzMax Forums/BlitzMax Programming/Ninfa3D Engine for BlitzMax

Ian Thompson(Posted 2009) [#1]
A very powerful engine, yet very simple, low hardware requirements, VERY easy to use and FREE!

See here to get headers/examples/info...

http://www.mysticrealitystudio.comuv.com/forum/viewtopic.php?f=18&t=90

Here for lib download/engine info...

http://www.mysticrealitystudio.comuv.com

FEATURES

Basic

* It uses Irrlicht engine as base for graphics.
* Physic powered by Newton 2.0 Archemedia.
* OpenAL is used to provide compatibility with Windows XP and Windows Vista, as well as 2D and 3D sound.
* All in one .DLL which takes less than 2MB!!!.


Rendering

* Fast mesh rendering with OpenGL.
* Antialiasing.
* Anisotropic 16x.
* Shaders 1.0 - 3.0.
* Dynamic shadows using the stencil buffer.
* Multiple viewports rendering.


Texturing

* Basic, Multi-texturing, Bump-, Normal-, Parallax-, Specular Mapping.
* Supported texture formats: .dds, .bmp, .jpg, .pcx, .png, .pm, .psd, .tga and .wal.


Physics

* Basic Physics, Collision Detection, Rigid Body.
* Fast and accurate rigid body simulation with support for spheres, boxes, cylinders, convex hulls, and triangle meshes.
* Supports ball, hinge, slider, and universal joints.
* Physics-based vehicles with support for any number and configuration of tires. (coming soon)

Meshes

* Skeletal Animation, Morphing, Animation Blending.
* Supported mesh formats: .3ds, .b3d, .obj, .lwo, .xml, .dae, .x, .ms3d, .my3D, .lmts, .bsp, .md2, .md3, .dmf, .oct, .csm, .stl.
* Meshes are linear interpolated from one frame to the next.
* Mesh collisions and intersection.


Shaders

* Vertex, Pixel, High Level.
* Supports vertex and fragment shaders ARB and high-level programs written in GLSL.


Post-Processing

* Depth of field.
* Radial Blur.
* Motion Blur.
* Bloom.

Sound

* Support for WAV and OGG files.
* 2D/3D sound.









slenkar(Posted 2009) [#2]
it says enablevsync is not initialized


Ian Thompson(Posted 2009) [#3]
You have an error line? Also did you install OpenAL from the FB package?


outsider(Posted 2009) [#4]
It's really nice, thanks Ian :)


Ked(Posted 2009) [#5]
Awesome!


slenkar(Posted 2009) [#6]
oh yeah, after installing AL it works

thanks


In the physics explosion demo it says that 'msh(i)' is too big for the array.


Naughty Alien(Posted 2009) [#7]
..dumb question..how to change AppTitle ?


beanage(Posted 2009) [#8]
@NaugtyAlien: AppTitle=""

Nice thing all in all, and for free; perfect.
Keep up the good work,

BeAnAge


Naughty Alien(Posted 2009) [#9]
well..AppTitle you mentioning doesnt work..I have tried it already, thats why I asked


CodeGit(Posted 2009) [#10]
Very nice. Thanks


Ian Thompson(Posted 2009) [#11]
@Jeremy Paxman - Yeeeeeeeees - Sounds like a demo code bug
@Naughty Alien - Sounds like a header bug

Thanks for the input guys.


Ian Thompson(Posted 2009) [#12]
* Update *

@Jeremy Paxman - Yeeeeeeeees - Ran the explosion demo many times, no reproducible error, code looks OK too, did you alter it in any way?
@Naughty Alien - AppTile works fine, just make sure you use is after the engine has been initialised ("InitEngine()").


Naughty Alien(Posted 2009) [#13]
well..I just tried now typing this >>AppTitle$="TEST"<< after >>InitEngine(640,480,32,0)<< and I got error message 'Identifier type does not match declared type' ..


Ian Thompson(Posted 2009) [#14]
Try,
AppTitle("TEST")



Naughty Alien(Posted 2009) [#15]
..yah..got it just now after looking at Nimfa3D.bmx , under SYSTEM section..are there any Bloom, HDR and motion blur examples? And eventually Lightmapping example(actually for use for AO maps)?


Ian Thompson(Posted 2009) [#16]
Cool, well I just converted the headers and the FreeBasic examples to Max.

Bloom, HDR and motion blur are just shaders, which it fully supports. Lightmapping should be easy too, using multi-texturing and/or baked lighting using Gile[s] or 3DSMax.

The author is a very approachable guy, my advice is to contact him and make a request on the www.mysticrealitystudio.comuv.com forums for any new features, examples ;)


ziggy(Posted 2009) [#17]
None of the textures are loaded in my computer with a intel card. Other than that, the engine looks awesome.


Ian Thompson(Posted 2009) [#18]
Strange, what does it say in the console when you run the examples, something like...
Irrlicht Engine version 1.5
Microsoft Windows XP Professional Service Pack 3 (Build 2600)
Using renderer: OpenGL 2.1.2
GeForce 8800 GTS/PCI/SSE2/3DNOW!: NVIDIA Corporation
OpenGL driver version is 1.2 or better.
GLSL version: 1.3
OpenAL version 1.1
Newton Game Dynamic version 2.0
------------------------------------------
Loaded texture: G:\Coding Folder\Projects\Ninfa3D\Mystic\Ninfa3D10dFreeBASIC\examples\testing\media\mur_Ambiant.jpg
Loaded texture: G:\Coding Folder\Projects\Ninfa3D\Mystic\Ninfa3D10dFreeBASIC\examples\testing\media\Brick.jpg
Loaded texture: G:\Coding Folder\Projects\Ninfa3D\Mystic\Ninfa3D10dFreeBASIC\examples\testing\media\wall1.jpg
Loaded texture: G:\Coding Folder\Projects\Ninfa3D\Mystic\Ninfa3D10dFreeBASIC\examples\testing\media\wall.jpg
Loaded texture: G:\Coding Folder\Projects\Ninfa3D\Mystic\Ninfa3D10dFreeBASIC\examples\testing\media\Wood.jpg
Loaded sound: media/bullet_hit1.wav


... from "Graphics - Images" demo.

Irrlicht is pretty compatible with Intel chipsets, Viz, the engine developer may be interested in this but he can't post here, so I would advise a small post over at www.mysticrealitystudio.comuv.com forums.


ziggy(Posted 2009) [#19]
That's what I get:
Irrlicht Engine version 1.5
Professional (Build 7100)
Using renderer: OpenGL 1.1.0
GDI Generic: Microsoft Corporation
OpenGL driver version is 1.2 or better.
Failed to load OpenGL's multitexture extension, proceeding without.
GLSL not available.
OpenAL version 1.1
Newton Game Dynamic version 2.0
------------------------------------------
Loaded texture: C:\Users\Manel\Documents\BORRAR\ninfa3d\examples\media\mur_Ambiant.jpg
Loaded texture: C:\Users\Manel\Documents\BORRAR\ninfa3d\examples\media\Brick.jpg
Loaded texture: C:\Users\Manel\Documents\BORRAR\ninfa3d\examples\media\wall1.jpg
Loaded texture: C:\Users\Manel\Documents\BORRAR\ninfa3d\examples\media\wall.jpg
Loaded texture: C:\Users\Manel\Documents\BORRAR\ninfa3d\examples\media\Wood.jpg
Loaded sound: media/bullet_hit1.wav
Loaded texture: C:\Users\Manel\Documents\BORRAR\ninfa3d\examples\media\logofinal.png



Ian Thompson(Posted 2009) [#20]
Failed to load OpenGL's multitexture extension, proceeding without.
GLSL not available.


No multi texturing or shaders I am afraid Ziggy, your OpenGL driver is quite old also I am afraid, looks like a driver problem.


ziggy(Posted 2009) [#21]
I have the latest ones. That's weird! It's an intel integrated GMA 945 card


Ian Thompson(Posted 2009) [#22]
You could try this...

http://www.ozone3d.net/gpu_caps_viewer/

If it reports that everything is OK, then I would contact Viz on the Ninfa3D forums.


ziggy(Posted 2009) [#23]
This tools reports my card is OpenGL 1.1 that's weird!
Being it based on irrlitch, is there any DX version of the engine?


GW(Posted 2009) [#24]

there any DX version of the engine?


There definitely should be!


BlitzSupport(Posted 2009) [#25]
Wow, works great here. Really nice.

Like Mr Paxman, I did find that the "Physics - Explosion.bmx" example needed the msh and bdy arrays changed from 490 to 491 to avoid going past the end of the array, otherwise everything seems to work perfectly.


Ian Thompson(Posted 2009) [#26]
Strange, that demo works fine on the laptop but not on my desktop.

I'll change the array size in that demo.

Thanks for spotting that one guys.


Ian Thompson(Posted 2009) [#27]
OK, not sure if this a bug but people should be aware...

PixelShaderConstant(cartoon,"silhouetteThreshold",Varptr silhouette,1)


PixelShaderConstant allows you to pass a float value, via a pointer, to a pixel shader internal variable(or floats "1", indicates one value here), in this case... "silhouetteThreshold" in the "cartoon" shader.

But its not working, no matter if you change the silhouette to it does not change. Ive noticed though by adding a "CHR(0)"(c string?), to the pixel shaders variable name it then works.

I'll contact the author regarding this but in the meantime...

PixelShaderConstant(cartoon,"silhouetteThreshold"+chr(0),Varptr silhouette,1)


...fixes to toon demo and any other vertex or pixel shader.


Nennig(Posted 2009) [#28]
Wow, very impressive, I will keep an eye on this baby!
Thanks!


sniper_boy147(Posted 2009) [#29]
OMG if there is a soft shadow example for irrlicht then maybe it could be implemented in the engine!