View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0005584||DarkRadiant||Renderer||public||10.04.2021 07:05||10.04.2021 07:06|
|Priority||normal||Severity||normal||Reproducibility||have not tried|
|Summary||0005584: Move openGL render calls to Backend|
|Description||Right now the actual glWhatever() calls submitting geometry is purely done in the OpenGLRenderable implementations, like Winding, RenderablePatchWireframe, etc. This makes it impossible for the backend render to perform any state grouping, a lot of render pass preparation is done for each renderable, only to submit 4 vertices plus normals to the driver. Instead of submitting geometry themselves using GL_POLYGON, GL_QUAD_STRIP, etc. each object contributing triangles to the scene should do so using a unified surface data type, similar to what the StaticModelSurfaces are using already.|
Goal: no openGL driver calls in the scene::Node implementations, all renderables are submitting their geometry using the same data format, possibly one based on an indexed array of ArbitraryMeshVertices.
The non-triangle data which do not affect light interactions like target arrows, speaker boxes or the manipulator lines are probably not suitable for this new surface data type, but ideally these can be refactored to use something analogous.
|Tags||No tags attached.|