Unfortunately modifying Irrlicht is not an option in my case. I must live with what there is, and so I must keep appealing to the developers' common sense in the hope that they will fix the problem.Frank Dodd wrote:Yes this function in the CTerrainSceneNode.cpp file in the Irrlicht Source code and rebuilding it to produce your own DLL.
The behavior I want is the behavior pretty much everyone will want, and the current behavior is inconsistent with common sense. Normals should just plain obey, period. I add geometry with transformations that are claimed to be supported by the engine, and I want normals to reflect this actual geometry, not something that the loading routine sees fit to generate, ignoring parameters passed to it! This is a reasonable expectation. It is unreasonable to expect the opposite. Not recalculating normals on a transformation (which would have to be done once anyway, not every frame) is not an optimization because optimizations must still yield correct results, and here the result is incorrect. Barring special effects, it just never makes sense for normals not to reflect the final geometry. You can of course try to convince me otherwise.Munger wrote:This isn't a bug. Perhaps it isn't the behavior you want, but it is consistent behavior and it can be very useful.