what is the state of openb3d compared to blitz3d ?

Started by RemiD, October 18, 2019, 22:03:49

Previous topic - Next topic

RemiD

hi,
after having watched a video by Krischan, with what seems to be a per pixel spotlight and normal maps on textures, i am intrigued by openb3d...

what is the state of openb3d compared to blitz3d ? in functionalities, speed, stability, bugs ?

i am looking for a new 3d engine which would allow me to have per pixel lighting/shading and normal maps, but also keep a blitz3d-like syntax.

if you are a user of blitzmax+openb3d, can you tell me what you think about it ?
(and if you have encountered bugs)

thanks,

angros47

OpenB3D is basically miniB3D ported to C++ (it originates from the old iPhone port of miniB3D), plus all the extensions: quaternions, terrains from warner's code, stencil shadows, support for shaders from klepto's code, a lot of bugfixes, constructive solid geometry, isosurfaces, voxel sprites, a simple built in physics engine, and much more

All of this works on the same hardware requirements of original minib3d.

Plus, an extra library called OpenB3Dplus provides extra functions, like toon shaders, post processing effects like Depth of Field, fisheye lens, or screen space ambient occlusion (SSAO).

OpenB3D has also a version supporting WebGL on Emscripten.

RemiD

ok, and can i create custom shaders with it ? (for per pixel lighting/shading and normal mapping and glow) ?

and the answer is (apparently) yes  :)

however i don't understand why there are several versions of openB3D ?
https://sourceforge.net/projects/minib3d/
https://github.com/markcwm/openb3dmax.mod
https://www.freebasic.net/forum/viewtopic.php?f=14&t=27233

are they different or the same with different wrappers ?

angros47

Sure, you can create custom shaders (vertex, geometry and fragment shaders), using LoadShader or CreateShader, and you can tell OpenB3D which parameter each shader will need, by using UseMatrix and UseSurface. Then, you can apply the shader to entities or to surfaces, just in a similar way as you applied a brush in Blitz3D, and OpenB3D will take care to pass all the needer parameters to the shader.

The reason there are several "versions" of OpenB3D is that when I started working on it, my goal was FreeBasic (neither Blitz3D nor BlitzMax were open source, at the time, and I wanted to use the open source engine on an open source compiler): so I published it on Sourceforge, and made the thread on the FreeBasic forum. Later, Mark took it and made a wrapper to be able to use it again in BlitzMax, and published it on github.

RemiD

Quote
The reason there are several "versions" of OpenB3D is that when I started working on it, my goal was FreeBasic (neither Blitz3D nor BlitzMax were open source, at the time, and I wanted to use the open source engine on an open source compiler): so I published it on Sourceforge, and made the thread on the FreeBasic forum. Later, Mark took it and made a wrapper to be able to use it again in BlitzMax, and published it on github.
ok, i see, but it seems that Mark add some fixes/mods from time to time, so do you share fixes/mods/updates ? (or maybe he works only on the wrapper, i am not sure)

in any case i am going to start to learn Blitzmax + Openb3d and Freebasic + Openb3d and see which one suits me better
thanks for this alternative 3d engine :)

i am going to try to convert some Blitz3d codes and post the Blitzmax + Openb3d version (if it works ;D), maybe this will convert more people...

Kippykip

OpenB3D is also leagues faster than MiniB3D, I loaded a pretty high poly map into MiniB3D and it slowed to a crawl.
OpenB3D however doesn't bog down at all on that map.

RemiD

@Kippykip>>good to know, thanks

is there any limit of the number of vertices and triangles that you can put in a surface ?

Kippykip

Quote from: RemiD on October 27, 2019, 08:28:38
@Kippykip>>good to know, thanks

is there any limit of the number of vertices and triangles that you can put in a surface ?
I haven't reached that limit yet, I don't know if there is a limit other than probably than 32 Bit numbers?
However, I did notice there was a limit a while back when it comes to collisions. When I made a really high poly map, it would crash once a Sphere->Polygon collision was checked for.
I sorted that anyway by having a separate invisible low-poly collision model, it's not a good idea to have an insanely detailed map get checked for collisions anyway when it comes to game development anyway. :))