irrlicht/tests
cutealien c4504c1d48 Add IMeshSceneNode::setNodeRegistration to allow registering MeshSceneNodes to the SceneManager per buffer instead of per node
So far SceneManager always sorted Nodes per render stage.
Now we allow sorting per mesh-buffer per render stage by creating a new node for each mesh-buffer.
It's only supported for CMeshSceneNode so far.

This allows to enable better transparency sorting for meshes which have transparent buffers.
Previously those always got rendered in the order in which they got added and ignored mesh-buffer bounding-boxes, but just used the bbox of the full mesh. Now they can use the bbox for each meshbuffer which can sometimes avoid render errors.

Also depending on the scene this can be quite a bit faster because it can help reduce texture changes. We sort solid nodes per texture, but only per node. So nodes with several textures had a texture switch between rendering each meshbuffer. And those are rather expensive in Irrlicht right now (and we support no bindless textures yet...)

Lastly it's now also used to buffer the render-stage. Checking this twice (once in registering the node and once in render) constantly showed up in the profiler. Which was a bit surprising really, but anyway - now it's gone.

I tried to keep it working for all cases we had before (all kind of situations, like when people may want to call render() outside the SceneManager). But not (yet) supporting the case of changing the meshbuffers (adding or removing some) without calling setMesh() again. Reason is that this wasn't well supported before either (node materials never updated). So for now I just assume people will call setMesh() again when they change the mesh.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6483 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-05-04 16:07:18 +00:00
..
empty/empty Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
media Add option to allow nodes to ignore the scale/rotation parts of their parents transformation. 2022-09-29 16:34:37 +00:00
2dmaterial.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
anti-aliasing.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
archiveReader.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
b3dAnimation.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
billboards.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
burningsVideo.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
collisionResponseAnimator.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
color.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
coreutil.cpp API BREAKER: Replacing defines in irrTypes.h which are conflicting with c++ reserved identifier rules. 2021-08-27 12:55:10 +00:00
createImage.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
cursorSetVisible.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
disambiguateTextures.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
draw2DImage.cpp burning v0.53 2022-04-30 22:57:17 +00:00
drawPixel.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
drawRectOutline.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
drawVertexPrimitive.cpp burning v0.53 2022-04-30 22:57:17 +00:00
enumerateImageManipulators.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
exports.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
fast_atof.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
filesystem.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
flyCircleAnimator.cpp Burningsvideo 0.52 2020-11-10 18:49:39 +00:00
guiDisabledMenu.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
ioScene.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
irrArray.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
irrCoreEquals.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
irrList.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
irrMap.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
irrString.cpp Update irrString test due to split changes in r6007 2019-12-16 16:51:30 +00:00
lightMaps.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
lights.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
line2d.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
loadTextures.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
main.cpp Fix some problems with CMatrix4::getRotationDegrees 2022-10-15 15:46:03 +00:00
makeColorKeyTexture.cpp Replace more getSize() with getOriginalSize() calls in tests. 2022-03-30 21:52:26 +00:00
Makefile Stop linking to libs which the tests Makefile does not seem to need 2022-03-28 22:11:26 +00:00
material.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
matrixOps.cpp Fix some problems with CMatrix4::getRotationDegrees 2022-10-15 15:46:03 +00:00
md2Animation.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
meshLoaders.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
meshTransform.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
mrt.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
orthoCam.cpp Slow down switching drivers in orthoCam test. 2022-03-28 19:52:00 +00:00
planeMatrix.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
projectionMatrix.cpp Material.ZWriteEnable is now of type E_ZWRITE instead of bool and ZWriteFineControl get removed (or merged into ZWriteEnable). 2020-01-02 15:34:52 +00:00
removeCustomAnimator.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
renderTargetTexture.cpp Replace more getSize() with getOriginalSize() calls in tests. 2022-03-30 21:52:26 +00:00
sceneCollisionManager.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
sceneNodeAnimator.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
screenshot.cpp Print out colorformat when screenshot test fails 2022-03-30 16:54:46 +00:00
serializeAttributes.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
skinnedMesh.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
softwareDevice.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
stencilshadow.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
terrainSceneNode.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
testaabbox.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
testDimension2d.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
testGeometryCreator.cpp Relax test a bit. Minor example cleanup. 2022-01-22 16:42:12 +00:00
testLine2d.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
testQuaternion.cpp Use f64 version of reciprocal_squareroot in quaternion::normalize for more precision. 2020-01-03 17:09:39 +00:00
testS3DVertex.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
tests_vc10.sln Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
tests_vc10.vcxproj Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
tests_vc11.sln Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
tests_vc11.vcxproj Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
tests_vc12.sln Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
tests_vc12.vcxproj Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
tests_vc14.sln Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
tests_vc14.vcxproj Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
tests_vc16.sln vs2019 projectfiles 2022-05-03 20:48:57 +00:00
tests_vc16.vcxproj vs2019 projectfiles 2022-05-03 20:48:57 +00:00
tests-last-passed-at.txt Add IMeshSceneNode::setNodeRegistration to allow registering MeshSceneNodes to the SceneManager per buffer instead of per node 2023-05-04 16:07:18 +00:00
tests-readme.txt Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
tests.cbp Slow down switching drivers in orthoCam test. 2022-03-28 19:52:00 +00:00
tests.workspace Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
testUtils.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
testUtils.h Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
testVector2d.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
testVector3d.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
testXML.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
textureFeatures.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
textureRenderStates.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
timer.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
transparentMaterials.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
triangle3d.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
triangleSelector.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
userClipPlane.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
vectorPositionDimension2d.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
videoDriver.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
viewPort.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00
writeImageToFile.cpp Avoid warning and make local variable lower-case. 2019-12-12 16:32:41 +00:00