3000th commit - IrrlichtBAW (GIT repo, v 0.3.0-gamma1)

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, v 0.

Post by devsh »

The next release will be the 0.3 release as the API changes are significant.
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, v 0.

Post by devsh »

Done a new Commit:
"
Separated out ITexture from IImage completely now
The CImageData class now only provides data for ITexture and IImage and does not require any support for manipulation on the image data.
With this change the groundwork has been laid for 1D textures, Cubemaps, 2D Multisample Textures and their array equivalents.
This will enable a permament fix of the DDS loader to allow compressed loads and mipmap chain loading as we do in BaW but without a direct CImageLoaderDDS and OpenGL function usage as work-around.

COpenGLState class has been finished, and numerous bugs were fixed.
The class' API is not finalized yet, members need to be packed into bitfields to reduce storage space and enable much faster checking if there exists any difference between states.

ITexture and COpenGLTexture interfaces have been cleaned up to clearly separate textures which can use hardware filtering and ones which cannot and should not bother changing sampler state such as Multisample Textures and Texture Buffer Objects.
ITextureBufferObject interface added for TBOs which are dimensionless.

IVirtualTexture added as a base for ITexture, ITextureBufferObject and future sparse textures and other complex abstractions such as SVOs.
"

Work left for version 0.3:
1) Refactoring the OpenGL full state tracker
2) Changing the Material system (more flexible blending and better state-change sorting)
3) Decoupling baseMaterial from shader
4) Adding Cubemap textures
5) Adding Multisample textures

Work left for version 0.3:
1) Introducing OpenGL 4.0 shader subroutine support
2) Compute Shaders
3) Order Independent Transparency Examples

Plans for versions 0.4.x:
1) Moving to UBOs and getting rid of setUniform
2) Atomic and ShaderStorage Buffers (ARB_image_load_store support as well)
3) Bounding Box culling to avoid animating/boning meshes which are guaranteed to be off-screen
4) UBO instead of TBO based vertex shader skinning
5) GPU Boning and Instanced Skinned Meshes
6) SDL2 Device
7) Better CPU to GPU Mesh conversion modes (making sure vertex attributes are interleaved
8) Quantization optimization post-load for CPU mesh vertex attributes
9) InstancedSkinnedMeshSceneNode with LoDs (together with a re-skin function for cpu meshes to reduce the number of bone weights per vertex)
10) Fast allocators for fast temporary scratch memory

Plans for later version:
1) booting out core::string and io::path
2) Quaternion only rotations
3) Improved Skinned Mesh Normal calculation
4) Replacing core::array with std::vector
5) 32bit aligned new, malloc and std::Allocators
6) Getting rid of fast_atof.h
7) Moving to C++11
8) Updating all 3rd party dependencies
9) Adding LZMA, OpenSSL and LZ4 as dependencies
10) ASSIMP 3 or 4 to handle all import/export
11) Native IrrlichtBAW binary format loader and saver (after lz4 and lzma)
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: MSAA on Render Targets - BAW Irrlicht (GIT repo, v 0.2.5

Post by devsh »

And cubemaps are working now... going to rewrite skybox to use them
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: MSAA on Render Targets - BAW Irrlicht (GIT repo, v 0.2.5

Post by devsh »

DDS textures are finally loaded natively with compression and the whole mip-map chain if present....
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: MSAA on Render Targets - BAW Irrlicht (GIT repo, v 0.2.5

Post by devsh »

OpenGL texture sub image update functions are used for implicit conversion between upload and storage formats (like RGB8 to ARGB8, etc.) and you can specify the format of the texture on the GPU when loading it either through IVideoDriver::getTexture or IVideoDriver::addTexture, so a mismatch between CImageData used to update a texture and the internal format of the texture is not an issue.
Xaron
Posts: 310
Joined: Sun Oct 16, 2005 7:39 am
Location: Germany
Contact:

Re: MSAA on Render Targets - BAW Irrlicht (GIT repo, v 0.2.5

Post by Xaron »

Just wanted to step in and say hello and thank you for this great contribution to the community. Just checking it out...

Aynthing special I have to take care off? Just downloaded 0.2.5 from Github. Can I compile it using VS 2017 under Windows 10? (just tried and it looks like I have to install the Win SDK first...)
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: MSAA on Render Targets - BAW Irrlicht (GIT repo, v 0.2.5

Post by devsh »

Use VS2017 and Win10... yes Win SDK is needed.

Also in any project that will use the library, define _IRR_STATIC_LIB_ (we don't support DLL builds).

Most examples do not have a corresponding VS2017 project, but since the codeblocks projects are nice and working and in XML format you should be able to make VS2017 solutions easily.


Note that 0.2.5 is commit 17 and its slightly out of date in regards to the texture loading API, and it might contain a few bugs in the COpenGLState class (which shouldn't be a problem unless you plan on using it to record and backup GL states).

Only issues by using an old version are:
1) You will not get native DDS loading (getTexture("something.dds") uncompressed or compressed)
2) No extra textures than 2D without acrobatics with internals of the engine (no 2D array or 3D)
3) No Cubemap textures
Xaron
Posts: 310
Joined: Sun Oct 16, 2005 7:39 am
Location: Germany
Contact:

Re: MSAA on Render Targets - BAW Irrlicht (GIT repo, v 0.2.5

Post by Xaron »

Thanks. I tried the latest stuff from github but got quite a lot of compiler errors, so I tried 0.2.5 but had no luck due to that missing Windows SDK yet... I've installed it now but there seems to be still something missing.

edit: Had the wrong (newer) Windows SDK version installed...

edit2: Tried your latest again. Here's the list of errors I get:
https://imgur.com/taud0c6

in text form:

Code: Select all

Severity    Code    Description Project File    Line    Suppression State
Error   C2039   'lock': is not a member of 'irr::video::IImage' Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\CIrrDeviceWin32.cpp 1231    
Error   C2039   'unlock': is not a member of 'irr::video::IImage'   Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\CIrrDeviceWin32.cpp 1260    
Error   C2039   'lock': is not a member of 'irr::video::IImage' Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\CIrrDeviceWin32.cpp 1846    
Error   C2039   'unlock': is not a member of 'irr::video::IImage'   Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\CIrrDeviceWin32.cpp 1870    
Error   C1083   Cannot open source file: 'CSoftwareDriver.cpp': No such file or directory   Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CSoftwareTexture.cpp': No such file or directory  Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRFlat.cpp': No such file or directory   Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRFlatWire.cpp': No such file or directory   Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRGouraud.cpp': No such file or directory    Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRGouraudWire.cpp': No such file or directory    Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureFlat.cpp': No such file or directory    Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureFlatWire.cpp': No such file or directory    Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureGouraud.cpp': No such file or directory Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureGouraudAdd.cpp': No such file or directory  Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureGouraudNoZ.cpp': No such file or directory  Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureGouraudWire.cpp': No such file or directory Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CZBuffer.cpp': No such file or directory  Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CImageLoaderWAL.cpp': No such file or directory   Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRGouraudAlpha2.cpp': No such file or directory  Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRGouraudAlphaNoZ2.cpp': No such file or directory   Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRNormalMap.cpp': No such file or directory  Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRStencilShadow.cpp': No such file or directory  Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureBlend.cpp': No such file or directory   Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureDetailMap2.cpp': No such file or directory  Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureLightMap2_Add.cpp': No such file or directory   Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureLightMap2_M1.cpp': No such file or directory    Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureLightMap2_M2.cpp': No such file or directory    Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureLightMap2_M4.cpp': No such file or directory    Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureLightMapGouraud2_M4.cpp': No such file or directory Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CTRTextureWire2.cpp': No such file or directory   Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
Error   C1083   Cannot open source file: 'CIrrDeviceFB.cpp': No such file or directory  Irrlicht    c:\HOME\Projekte\IrrlichtBAW-master\source\Irrlicht\c1xx    1   
 
By the way, there are tons of warnings as well. I guess they should be fixed, too?
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: MSAA on Render Targets - BAW Irrlicht (GIT repo, v 0.2.5

Post by devsh »

0.2.5 is the last working on widows with VS2017

After that its current development and I use Linux only, after I have a new release ready we will fix up VS solution file.
We removed one of the software drivers, so thats why you have 'cannot open source' errors (these files not removed from VS project).

You're right about the warnings, irrlicht 1.8.3 from which we forked had 1800 warnings during compile in general.
When I have an intern I will fix the warnings.

Can you enlighten me as to what problems a newer Windows SDK poses?
Xaron
Posts: 310
Joined: Sun Oct 16, 2005 7:39 am
Location: Germany
Contact:

Re: MSAA on Render Targets - BAW Irrlicht (GIT repo, v 0.2.5

Post by Xaron »

Regarding that newer Windows SDK: It doesn't make problems, it looks like the solution has a fixed setting to a specific SDK version (an older one).

BTW: 0.2.5 doesn't compile either, I get quite a ton of "'lower_bound': is not a member of 'std'" errors. Probably due to a missing include somewhere?

edit:

adding
#include <algorithm>

in IDummyTransformationSceneNode.h fixed it.
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: MSAA on Render Targets - BAW Irrlicht (GIT repo, v 0.2.5

Post by devsh »

The missing include was fixed in a later commit.

But thanks.
Xaron
Posts: 310
Joined: Sun Oct 16, 2005 7:39 am
Location: Germany
Contact:

Re: Cubemap Textures - BAW Irrlicht (GIT repo, v 0.2.5)

Post by Xaron »

Thanks. Let me see if I get this VS stuff working for your latest and greatest. ;) Might fix those ~2k warnings as well. Actually warnings _should_ be handled as errors.

Being an Irrlicht oldie: What are the biggest obstacles using your branch when coming from the original irrlicht one?
Xaron
Posts: 310
Joined: Sun Oct 16, 2005 7:39 am
Location: Germany
Contact:

Re: Cubemap Textures - BAW Irrlicht (GIT repo, v 0.2.5)

Post by Xaron »

Out of curiosity: Have you removed the TerrainSceneNode? Is there a replacement for that?
Sinsemilla
Posts: 38
Joined: Mon Jan 09, 2012 5:07 pm

Re: Cubemap Textures - BAW Irrlicht (GIT repo, v 0.2.5)

Post by Sinsemilla »

Hello,

First of all nice work @devsh, this fork looks very promising :)

I was able to fix the build in VS 2017, all i needed to do were two things:
1. The VS-project still has files listed in it which are not existing anymore, an example is the gui stuff which has been removed. So i removed all non-existing files which were showing up in the VS-project.
2. There are 4 errors in CIrrDeviceWin32, in the methods present and TextureToCursor, lock() and unlock() from IImage are called, although they don't exist anymore. I replaced the lock() calls with getData() and removed the unlock() calls.

with these changes, the engine builds in Visual Studio 2017.

@devsh: I am not sure if i have done the right thing in the second fix, if not please correct me.
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: Cubemap Textures - BAW Irrlicht (GIT repo, v 0.2.5)

Post by devsh »

Sinsemilla, these fixes are 100% correct.. will commit our own VS2017 project soon.

Xaron, I've removed the TerrainSceNode as it used very out of date methods for rendering and updating the terrain mesh.
My suggestion would be to code your own by mixing transform feedback with tessellation shader and possibly sparse textures (use 2D array for LoD for terrain) to vastly extend the max heighfield size past 1024x1024.
We could even make a git repository of extensions for IrrBaW.

But I really don't want these sorts of things in the Engine core as there are 100s of ways to implement such a thing, and I don't consider any single one superior.


For me the biggest obstacle to using my branch is converting all your assets to .x and .obj + .jpg, .png and .dds, followed by rewriting all the materials with shaders.
Post Reply