Worklog for klepto2

MiniB3D Extended Version

Return to Worklogs

A lot to do ...(Posted 2008-01-06)
I know there has passed a lot of time since my latest worklog but hopefully you will benefit of this waiting time.

At first I have to say that I'm quite ready with porting all previous extensions to the new minib3d 0.45 Version (thx to simonh for the great work). But secondly I have to say that I have to go a bit deeper in minib3d to get everything working properly. This means a bit more developing time but I think a much prettier design. The first big difference to the previous extended Version is the Shadersystem. Originally integrated in the Brush system it is now completely independent. Currently I have 2 new Types one called TShaderMaterial as the parent Type of TGLSLMaterial and later on TCGMaterial. This is in my opinion a much cleaner way to integrate shaders.

This is a small sample about an early Shaderintegration:
Local Material:TShaderMaterial = TShaderMaterial.CreateShaderMaterial("Bump") 
Material.AddShader("bump.vert","bump.frag") 
Material.AddSampler2D("colorMap", 0, Tex[0] ) 
Material.AddSampler2D("normalMap", 1, Tex[1] )


Now some more additions:

Well take a look at this texture :


Well nothing fancy you may think, but what If I say that it represents render to texture and the importent part : offscreen. That means the cube texture has a resolution of 2048*2048.

Well, this is done by integrating a new Type called TTextureBuffer based on FBOs (Framebuffer Objects). With this technique I was able to get rid of the ATI bug which makes glCopyTexImage2D damn slow if you copy the depthbuffer. With FBOs I was able to implement a not ready but an early version of Shadowmapping. Currently it is a bit buggy but I hope this will change when I have cleaned up and changed the Render routines.



Well, not much news but at least a bit of progress.

Bye till next worklog.

http://www.brsoftware.de.vu
Console Module Current Version 1.4 with animated Image support and dividable Output and customizable commands

http://www.blitzbasic.com/Community/posts.php?topic=49549

finally some more NEWS(Posted 2007-10-23)
At first I have to say sorry for the big delay with miniB3D extended. But unfortunatly I don't have that much time currently due to other stuff I have to do.

Don't fear : the extended Version will be continued and I'm still working on it.

So some news about the next release:

1. incbin files (Meshes/Textures) are fully implemented.
Even textured meshes could be stored completely in the executable with some restrictions.
(texture files have to be incbined in the root without any path)

2. Fullscreen and perEntity FX System:
The Fullscreen FXs are already working, the perEntity
FX are working but not completely.

3. TextureBuffers through FBO (A seperate Version for
Images in plain Max2D is planned)

4. A TerrainLayersystem:
Some kind of foliage management system I'm currently
working on.

5. Last new thing will be a new Type I will introduce: TMaterial
This Type is an more advanced Brushtype espacially designed to be more effective with shaders (GLSL, and CG[in a future Version])

Also a lot of bugfixes:
- VBO buffer are now released correctly
- No memleak through the Stencil shadow system
- easier max2d compatibility
- some more minor fixes.

Now some screenshots:

A small Emboss FS FX:



Latest screen of the Terrainlayer System:



A small video with my old (crappy slow) Layersystem showing Buoyancy planes:


http://www.brsoftware.de.vu
Console Module Current Version 1.4 with animated Image support and dividable Output and customizable commands

http://www.blitzbasic.com/Community/posts.php?topic=49549

Some News(Posted 2007-06-11)
Progress for a next release goes very good.
Some new things currently applied:

Completely redesigned Terrainsystem
- no LOD (yet!) but chunked
- can create empty flat terrains
- optionally centered at 0,0,0
- much faster init than the current one

Newton:
- added Vehicle Type
- fully configurable
- added a new CreatePhysicTerrain and a function
for multiple surface meshes (static)

RenderPipeline:
- made the Renderworld part more abstract and replaceable by
custom user made scenemangers

Added the new Max2D pipeline much more bugless than the current one.

Possible Addons (planned) :
- a bone like skin modifing system (prototype already ready)
- depth shadows (evulating possibilities)
- Physx integration (optional to the Newton Physic)

I hope to release some tests and betas this week :)

http://www.brsoftware.de.vu
Console Module Current Version 1.4 with animated Image support and dividable Output and customizable commands

http://www.blitzbasic.com/Community/posts.php?topic=49549

Some new Physic news and others(Posted 2007-05-30)
Small update:

Physics:
Good news: Vehicles are working. It will take some time to create an easy to use user interface but at least it works :)
Small Demo:
http://www.blitzforum.de/upload/file.php?id=1585

Also I have added an additional Update Function for the Physic lib called PhysicUpdateSliced(desiredfps:Int). This function is used to maintain the same Physic speed on any fps.

Additional Renderinterface:
Well the main Interface is ready and can already be extended. I have small test regionbased extension running on my system and well it is not optimised and some problems occured with frustum culling but at least it works.

New TSkinmodifier:
Well the TSkinmodifier is a more or less bone like system. You have a mesh and you assign a Skinmodifier to it. This is
a container for different modifiers where you could add vertices and modifiy them in very different ways (position,rotation, explode, scale etc.)

As you see a lot to do ;)

http://www.brsoftware.de.vu
Console Module Current Version 1.4 with animated Image support and dividable Output and customizable commands

http://www.blitzbasic.com/Community/posts.php?topic=49549

Ideas after first beta release(Posted 2007-05-15)
Well, after releasing the beta of '0.41 extended' I have taken a small break from developing on it to get the head a bit clean.
You know , sometimes you get stuck and you don't find any solution but after a small break everything goes easier.
So, while taking the break some small ideas about minib3d were spreading in my brain.

1. Idea: one of the most time consuming functions in minib3d is the frustum handling. Well it works, but it is currently a pain to add a lot of entitys (more than 5000) at startup. and after that minib3d updates and calculates the ifrustum for every single step.
So, how to speed this up. Well today I have taken out the 'renderlist creation part' out of the RenderCamera Function and introduced a new type call TSceneManager. In fact currently it is nothing more than an abstract type of the old render list creation but now it could be easily extended and exchanged by eg octree rendering or other culling mechanism. A first experiment with a new scenemanager which has divided the maximum area into 16 boxes gives already a good speed hit (sorry no exact figures yet).

2. Idea: the introduction of an additional TScenemanager extension. Well, exactly I mean some easy and extandable LOD System. In my idea I was thinking about a system based on 'grid layers' or 'box layers'. Each layer could have different method to handle LOD (eg Alphafading, render an amount of entites related to the distance etc.). In the code you may have to do something like:

Local LODLayer:TLODLayer = CreateLODLayer(parts,LAYER_ALPHA,STEPS)

And after that you could assign entities like this:
EntityLODLayer(Entity,LODLAyer)

The update of each LOD will be handled within the engine and can be extended by callbacks.

But first I will finish the beta ;)

As you see, a lot to do.

http://www.brsoftware.de.vu
Console Module Current Version 1.4 with animated Image support and dividable Output and customizable commands

http://www.blitzbasic.com/Community/posts.php?topic=49549

Some light at the horizon(Posted 2007-04-06)
Update:

-VBO system has changed and it now needs to be turned on for each mesh seperately. This is because VBO's are only useful for static and tris heavy objects.

-A currently non LOD based terrain (which is designed to add LOD later) is also done. (will run fast with VBOs)

Some updates relating to the Particle system:

first screen of my current Editor build:


-Single Surface or Entity based Emitters
-Due to the fact that miniB3D is a bit slower in single surface handling(maybe an OpenGL driver issue) I'm currently working on new Entity Type called TFastSprite. These sprites will use the OpenGL internal Point_Sprite extension which only needs 1 point of th sprite (mid point) and then it will calculate the correct translation and orientation to the Cam
on the GPU. This trick is used by mainly all Particle Engines I could find. And those could handle a massive amount of particles on screen.

You see : progress is coming slowly but it comes.

PS:
I have also added 2 new Functions to miniB3D which are very useful in my opinion.
1. CanvasGraphics3D(Canvas:TGadget)
Prepares a canvas and miniB3D to work together without hacking with the SetGraphicsDirver stuff in your main code like before.
2. UpdateCanvasGraphics(Canvas:TGadget)
Updates miniB3D when the Canvas size has changed.

http://www.brsoftware.de.vu
Console Module Current Version 1.4 with animated Image support and dividable Output and customizable commands

http://www.blitzbasic.com/Community/posts.php?topic=49549

20.03.2007 First Worklog(Posted 2007-03-20)
hi folks, this is my first worklog. The reason for this is that my release of the minib3d extended Version is delayed due to lack of time :(.
Well, this dosn't mean I won't work on it anymore. In fact I'm
working on different things regarding minib3d.

to give you a small sign whats going on:
- VBO Support has changed.
You now have to enable it for the mesh you want to have VBO.
I have done this because after playing around with it I've come to the conclusion that it only is really valuable when used with highpoly and (mainly)static objects.

- Physics works already.
A lot of things needed to be added but the main engine stays.

- A single Surface Particle Engine also already exist.
At least the Framework (for simple emitters it already works)

- Shadows. They work but are a bit slow for animated characters. ZFail and ZPass are already included. Maybe I will add Projected ShadowMaps after I'm ready with everything else.

- All the bugfixes and additions from minib3d 0.41 are build in (as far as I could recognize them)

Also I'm working on a Demo with Physics and a charackter controller.

Next week we have Easter holidays in Germany and I hope i will get ready for an initila release.

See ya.

http://www.brsoftware.de.vu
Console Module Current Version 1.4 with animated Image support and dividable Output and customizable commands

http://www.blitzbasic.com/Community/posts.php?topic=49549